#include "MultipleThreads.h" #include "MySQLClient.h" #include #include namespace Test { bool Thread1() { std::string hostname1 = "MySQL"; std::string username1 = "datalog"; std::string password1 = "NfhdUwjjdRbslR"; std::string database1 = "datalog"; MySQL::MySQLClient MySQLClient1; MySQLClient1.Connect(hostname1, username1, password1, database1); if (!MySQLClient1.Connected()) return false; std::stringstream query1; query1 << "SELECT * FROM `datalog` LIMIT 1;"; auto result1 = MySQLClient1.ExecuteQuery(query1.str()); if (result1.RowsCount() == 0) return false; result1.First(); auto id1 = result1.Int("device_id"); if (id1 == 0) return false; return true; } bool Thread2() { std::string hostname2 = "Pi"; std::string username2 = "root"; std::string password2 = "Wh1sK3y"; std::string database2 = "domotica"; MySQL::MySQLClient MySQLClient2; MySQLClient2.Connect(hostname2, username2, password2, database2); if (!MySQLClient2.Connected()) return false; std::stringstream query2; query2 << "SELECT * FROM `device` LIMIT 1;"; auto result2 = MySQLClient2.ExecuteQuery(query2.str()); if (result2.RowsCount() == 0) return false; result2.First(); auto id2 = result2.Int("id"); if (id2 == 0) return false; return true; } bool MultipleThreads() { Logging::Log(Logging::Severity::Info, "MultipleThreads"); try { bool thread1 = [] { Thread1(); }; bool thread2 = [] { Thread2(); }; if (!thread1 || !thread2) return false; } catch (const std::exception& e) { std::stringstream ss; ss << "ERROR: " << e.what() << std::endl; Logging::Log(Logging::Severity::Error, ss.str()); return false; } return true; } } // namespace Test