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