bc67c92a8a107ab20fa612dc83433e6c7a40cba0
[iot2.git] / iotjava / iotrmi / C++ / sample / CallBack_CBSkeleton.hpp
1 #ifndef _CALLBACK_CBSKELETON_HPP__
2 #define _CALLBACK_CBSKELETON_HPP__
3
4 #include <iostream>
5 #include "CallBackInterface.hpp"
6 #include "../IoTRMIObject.hpp"
7
8
9 using namespace std;
10
11 class CallBack_CBSkeleton : public CallBackInterface {
12         public:
13                 CallBack_CBSkeleton(CallBackInterface* _cb, int _objectId);
14                 ~CallBack_CBSkeleton();
15
16                 void                    invokeMethod(IoTRMIObject* rmiObj);
17                 int                             printInt();
18                 void                    setInt(int _i);
19
20                 void                    ___printInt(IoTRMIObject* rmiObj);
21                 void                    ___setInt(IoTRMIObject* rmiObj);
22
23         private:
24                 CallBackInterface       *cb;
25                 int                                                     objectId = 0;
26 };
27
28
29 // Constructor
30 CallBack_CBSkeleton::CallBack_CBSkeleton(CallBackInterface* _cb, int _objectId) {
31
32         cb = _cb;
33         objectId = _objectId;
34 }
35
36
37 CallBack_CBSkeleton::~CallBack_CBSkeleton() {
38
39 }
40
41
42 int CallBack_CBSkeleton::printInt() {
43
44         return cb->printInt();
45 }
46
47
48 void CallBack_CBSkeleton::___printInt(IoTRMIObject* rmiObj) {
49
50         string paramCls[] = { };
51         int numParam = 0;
52         void* paramObj[] = { };
53         rmiObj->getMethodParams(paramCls, numParam, paramObj);
54         int retVal = printInt();
55         void* retObj = &retVal;
56         rmiObj->sendReturnObj(retObj, "int");
57 }
58
59
60 void CallBack_CBSkeleton::setInt(int _i) {
61
62         cb->setInt(_i);
63 }
64
65
66 void CallBack_CBSkeleton::___setInt(IoTRMIObject* rmiObj) {
67
68         string paramCls[] = { "int" };
69         int numParam = 1;
70         int param1 = 1;
71         void* paramObj[] = { &param1 };
72         rmiObj->getMethodParams(paramCls, numParam, paramObj);
73         setInt(param1);
74 }
75
76
77 void CallBack_CBSkeleton::invokeMethod(IoTRMIObject* rmiObj) {
78
79         int methodId = rmiObj->getMethodId();
80         
81         switch (methodId) {
82                 case 0 : ___printInt(rmiObj); break;
83                 case 1 : ___setInt(rmiObj); break;
84                 default:
85                         string error = "Method Id not recognized!";
86                         throw error;
87         }
88 }
89
90
91 #endif
92