+// Enum
+Enum TestClass::handleEnum(Enum en) {
+
+ cout << "Enum: " << en << endl;
+
+ return en;
+}
+
+
+vector<Enum> TestClass::handleEnumArray(vector<Enum> vecEn) {
+
+ for (Enum en : vecEn) {
+ cout << "Enum: " << en << endl;
+ }
+
+ return vecEn;
+}
+
+
+vector<Enum> TestClass::handleEnumList(vector<Enum> vecEn) {
+
+ for (Enum en : vecEn) {
+ cout << "Enum: " << en << endl;
+ }
+
+ return vecEn;
+}
+
+
+Enum TestClass::handleEnumComplex(Enum en, int i, char c) {
+
+ cout << "Enum: " << en << endl;
+ cout << "Integer: " << i << endl;
+ cout << "Char: " << c << endl;
+
+ return en;
+}
+
+
+vector<Enum> TestClass::handleEnumComplex2(vector<Enum> vecEn, int in, char c) {
+
+ for (Enum en : vecEn) {
+ cout << "Enum: " << en << endl;
+ }
+ cout << "Integer: " << in << endl;
+ cout << "Char: " << c << endl;
+
+ return vecEn;
+}
+
+
+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) {
+
+ cout << "Name: " << str.name << endl;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+
+ Struct test;
+ test.name = "Anonymous";
+ test.value = 1.33;
+ test.year = 2016;
+ str = test;
+
+ return str;
+}
+
+
+vector<Struct> TestClass::handleStructArray(vector<Struct> vecStr) {
+
+ for (Struct str : vecStr) {
+
+ cout << "Name: " << str.name << endl;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+ }
+ Struct test;
+ test.name = "Anonymous";
+ test.value = 1.33;
+ test.year = 2016;
+ vecStr.push_back(test);
+
+ return vecStr;
+}
+
+
+vector<Struct> TestClass::handleStructList(vector<Struct> vecStr) {
+
+ for (Struct str : vecStr) {
+
+ cout << "Name: " << str.name << endl;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+ }
+ Struct test;
+ test.name = "Trimananda";
+ test.value = 1.33;
+ test.year = 2016;
+ vecStr.push_back(test);
+
+ return vecStr;
+}
+
+
+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;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+
+ cout << "Integer: " << in << endl;
+ cout << "Char: " << c << endl;
+
+ Struct test;
+ test.name = "Anonymous";
+ test.value = 1.33;
+ test.year = 2016;
+ str = test;
+
+ return str;
+}
+
+
+vector<Struct> TestClass::handleStructComplex2(int in, char c, vector<Struct> vecStr) {
+
+ for (Struct str : vecStr) {
+ cout << "Name: " << str.name << endl;
+ cout << "Value: " << str.value << endl;
+ cout << "Year: " << str.year << endl;
+ }
+
+ cout << "Integer: " << in << endl;
+ cout << "Char: " << c << endl;
+
+ return vecStr;
+}
+
+
+vector<Enum> TestClass::handleEnumStruct(vector<Enum> en, vector<Struct> str, char c) {
+
+ for (Struct st : str) {
+ cout << "Name: " << st.name << endl;
+ cout << "Value: " << st.value << endl;
+ cout << "Year: " << st.year << endl;
+ }
+
+ cout << "Char: " << c << endl;
+
+ return en;
+}
+
+
+vector<Enum> TestClass::handleAll(vector<Enum> en, vector<Struct> str, char c, vector<CallBackInterfaceWithCallBack*> _cb) {
+
+ for (CallBackInterfaceWithCallBack* cb : _cb) {
+ cbvec.push_back(cb);
+ cout << "Registering callback object in array!" << endl;
+ }
+
+ for (Struct st : str) {
+ cout << "Name: " << st.name << endl;
+ cout << "Value: " << st.value << endl;
+ cout << "Year: " << st.year << endl;
+ }
+
+ cout << "Char: " << c << endl;
+
+ return en;
+}
+
+
+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;
+}
+
+