New interfaces for `usesTrap' and `canUseExtraSlot'.
[dyninst.git] / igen / tests / server4.C
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "test4.SRVR.h"
4
5 void serverMainFunc(int parentId)
6 {
7     int fd;
8     int eid;
9     int ret;
10     test *tp;
11
12     tp = new test(parentId);
13
14     // now go into main loop
15     while(1) {
16         ret = tp->mainLoop();   
17         if (ret < 0) {
18             // assume the client has exited, and leave.
19             exit(-1);
20         }
21     }
22 }
23
24
25 void test::nullNull()
26 {
27     return;
28 }
29
30 int test::intNull()
31 {
32     return(0);
33 }
34
35 void test::nullStruct(intStruct s)
36 {
37     return;
38 }
39
40 int test::intString(String s)
41 {
42     return(strlen(s));
43 }
44
45 String test::stringString(String s)
46 {
47     return(s);
48 }
49
50 int test::add(int a, int b)
51 {
52     return(a+b);
53 }
54
55 int test::sumVector(int_Array nums)
56 {
57    int i, total;
58
59    for (i=0, total=0; i < nums.count; i++) {
60        total += nums.data[i];
61    }
62    return(total);
63 }
64
65 int_Array test::retVector(int num, int start)
66 {
67     int i;
68     int_Array retVal;
69
70     retVal.count = num;
71     retVal.data = (int*) malloc(sizeof(int) * num);
72     for (i=0; i < num; i++) {
73         retVal.data[i] = start+i;
74     }
75     return(retVal);
76 }
77
78
79
80 void test::triggerAsyncUpcall(int val)
81 {
82     asyncUpcall(val);
83 }