2 #include "../IoTRMIObject.hpp"
3 #include "TestClass.hpp"
7 class TestClass_Skeleton {
9 TestClass_Skeleton(TestClassInterface* _tc, int _port);
10 ~TestClass_Skeleton();
12 void waitRequestInvokeMethod();
15 TestClassInterface *tc;
17 //CallBackInterface cbstub;
19 const static int size = 8;
20 string methodSignatures[size] = {
25 //"sumArray(string[])",
28 "intsetACAndGetA(string,int)",
30 "voidregisterCallBack(CallBackInterface)"
35 TestClass_Skeleton::TestClass_Skeleton(TestClassInterface* _tc, int _port) {
37 bool _bResult = false;
39 rmiObj = new IoTRMIObject(_port, &_bResult, methodSignatures, size);
43 TestClass_Skeleton::~TestClass_Skeleton() {
52 void TestClass_Skeleton::waitRequestInvokeMethod() {
54 // Loop continuously waiting for incoming bytes
57 rmiObj->getMethodBytes();
58 string methodSign = rmiObj->getSignature();
59 cout << "Method sign: " << methodSign << endl;
61 if (methodSign.compare("voidsetA(int)") == 0) {
62 string paramCls[] = { "int" };
65 void* paramObj[] = { ¶m1 };
66 rmiObj->getMethodParams(paramCls, numParam, paramObj);
68 } else if (methodSign.compare("voidsetB(float)") == 0) {
69 string paramCls[] = { "float" };
72 void* paramObj[] = { ¶m1 };
73 rmiObj->getMethodParams(paramCls, numParam, paramObj);
75 } else if (methodSign.compare("voidsetC(string)") == 0) {
76 string paramCls[] = { "string" };
79 void* paramObj[] = { ¶m1 };
80 rmiObj->getMethodParams(paramCls, numParam, paramObj);
82 /*} else if (methodSign.compare("sumArray(string[])") == 0) {
83 string paramCls[] = { "string[]" };
85 vector<string> param1;
86 void* paramObj[] = { ¶m1 };
87 rmiObj->getMethodParams(paramCls, numParam, paramObj);
88 string retVal = tc->sumArray(param1);
89 void* retObj = &retVal;
90 rmiObj->sendReturnObj(retObj, "string");*/
91 } else if (methodSign.compare("sumArray(int[])") == 0) {
92 string paramCls[] = { "int[]" };
95 void* paramObj[] = { ¶m1 };
96 rmiObj->getMethodParams(paramCls, numParam, paramObj);
97 int64_t retVal = tc->sumArray(param1);
98 void* retObj = &retVal;
99 rmiObj->sendReturnObj(retObj, "long");
100 } else if (methodSign.compare("intsetAndGetA(int)") == 0) {
101 string paramCls[] = { "int" };
104 void* paramObj[] = { ¶m1 };
105 rmiObj->getMethodParams(paramCls, numParam, paramObj);
106 int retVal = tc->setAndGetA(param1);
107 void* retObj = &retVal;
108 rmiObj->sendReturnObj(retObj, "int");
109 } else if (methodSign.compare("intsetACAndGetA(string,int)") == 0) {
110 string paramCls[] = { "string", "int" };
114 void* paramObj[] = { ¶m1, ¶m2 };
115 rmiObj->getMethodParams(paramCls, numParam, paramObj);
116 int retVal = tc->setACAndGetA(param1, param2);
117 void* retObj = &retVal;
118 rmiObj->sendReturnObj(retObj, "int");
119 /*} else if (methodSign.compare("voidregisterCallBack(CallBackInterface)") == 0) {
121 } else if (methodSign.compare("intcallBack()") == 0) {
124 string error = "Signature unreqcognized: " + string(methodSign);
131 /*void TestClass_Stub::registerCallback(CallBackInterface _cb) {
137 int TestClass_Stub::callBack() {
139 return cb.printInt();