Completing stub and skeleton sides' APIs; Adding tests for C++ side; Still need to...
[iot2.git] / iotjava / iotrmi / C++ / sample / TestClass_Stub.hpp
1 #include <iostream>
2 #include "../IoTRMICall.hpp"
3 #include "TestClassInterface.hpp"
4
5 using namespace std;
6
7 class TestClass_Stub : public TestClassInterface {
8         public:
9                 TestClass_Stub();
10                 TestClass_Stub(int _port, const char* _address, int _rev, bool* _bResult);
11                 ~TestClass_Stub();
12
13                 void                            setA(int _int);
14                 void                            setB(float _float);
15                 void                            setC(string _string);
16                 string                          sumArray(vector<string> newA);
17                 int                                     setAndGetA(int newA);
18                 int                                     setACAndGetA(string newC, int newA);
19                 //void                          registerCallback(CallBackInterface _cb);
20                 //int                           callBack();
21
22         private:                
23                 int                                     intA;
24                 float                           floatB;
25                 string                          stringC;
26                 //CallBackInterface cb;
27                 IoTRMICall                      *rmiCall;
28                 string                          address;
29                 //vector<int>                   ports;
30 };
31
32
33 TestClass_Stub::TestClass_Stub() {
34
35         address = "";
36         rmiCall = NULL;
37 }
38
39
40 TestClass_Stub::TestClass_Stub(int _port, const char* _address, int _rev, bool* _bResult) {
41
42         address = _address;
43         rmiCall = new IoTRMICall(_port, _address, _rev, _bResult);
44 }
45
46
47 TestClass_Stub::~TestClass_Stub() {
48
49         if (rmiCall != NULL) {
50                 delete rmiCall;
51                 rmiCall = NULL;
52         }
53 }
54
55
56 void TestClass_Stub::setA(int _int) {
57
58         int numParam = 1;
59         string sign = "voidsetA(int)";
60         string retType = "void";
61         string paramCls[] = { "int" };
62         void* paramObj[] = { &_int };
63         void* retObj = NULL;
64         rmiCall->remoteCall(sign, retType, paramCls, paramObj, numParam, retObj);
65 }
66
67
68 void TestClass_Stub::setB(float _float) {
69
70         int numParam = 1;
71         string sign = "voidsetB(float)";
72         string retType = "void";
73         string paramCls[] = { "float" };
74         void* paramObj[] = { &_float };
75         void* retObj = NULL;
76         rmiCall->remoteCall(sign, retType, paramCls, paramObj, numParam, retObj);
77 }
78
79
80 void TestClass_Stub::setC(string _string) {
81
82         int numParam = 1;
83         string sign = "voidsetC(string)";
84         string retType = "void";
85         string paramCls[] = { "string" };
86         void* paramObj[] = { &_string };
87         void* retObj = NULL;
88         rmiCall->remoteCall(sign, retType, paramCls, paramObj, numParam, retObj);
89 }
90
91
92 string TestClass_Stub::sumArray(vector<string> newA) {
93
94         int numParam = 1;
95         string sign = "sumArray(string[])";
96         string retType = "string";
97         string paramCls[] = { "string[]" };
98         void* paramObj[] = { &newA };
99         string retVal = "";
100         void* retObj = &retVal;
101         rmiCall->remoteCall(sign, retType, paramCls, paramObj, numParam, retObj);
102         return retVal;
103 }
104
105
106 int TestClass_Stub::setAndGetA(int newA) {
107
108         int numParam = 1;
109         string sign = "intsetAndGetA(int)";
110         string retType = "int";
111         string paramCls[] = { "int" };
112         void* paramObj[] = { &newA };
113         int retVal = 0;
114         void* retObj = &retVal;
115         rmiCall->remoteCall(sign, retType, paramCls, paramObj, numParam, retObj);
116         return retVal;
117 }
118
119
120 int TestClass_Stub::setACAndGetA(string newC, int newA) {
121
122         int numParam = 2;
123         string sign = "intsetACAndGetA(string,int)";
124         string retType = "int";
125         string paramCls[] = { "string", "int" };
126         void* paramObj[] = { &newC, &newA };
127         int retVal = 0;
128         void* retObj = &retVal;
129         rmiCall->remoteCall(sign, retType, paramCls, paramObj, numParam, retObj);
130         return retVal;
131 }
132
133
134 /*void TestClass_Stub::registerCallback(CallBackInterface _cb) {
135
136         cb = _cb;
137 }
138
139
140 int TestClass_Stub::callBack() {
141
142         return cb.printInt();
143 }*/
144