2 #include "../IoTRMIObject.hpp"
3 #include "TestClass.hpp"
7 class TestClass_Skeleton : public TestClassInterface {
9 TestClass_Skeleton(TestClassInterface* _tc, int _port);
10 ~TestClass_Skeleton();
12 void waitRequestInvokeMethod();
14 void setB(float _float);
15 void setC(string _string);
16 string sumArray(vector<string> newA);
17 //int64_t sumArray(vector<int> newA);
18 int setAndGetA(int newA);
19 int setACAndGetA(string newC, int newA);
20 void registerCallback(CallBackInterface* _cb);
21 void registerCallback(vector<CallBackInterface*> _cb);
24 const static int size = 9;
25 const static string methodSignatures[size];
28 TestClassInterface *tc;
30 //CallBackInterface cbstub;
34 const string TestClass_Skeleton::methodSignatures[TestClass_Skeleton::size] = {
41 "intsetACAndGetA(string,int)",
43 "voidregisterCallBack(CallBackInterface)",
44 "voidregisterCallBack(CallBackInterface[])"
48 TestClass_Skeleton::TestClass_Skeleton(TestClassInterface* _tc, int _port) {
50 bool _bResult = false;
52 rmiObj = new IoTRMIObject(_port, &_bResult, methodSignatures, size);
56 TestClass_Skeleton::~TestClass_Skeleton() {
65 void TestClass_Skeleton::waitRequestInvokeMethod() {
67 // Loop continuously waiting for incoming bytes
70 rmiObj->getMethodBytes();
71 string methodSign = rmiObj->getSignature();
72 cout << "Method sign: " << methodSign << endl;
74 if (methodSign.compare("voidsetA(int)") == 0) {
75 string paramCls[] = { "int" };
78 void* paramObj[] = { ¶m1 };
79 rmiObj->getMethodParams(paramCls, numParam, paramObj);
81 } else if (methodSign.compare("voidsetB(float)") == 0) {
82 string paramCls[] = { "float" };
85 void* paramObj[] = { ¶m1 };
86 rmiObj->getMethodParams(paramCls, numParam, paramObj);
88 } else if (methodSign.compare("voidsetC(string)") == 0) {
89 string paramCls[] = { "string" };
92 void* paramObj[] = { ¶m1 };
93 rmiObj->getMethodParams(paramCls, numParam, paramObj);
95 } else if (methodSign.compare("sumArray(string[])") == 0) {
96 string paramCls[] = { "string[]" };
98 vector<string> param1;
99 void* paramObj[] = { ¶m1 };
100 rmiObj->getMethodParams(paramCls, numParam, paramObj);
101 string retVal = sumArray(param1);
102 void* retObj = &retVal;
103 rmiObj->sendReturnObj(retObj, "string");
104 /*} else if (methodSign.compare("sumArray(int[])") == 0) {
105 string paramCls[] = { "int[]" };
108 void* paramObj[] = { ¶m1 };
109 rmiObj->getMethodParams(paramCls, numParam, paramObj);
110 int64_t retVal = sumArray(param1);
111 void* retObj = &retVal;
112 rmiObj->sendReturnObj(retObj, "long");*/
113 } else if (methodSign.compare("intsetAndGetA(int)") == 0) {
114 string paramCls[] = { "int" };
117 void* paramObj[] = { ¶m1 };
118 rmiObj->getMethodParams(paramCls, numParam, paramObj);
119 int retVal = setAndGetA(param1);
120 void* retObj = &retVal;
121 rmiObj->sendReturnObj(retObj, "int");
122 } else if (methodSign.compare("intsetACAndGetA(string,int)") == 0) {
123 string paramCls[] = { "string", "int" };
127 void* paramObj[] = { ¶m1, ¶m2 };
128 rmiObj->getMethodParams(paramCls, numParam, paramObj);
129 int retVal = setACAndGetA(param1, param2);
130 void* retObj = &retVal;
131 rmiObj->sendReturnObj(retObj, "int");
132 /*} else if (methodSign.compare("voidregisterCallBack(CallBackInterface)") == 0) {
134 } else if (methodSign.compare("intcallBack()") == 0) {
137 string error = "Signature unreqcognized: " + string(methodSign);
144 void TestClass_Skeleton::setA(int _int) {
150 void TestClass_Skeleton::setB(float _float) {
156 void TestClass_Skeleton::setC(string _string) {
162 string TestClass_Skeleton::sumArray(vector<string> newA) {
164 return tc->sumArray(newA);;
168 /*int64_t TestClass_Skeleton::sumArray(vector<int> newA) {
170 return tc->sumArray(newA);
174 int TestClass_Skeleton::setAndGetA(int newA) {
176 return tc->setAndGetA(newA);
180 int TestClass_Skeleton::setACAndGetA(string newC, int newA) {
182 return tc->setACAndGetA(newC, newA);
186 void TestClass_Skeleton::registerCallback(CallBackInterface* _cb) {
188 tc->registerCallback(_cb);
192 void TestClass_Skeleton::registerCallback(vector<CallBackInterface*> _cb) {
194 tc->registerCallback(_cb);
198 int TestClass_Skeleton::callBack() {