#include <chrono>
#include "TestClassInterface.hpp"
#include "CallBackInterfaceWithCallBack.hpp"
+#include "Enum.hpp"
+#include "Struct.hpp"
using namespace std;
void registerCallbackList(vector<CallBackInterfaceWithCallBack*> _cb);
void registerCallbackComplex(int in, vector<CallBackInterfaceWithCallBack*> _cb, double db);
int callBack();
+ vector<Enum> handleCallbackEnum(vector<Enum> en, char c, vector<CallBackInterfaceWithCallBack*> _cb);
// Enum
Enum handleEnum(Enum en);
vector<Enum> handleEnumList(vector<Enum> vecEn);
Enum handleEnumComplex(Enum en, int i, char c);
vector<Enum> handleEnumComplex2(vector<Enum> en, int i, char c);
+ vector<Enum> handleEnumTwo(vector<Enum> en1, vector<Enum> en2);
+ vector<Enum> handleEnumThree(vector<Enum> en1, vector<Enum> en2, vector<Struct> str1, vector<Struct> str2);
// Struct
Struct handleStruct(Struct str);
vector<Struct> handleStructList(vector<Struct> vecStr);
Struct handleStructComplex(int in, char c, Struct str);
vector<Struct> handleStructComplex2(int in, char c, vector<Struct> vecStr);
+ vector<Struct> handleStructTwo(vector<Struct> str1, vector<Struct> str2);
+ vector<Struct> handleStructThree(vector<Struct> str1, vector<Struct> str2, vector<Struct> str3);
vector<Enum> handleEnumStruct(vector<Enum> en, vector<Struct> str, char c);
vector<Enum> handleAll(vector<Enum> en, vector<Struct> str, char c, vector<CallBackInterfaceWithCallBack*> _cb);
+ vector<Enum> handleAllTwo(vector<Enum> en1, vector<Enum> en2, vector<Struct> str1, vector<Struct> str2, char c,
+ vector<CallBackInterfaceWithCallBack*> _cb1, vector<CallBackInterfaceWithCallBack*> _cb2);
int getA();
void setA(int _int);
}
-void TestClass::registerCallback(CallBackInterfaceWithCallBack* _cb) {
-
- cbvec.push_back(_cb);
- cout << "Registering callback object!" << endl;
-}
-
-
void TestClass::registerCallbackArray(vector<CallBackInterfaceWithCallBack*> _cb) {
for (CallBackInterfaceWithCallBack* cb : _cb) {
}
+void TestClass::registerCallback(CallBackInterfaceWithCallBack* _cb) {
+
+ cbvec.push_back(_cb);
+ cout << "Registering callback object!" << endl;
+}
+
+
int TestClass::callBack() {
int sum = 0;
for (CallBackInterfaceWithCallBack* cb : cbvec) {
+ //cout << "Sum: " << sum << endl;
sum = sum + cb->printInt();
+ cb->needCallback(this);
+ //cb->needCallback(this);
+ TestClass* tc = new TestClass();
+ cb->needCallback(tc);
+ //cout << "Sum after: " << sum << endl;
}
+ cout << "About to return sum: " << sum << endl;
return sum;
}
}
+vector<Enum> TestClass::handleEnumTwo(vector<Enum> en1, vector<Enum> en2) {
+
+ for (Enum en : en1) {
+ cout << "Enum1: " << en << endl;
+ }
+ for (Enum en : en2) {
+ cout << "Enum2: " << en << endl;
+ }
+
+ return en1;
+}
+
+
+vector<Enum> TestClass::handleEnumThree(vector<Enum> en1, vector<Enum> en2, vector<Struct> str1, vector<Struct> str2) {
+
+ for (Enum en : en1) {
+ cout << "Enum1: " << en << endl;
+ }
+ for (Enum en : en2) {
+ cout << "Enum2: " << en << endl;
+ }
+
+ return en1;
+}
+
+
// Struct
Struct TestClass::handleStruct(Struct str) {
}
+vector<Struct> TestClass::handleStructTwo(vector<Struct> str1, vector<Struct> str2) {
+
+ for (Struct str : str1) {
+
+ cout << "Name: " << str.name << endl;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+ }
+
+ return str2;
+}
+
+
+vector<Struct> TestClass::handleStructThree(vector<Struct> str1, vector<Struct> str2, vector<Struct> str3) {
+
+ for (Struct str : str1) {
+
+ cout << "Name: " << str.name << endl;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+ }
+
+ return str2;
+}
+
+
Struct TestClass::handleStructComplex(int in, char c, Struct str) {
cout << "Name: " << str.name << endl;
}
+vector<Enum> TestClass::handleAllTwo(vector<Enum> en1, vector<Enum> en2, vector<Struct> str1, vector<Struct> str2, char c,
+ vector<CallBackInterfaceWithCallBack*> _cb1, vector<CallBackInterfaceWithCallBack*> _cb2) {
+
+ for (CallBackInterfaceWithCallBack* cb : _cb1) {
+ cbvec.push_back(cb);
+ cout << "Registering callback object in array!" << endl;
+ }
+
+ for (Struct st : str1) {
+ cout << "Name: " << st.name << endl;
+ cout << "Value: " << st.value << endl;
+ cout << "Year: " << st.year << endl;
+ }
+
+ cout << "Char: " << c << endl;
+
+ return en1;
+}
+
+
+vector<Enum> TestClass::handleCallbackEnum(vector<Enum> en, char c, vector<CallBackInterfaceWithCallBack*> _cb) {
+
+ for (CallBackInterfaceWithCallBack* cb : _cb) {
+ cbvec.push_back(cb);
+ cout << "Registering callback object in array!" << endl;
+ }
+
+ cout << "Char: " << c << endl;
+
+ return en;
+}
+
+
string TestClass::sumArray(vector<string> newA) {
string sum = "";