Added new feature tests. (synchronous upcalls)
[dyninst.git] / igen / tests / serverPVM.C
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "testPVM.SRVR.h"
4
5 main(int argc, char *argv[])
6 {
7   int flag;
8   int ret;
9   int started = 0;
10   test *tp;
11   char *where = NULL;
12   char *program = NULL;
13   
14   if (argc < 2)
15     started = 1;
16
17   program = argv[1];
18   if (argc == 3)
19     {
20       where = argv[2];
21       flag = 1;
22     }
23   else
24     flag = 0;
25
26   if (started)
27     tp = new test();
28   else
29     tp = new test(where, program, NULL, flag);
30
31   // now go into main loop
32   while(1)
33     {
34       ret = tp->mainLoop();     
35       if (ret < 0)
36         {
37           // assume the client has exited, and leave.
38           exit(-1);
39         }
40     }
41 }
42
43
44 void test::nullNull()
45 {
46     return;
47 }
48
49 int test::intNull()
50 {
51     return(0);
52 }
53
54 void test::nullStruct(intStruct s)
55 {
56     return;
57 }
58
59 int test::intString(String s)
60 {
61     return(strlen(s));
62 }
63
64 String test::stringString(String s)
65 {
66     return(s);
67 }
68
69 int test::add(int a, int b)
70 {
71     return(a+b);
72 }
73
74 int test::sumVector(int_Array nums)
75 {
76    int i, total;
77
78    for (i=0, total=0; i < nums.count; i++) {
79        total += nums.data[i];
80    }
81    return(total);
82 }
83
84 int_Array test::retVector(int num, int start)
85 {
86     int i;
87     int_Array retVal;
88
89     retVal.count = num;
90     retVal.data = (int*) malloc(sizeof(int) * num);
91     for (i=0; i < num; i++) {
92         retVal.data[i] = start+i;
93     }
94     return(retVal);
95 }
96
97
98 void test::triggerAsyncUpcall(int val)
99 {
100     asyncUpcall(val);
101 }