+#ifndef _TESTCLASS_HPP__
+#define _TESTCLASS_HPP__
+
#include <iostream>
+#include <thread>
+#include <chrono>
#include "TestClassInterface.hpp"
+#include "StructC.hpp"
using namespace std;
void registerCallback(CallBackInterface* _cb);
void registerCallback(vector<CallBackInterface*> _cb);
int callBack();
+ vector<data> handleStruct(vector<data> vecData);
+ vector<EnumC> handleEnum(vector<EnumC> vecEn);
+
+ void thread1();
+ void thread2();
private:
int intA;
}
+vector<data> TestClass::handleStruct(vector<data> vecData) {
+
+ for (data dat : vecData) {
+
+ cout << "Name: " << dat.name << endl;
+ 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;
+}
+
+
//int TestClass::callBack() {
// 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() {
for (CallBackInterface* cb : cbvec) {
sum = sum + cb->printInt();
}
+
+ return sum;
+/* thread th1 (&TestClass::thread1, this);
+ thread th2 (&TestClass::thread2, this);
+
+ th1.join();
+ th2.join();
+
+ return 1;*/
}
+#endif
+