Tested on RPi, both RPi1 and RPi2; works fine and fast
[iot2.git] / iotjava / iotrmi / C++ / basics / TestClassAdvanced_Stub.cpp
1 #include <iostream>
2 #include <string>
3 #include "TestClassComplete_Stub.hpp"
4 #include "CallBack.hpp"
5
6 using namespace std;
7
8 int main(int argc, char *argv[])
9 {
10
11         int port = 5010;
12         const char* address = "localhost";
13         //const char* address = "192.168.2.191";        // RPi2
14         //const char* skeletonAddress = "128.195.136.170";      // dc-9.calit2.uci.edu
15         //const char* callbackAddress = "128.195.204.132";      // dw-2.eecs.uci.edu (this machine)
16         const char* skeletonAddress = "192.168.2.108";  // RPi1
17         const char* callbackAddress = "192.168.2.191";  // RPi2
18         int rev = 0;
19         bool bResult = false;
20         vector<int> ports;
21         ports.push_back(12345);
22
23         TestClassComplete *tcStub = new TestClassComplete_Stub(port, skeletonAddress, callbackAddress, rev, &bResult, ports);
24         cout << "==== ENUM ====" << endl;
25         Enum en;
26         en = APPLE;
27         Enum res = tcStub->handleEnum(en);
28         cout << "Return value: " << res << endl;
29         Enum resComp = tcStub->handleEnumComplex(en, 23, 'c');
30         cout << "Return value: " << resComp << endl;
31         vector<Enum> vecEn;
32         vecEn.push_back(APPLE);
33         vecEn.push_back(ORANGE);
34         vecEn.push_back(APPLE);
35         vecEn.push_back(GRAPE);
36         vector<Enum> vecRes = tcStub->handleEnumArray(vecEn);
37         for (Enum en : vecRes) {
38                 cout << "Enum value: " << en << endl;
39         }
40         vector<Enum> vecRes2 = tcStub->handleEnumList(vecEn);
41         for (Enum en : vecRes2) {
42                 cout << "Enum value: " << en << endl;
43         }
44         vector<Enum> vecRes3 = tcStub->handleEnumComplex2(vecEn, 23, 'c');
45         for (Enum en : vecRes3) {
46                 cout << "Enum value: " << en << endl;
47         }
48
49
50         cout << "==== STRUCT ====" << endl;
51         Struct str;
52         str.name = "Rahmadi";
53         str.value = 0.123;
54         str.year = 2016;
55 /*      Struct resStr = tcStub->handleStruct(str);
56         cout << "Name: " << resStr.name << endl;
57         cout << "Value:" << resStr.value << endl;
58         cout << "Year" << resStr.year << endl;
59         Struct resStr2 = tcStub->handleStructComplex(23, 'c', str);
60         cout << "Name: " << resStr2.name << endl;
61         cout << "Value:" << resStr2.value << endl;
62         cout << "Year" << resStr2.year << endl;*/
63         Struct str2;
64         str2.name = "Trimananda";
65         str2.value = 0.124;
66         str2.year = 2017;
67         vector<Struct> vecStr;
68         vecStr.push_back(str);
69         vecStr.push_back(str2);
70 /*      vector<Struct> vecRetStr = tcStub->handleStructArray(vecStr);
71         for (Struct st : vecRetStr) {
72                 cout << "Name: " << st.name << endl;
73                 cout << "Value: " << st.value << endl;
74                 cout << "Year: " << st.year << endl;
75         }
76         vector<Struct> vecRetStr2 = tcStub->handleStructList(vecStr);
77         for (Struct st : vecRetStr2) {
78                 cout << "Name: " << st.name << endl;
79                 cout << "Value: " << st.value << endl;
80                 cout << "Year: " << st.year << endl;
81         }
82         vector<Struct> vecRetStr3 = tcStub->handleStructComplex2(23, 'c', vecStr);
83         for (Struct st : vecRetStr3) {
84                 cout << "Name: " << st.name << endl;
85                 cout << "Value:" << st.value << endl;
86                 cout << "Year" << st.year << endl;
87         }
88         vector<Enum> vecRes4 = tcStub->handleEnumStruct(vecEn, vecStr, 'c');
89         for (Enum en : vecRes4) {
90                 cout << "Enum value: " << en << endl;
91         }*/
92
93 /*      cout << "==== CALLBACK ====" << endl;
94         CallBackInterface *cbSingle = new CallBack(2354);
95         tcStub->registerCallback(cbSingle);
96         cout << "Return value from callback: " << tcStub->callBack() << endl;
97         CallBackInterface *cb1 = new CallBack(23);
98         CallBackInterface *cb2 = new CallBack(33);
99         CallBackInterface *cb3 = new CallBack(43);
100         vector<CallBackInterface*> cb;
101         cb.push_back(cb1);
102         cb.push_back(cb2);
103         cb.push_back(cb3);
104         tcStub->registerCallbackArray(cb);
105         cout << "Return value from callback: " << tcStub->callBack() << endl;*/
106         CallBackInterface *cb4 = new CallBack(53);
107         CallBackInterface *cb5 = new CallBack(63);
108         CallBackInterface *cb6 = new CallBack(73);
109         vector<CallBackInterface*> cblist;
110         cblist.push_back(cb4);
111         cblist.push_back(cb5);
112         cblist.push_back(cb6);
113 //      tcStub->registerCallbackList(cblist);
114 //      cout << "Return value from callback: " << tcStub->callBack() << endl;
115 /*      tcStub->registerCallbackComplex(23, cblist, 0.1234);
116         cout << "Return value from callback: " << tcStub->callBack() << endl;
117         vector<Enum> vecRes5 = tcStub->handleAll(vecEn, vecStr, 'c', cblist);
118         for (Enum en : vecRes5) {
119                 cout << "Enum value: " << en << endl;
120         }
121
122         vector<Enum> vecRes6 = tcStub->handleCallbackEnum(vecEn, 'c', cblist);
123         for (Enum en : vecRes6) {
124                 cout << "Enum value: " << en << endl;
125         }*/
126         //vector<Enum> vecRes7 = tcStub->handleAllTwo(vecEn, vecStr, vecStr, vecEn, 'c', cblist, cblist);
127         /*vector<Enum> vecRes7 = tcStub->handleAllTwo(vecEn, vecEn, vecStr, vecStr, 'c', cblist, cblist);
128         for (Enum en : vecRes7) {
129                 cout << "Enum value: " << en << endl;
130         }
131         vector<Enum> vecRes8 = tcStub->handleEnumTwo(vecEn, vecEn);
132         for (Enum en : vecRes8) {
133                 cout << "Enum value: " << en << endl;
134         }
135         vector<Enum> vecRes9 = tcStub->handleEnumThree(vecEn, vecEn, vecStr, vecStr);
136         for (Enum en : vecRes9) {
137                 cout << "Enum value: " << en << endl;
138         }
139         vector<Struct> vecRetStr2 = tcStub->handleStructTwo(vecStr, vecStr);
140         for (Struct st : vecRetStr2) {
141                 cout << "Name: " << st.name << endl;
142                 cout << "Value: " << st.value << endl;
143                 cout << "Year: " << st.year << endl;
144         }*/
145         vector<Struct> vecRetStr3 = tcStub->handleStructThree(vecStr, vecStr, vecStr);
146         for (Struct st : vecRetStr3) {
147                 cout << "Name: " << st.name << endl;
148                 cout << "Value: " << st.value << endl;
149                 cout << "Year: " << st.year << endl;
150         }
151
152         return 0;
153 }