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);
24 TestClassInterface *tc;
26 //CallBackInterface cbstub;
28 const static int size = 8;
29 string methodSignatures[size] = {
37 "intsetACAndGetA(string,int)",
39 "voidregisterCallBack(CallBackInterface)"
44 TestClass_Skeleton::TestClass_Skeleton(TestClassInterface* _tc, int _port) {
46 bool _bResult = false;
48 rmiObj = new IoTRMIObject(_port, &_bResult, methodSignatures, size);
52 TestClass_Skeleton::~TestClass_Skeleton() {
61 void TestClass_Skeleton::waitRequestInvokeMethod() {
63 // Loop continuously waiting for incoming bytes
66 rmiObj->getMethodBytes();
67 string methodSign = rmiObj->getSignature();
68 cout << "Method sign: " << methodSign << endl;
70 if (methodSign.compare("voidsetA(int)") == 0) {
71 string paramCls[] = { "int" };
74 void* paramObj[] = { ¶m1 };
75 rmiObj->getMethodParams(paramCls, numParam, paramObj);
77 } else if (methodSign.compare("voidsetB(float)") == 0) {
78 string paramCls[] = { "float" };
81 void* paramObj[] = { ¶m1 };
82 rmiObj->getMethodParams(paramCls, numParam, paramObj);
84 } else if (methodSign.compare("voidsetC(string)") == 0) {
85 string paramCls[] = { "string" };
88 void* paramObj[] = { ¶m1 };
89 rmiObj->getMethodParams(paramCls, numParam, paramObj);
91 } else if (methodSign.compare("sumArray(string[])") == 0) {
92 string paramCls[] = { "string[]" };
94 vector<string> param1;
95 void* paramObj[] = { ¶m1 };
96 rmiObj->getMethodParams(paramCls, numParam, paramObj);
97 string retVal = sumArray(param1);
98 void* retObj = &retVal;
99 rmiObj->sendReturnObj(retObj, "string");
100 /*} else if (methodSign.compare("sumArray(int[])") == 0) {
101 string paramCls[] = { "int[]" };
104 void* paramObj[] = { ¶m1 };
105 rmiObj->getMethodParams(paramCls, numParam, paramObj);
106 int64_t retVal = sumArray(param1);
107 void* retObj = &retVal;
108 rmiObj->sendReturnObj(retObj, "long");*/
109 } else if (methodSign.compare("intsetAndGetA(int)") == 0) {
110 string paramCls[] = { "int" };
113 void* paramObj[] = { ¶m1 };
114 rmiObj->getMethodParams(paramCls, numParam, paramObj);
115 int retVal = setAndGetA(param1);
116 void* retObj = &retVal;
117 rmiObj->sendReturnObj(retObj, "int");
118 } else if (methodSign.compare("intsetACAndGetA(string,int)") == 0) {
119 string paramCls[] = { "string", "int" };
123 void* paramObj[] = { ¶m1, ¶m2 };
124 rmiObj->getMethodParams(paramCls, numParam, paramObj);
125 int retVal = setACAndGetA(param1, param2);
126 void* retObj = &retVal;
127 rmiObj->sendReturnObj(retObj, "int");
128 /*} else if (methodSign.compare("voidregisterCallBack(CallBackInterface)") == 0) {
130 } else if (methodSign.compare("intcallBack()") == 0) {
133 string error = "Signature unreqcognized: " + string(methodSign);
140 void TestClass_Skeleton::setA(int _int) {
146 void TestClass_Skeleton::setB(float _float) {
152 void TestClass_Skeleton::setC(string _string) {
158 string TestClass_Skeleton::sumArray(vector<string> newA) {
160 return tc->sumArray(newA);;
164 /*int64_t TestClass_Skeleton::sumArray(vector<int> newA) {
166 return tc->sumArray(newA);
170 int TestClass_Skeleton::setAndGetA(int newA) {
172 return tc->setAndGetA(newA);
176 int TestClass_Skeleton::setACAndGetA(string newC, int newA) {
178 return tc->setACAndGetA(newC, newA);
182 /*void TestClass_Skeleton::registerCallback(CallBackInterface _cb) {
184 tc->registerCallback(_cb);
188 int TestClass_Skeleton::callBack() {
190 return tc->callBack();