#define _TESTCLASS_HPP__
#include <iostream>
+#include <thread>
+#include <chrono>
#include "TestClassInterface.hpp"
#include "StructC.hpp"
void registerCallback(CallBackInterface* _cb);
void registerCallback(vector<CallBackInterface*> _cb);
int callBack();
- void handleStruct(vector<data> vecData);
+ vector<data> handleStruct(vector<data> vecData);
+ vector<EnumC> handleEnum(vector<EnumC> vecEn);
+
+ void thread1();
+ void thread2();
private:
int intA;
}
-void TestClass::handleStruct(vector<data> vecData) {
+vector<data> TestClass::handleStruct(vector<data> vecData) {
for (data dat : vecData) {
cout << "Value: " << dat.value << endl;
cout << "Year: " << dat.year << endl;
}
+ data newData;
+ newData.name = "Anonymous";
+ newData.value = 1.33;
+ newData.year = 2016;
+ vecData.push_back(newData);
+
+ return vecData;
+}
+
+
+vector<EnumC> TestClass::handleEnum(vector<EnumC> vecEn) {
+
+ for (EnumC en : vecEn) {
+ cout << "Enum: " << en << endl;
+ }
+
+ return vecEn;
}
// return cb.printInt();
//}
+void TestClass::thread1() {
+
+ CallBackInterface* cb = cbvec[0];
+ for(int i = 0; i < 10; i++) {
+ cb->printInt();
+ this_thread::sleep_for(chrono::seconds(1));
+ }
+}
+
+void TestClass::thread2() {
+
+ CallBackInterface* cb = cbvec[1];
+ for(int i = 0; i < 10; i++) {
+ cb->printInt();
+ this_thread::sleep_for(chrono::seconds(1));
+ }
+}
int TestClass::callBack() {
int sum = 0;
for (CallBackInterface* cb : cbvec) {
- //cout << "Sum: " << sum << endl;
- //sum = sum + cb->printInt();
- cb->setInt(sum++);
+ sum = sum + cb->printInt();
}
- //CallBackInterface* cb = cbvec[0];
- //sum = cb->printInt();
- //sum = sum + cb->printInt();
- //cb->printInt();
- //CallBackInterface* cb1 = cbvec[0];
- //cb1->printInt();
-
return sum;
+/* thread th1 (&TestClass::thread1, this);
+ thread th2 (&TestClass::thread2, this);
+
+ th1.join();
+ th2.join();
+
+ return 1;*/
}
#endif