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] = {
27 "intsetACAndGetA(string,int)",
29 "voidregisterCallBack(CallBackInterface)"
34 TestClass_Skeleton::TestClass_Skeleton(TestClassInterface* _tc, int _port) {
36 bool _bResult = false;
38 rmiObj = new IoTRMIObject(_port, &_bResult, methodSignatures, size);
42 TestClass_Skeleton::~TestClass_Skeleton() {
51 void TestClass_Skeleton::waitRequestInvokeMethod() {
53 // Loop continuously waiting for incoming bytes
56 rmiObj->getMethodBytes();
57 string methodSign = rmiObj->getSignature();
58 cout << "Method sign: " << methodSign << endl;
60 if (methodSign.compare("voidsetA(int)") == 0) {
61 string paramCls[] = { "int" };
64 void* paramObj[] = { ¶m1 };
65 rmiObj->getMethodParams(paramCls, numParam, paramObj);
67 } else if (methodSign.compare("voidsetB(float)") == 0) {
68 string paramCls[] = { "float" };
71 void* paramObj[] = { ¶m1 };
72 rmiObj->getMethodParams(paramCls, numParam, paramObj);
74 } else if (methodSign.compare("voidsetC(string)") == 0) {
75 string paramCls[] = { "string" };
78 void* paramObj[] = { ¶m1 };
79 rmiObj->getMethodParams(paramCls, numParam, paramObj);
81 } else if (methodSign.compare("sumArray(string[])") == 0) {
82 string paramCls[] = { "string[]" };
84 vector<string> param1;
85 void* paramObj[] = { ¶m1 };
86 rmiObj->getMethodParams(paramCls, numParam, paramObj);
87 string retVal = tc->sumArray(param1);
88 void* retObj = &retVal;
89 rmiObj->sendReturnObj(retObj, "string");
90 } else if (methodSign.compare("intsetAndGetA(int)") == 0) {
91 string paramCls[] = { "int" };
94 void* paramObj[] = { ¶m1 };
95 rmiObj->getMethodParams(paramCls, numParam, paramObj);
96 int retVal = tc->setAndGetA(param1);
97 void* retObj = &retVal;
98 rmiObj->sendReturnObj(retObj, "int");
99 } else if (methodSign.compare("intsetACAndGetA(string,int)") == 0) {
100 string paramCls[] = { "string", "int" };
104 void* paramObj[] = { ¶m1, ¶m2 };
105 rmiObj->getMethodParams(paramCls, numParam, paramObj);
106 int retVal = tc->setACAndGetA(param1, param2);
107 void* retObj = &retVal;
108 rmiObj->sendReturnObj(retObj, "int");
109 /*} else if (methodSign.compare("voidregisterCallBack(CallBackInterface)") == 0) {
111 } else if (methodSign.compare("intcallBack()") == 0) {
114 string error = "Signature unreqcognized: " + string(methodSign);
121 /*void TestClass_Stub::registerCallback(CallBackInterface _cb) {
127 int TestClass_Stub::callBack() {
129 return cb.printInt();