0ab69b50f87094b55544c4bccd7cf644b9a7e250
[iot2.git] / iotjava / iotrmi / C++ / sample / CallBack_CBStub.hpp
1 #ifndef _CALLBACK_CBSTUB_HPP__
2 #define _CALLBACK_CBSTUB_HPP__
3
4 #include <iostream>
5 #include "CallBackInterface.hpp"
6 #include "../IoTRMICall.hpp"
7
8 using namespace std;
9
10 class CallBack_CBStub : public CallBackInterface {
11         public:
12                 CallBack_CBStub();
13                 CallBack_CBStub(IoTRMICall* _rmiCall, int _objectId);
14                 ~CallBack_CBStub();
15
16                 int                                             printInt();
17                 void                                    setInt(int _i);
18
19                 const static int                size = 2;
20                 const static string     methodSignatures[size];
21
22         private:                
23
24                 IoTRMICall      *rmiCall;
25                 int             objectId = 0;   // Default value is 0
26 };
27
28
29 const string CallBack_CBStub::methodSignatures[CallBack_CBStub::size] = {
30
31         "intprintInt()",
32         "voidsetInt(int)"
33 };
34
35
36 // Constructor
37 CallBack_CBStub::CallBack_CBStub() {
38
39         rmiCall = NULL;
40 }
41
42
43 CallBack_CBStub::CallBack_CBStub(IoTRMICall* _rmiCall, int _objectId) {
44
45         objectId = _objectId;
46         rmiCall = _rmiCall;
47 }
48
49
50 CallBack_CBStub::~CallBack_CBStub() {
51
52         if (rmiCall != NULL) {
53                 delete rmiCall;
54                 rmiCall = NULL;
55         }
56 }
57
58
59 int CallBack_CBStub::printInt() {
60
61         cout << "Got here in printInt()" << endl;
62         int numParam = 0;
63         int methodId = 0;
64         string retType = "int";
65         string paramCls[] = { };
66         void* paramObj[] = { };
67         int retVal = 0;
68         void* retObj = &retVal;
69         rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
70         return retVal;
71 }
72
73
74 void CallBack_CBStub::setInt(int _i) {
75
76         int numParam = 1;
77         int methodId = 1;
78         string retType = "void";
79         string paramCls[] = { "int" };
80         void* paramObj[] = { &_i };
81         void* retObj = NULL;
82         rmiCall->remoteCall(objectId, methodId, retType, paramCls, paramObj, numParam, retObj);
83 }
84
85 #endif
86