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