25 #ifndef DISTRIBUTION_MANAGER_CLIENT_CC
26 #define DISTRIBUTION_MANAGER_CLIENT_CC
64 std::chrono::seconds interval(2);
72 m_nodeInfo->setPort(
port);
81 logger, managerNodePort, managerHostName, errMsg)) {
82 logger->error(
"[DistributionManagerClient] - Error when connecting to server: " +
89 if (!myCommunicator.
sendObject(m_nodeInfo, errMsg)) {
91 "[DistributionManagerClient] - HeartBeat Client: Sending nodeInfo "
98 std::this_thread::sleep_for(interval);
102 logger->error(
"[DistributionManagerClient] - Not enough memory");
113 logger->error(
"[DistributionManagerClient] - Error when connecting to server: " + errMsg);
123 if (!myCommunicator.
sendObject(requestToGetListOfNodes, errMsg)) {
124 logger->error(
"[DistributionManagerClient] - HeartBeat Client: Sending nodeInfo object: " + errMsg);
131 logger->error(
"[DistributionManagerClient] - Not enough memory");
139 "[DistributionManagerClient] - getCurrentNodes Error when connecting to server: " +
174 logger->error(
"Error when connecting to server: " + errMsg);
180 if (!myCommunicator.
sendObject(m_queryPermit, errMsg)) {
181 logger->error(
"sendQueryPermitt Client: Sending QueryPermit object: " + errMsg);
192 logger->error(
"sendQueryPermitt Error when connecting to server: " + errMsg);
196 logger->trace(
"Got back From Server Query ID : " +
string(response->getQueryId()));
211 logger->error(
"Error when connecting to server: " + errMsg);
217 if (!myCommunicator.
sendObject(m_queryDone, errMsg)) {
218 logger->error(
"sendQueryDone Client: Sending QueryPermit object: " + errMsg);
227 logger->error(
"PDBDistributionManagerClient -sendQueryDone no ack received: " + errMsg);
231 logger->trace(
"Got back From Server Query ID : " +
string(response->getInfo()));
236 string& manangerNodeHostName,
246 logger, managerNodePort, manangerNodeHostName, errMsg)) {
247 logger->error(
"Error when connecting to server: " + errMsg);
253 if (!myCommunicator.
sendObject(m_PlaceOfQueryPlanner, errMsg)) {
254 logger->error(
"sendQueryDone Client: Sending QueryPermit object: " + errMsg);
264 logger->error(
"ERROR sendQueryPermitt: Uh oh. The type is not what I expected!!\n");
267 logger->trace(
"sendGetPlaceOfQueryPlanner: Got back From Server Query ID : " +
268 string(response->getInfo()));
virtual void registerHandlers(PDBServer &forMe) override
bool sendObject(Handle< ObjType > &sendMe, std::string &errMsg)
bool connectToInternetServer(PDBLoggerPtr logToMeIn, int portNumber, std::string serverAddress, std::string &errMsg)
Handle< ObjType > getNextObject(void *readToHere, bool &success, std::string &errMsg)
void sendHeartBeat(string &managerHostName, int managerNodePort, bool &wasError, string &errMsg)
~DistributionManagerClient()
Handle< Ack > sendGetPlaceOfQueryPlanner(string &hostName, int managerNodePort, Handle< PlaceOfQueryPlanner > m_PlaceOfQueryPlanner, bool &wasError, string &errMsg)
std::shared_ptr< PDBLogger > PDBLoggerPtr
DistributionManagerClient(PDBLoggerPtr logger)
void makeObjectAllocatorBlock(size_t numBytesIn, bool throwExceptionOnFail)
Handle< QueryPermitResponse > sendQueryPermitt(string &hostName, int managerNodePort, pdb::Handle< QueryPermit > m_queryPermit, bool &wasError, string &errMsg)
Handle< Ack > sendQueryDone(string &hostName, int managerNodePort, Handle< QueryDone > m_queryDone, bool &wasError, string &errMsg)
Handle< ListOfNodes > getCurrentNodes(string &managerHostName, int managerNodePort, bool &wasError, string &errMsg)