From 179272abead7c6e5564d7de25f2ff4b1d1ad6a2c Mon Sep 17 00:00:00 2001 From: hellwig Date: Thu, 31 Jan 2013 16:33:43 +0000 Subject: [PATCH] Once an experiment terminates, all results will be sent to the server. One an experiment terminates, sending the results back to the server will be initiated by the jobclients destructor. git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2042 8c4709b5-6ec9-48aa-a5cd-a96041d1645a --- src/core/efw/JobClient.cc | 14 ++++++++++++++ src/core/efw/JobClient.hpp | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/core/efw/JobClient.cc b/src/core/efw/JobClient.cc index afedcaa3..de6c29d9 100644 --- a/src/core/efw/JobClient.cc +++ b/src/core/efw/JobClient.cc @@ -19,6 +19,12 @@ JobClient::JobClient(const std::string& server, int port) m_job_throughput = 1; // client gets only one job at the first request } +JobClient::~JobClient() +{ + // Send back completed jobs to the server + sendResultsToServer(); +} + bool JobClient::connectToServer() { // Connect to server @@ -190,6 +196,13 @@ bool JobClient::sendResult(ExperimentData& result) //Reset timer for new time measurement m_job_runtime.reset(); + return sendResultsToServer(); + } +} + +bool JobClient::sendResultsToServer() +{ + if (m_results.size() != 0) { if (!connectToServer()) { return false; } @@ -225,6 +238,7 @@ bool JobClient::sendResult(ExperimentData& result) close(m_sockfd); return true; } + return true; } } // end-of-namespace: fail diff --git a/src/core/efw/JobClient.hpp b/src/core/efw/JobClient.hpp index 8e517989..c0c8b8b2 100644 --- a/src/core/efw/JobClient.hpp +++ b/src/core/efw/JobClient.hpp @@ -35,10 +35,12 @@ private: std::deque m_results; bool connectToServer(); - + bool sendResultsToServer(); FailControlMessage_Command tryToGetExperimentData(ExperimentData& exp); + public: JobClient(const std::string& server = SERVER_COMM_HOSTNAME, int port = SERVER_COMM_TCP_PORT); + ~JobClient(); /** * Receive experiment data set from (remote) JobServer * The caller (experiment developer) is responsible for