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
This commit is contained in:
@ -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
|
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()
|
bool JobClient::connectToServer()
|
||||||
{
|
{
|
||||||
// Connect to server
|
// Connect to server
|
||||||
@ -190,6 +196,13 @@ bool JobClient::sendResult(ExperimentData& result)
|
|||||||
//Reset timer for new time measurement
|
//Reset timer for new time measurement
|
||||||
m_job_runtime.reset();
|
m_job_runtime.reset();
|
||||||
|
|
||||||
|
return sendResultsToServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool JobClient::sendResultsToServer()
|
||||||
|
{
|
||||||
|
if (m_results.size() != 0) {
|
||||||
if (!connectToServer()) {
|
if (!connectToServer()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -225,6 +238,7 @@ bool JobClient::sendResult(ExperimentData& result)
|
|||||||
close(m_sockfd);
|
close(m_sockfd);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // end-of-namespace: fail
|
} // end-of-namespace: fail
|
||||||
|
|||||||
@ -35,10 +35,12 @@ private:
|
|||||||
std::deque<ExperimentData*> m_results;
|
std::deque<ExperimentData*> m_results;
|
||||||
|
|
||||||
bool connectToServer();
|
bool connectToServer();
|
||||||
|
bool sendResultsToServer();
|
||||||
FailControlMessage_Command tryToGetExperimentData(ExperimentData& exp);
|
FailControlMessage_Command tryToGetExperimentData(ExperimentData& exp);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
JobClient(const std::string& server = SERVER_COMM_HOSTNAME, int port = SERVER_COMM_TCP_PORT);
|
JobClient(const std::string& server = SERVER_COMM_HOSTNAME, int port = SERVER_COMM_TCP_PORT);
|
||||||
|
~JobClient();
|
||||||
/**
|
/**
|
||||||
* Receive experiment data set from (remote) JobServer
|
* Receive experiment data set from (remote) JobServer
|
||||||
* The caller (experiment developer) is responsible for
|
* The caller (experiment developer) is responsible for
|
||||||
|
|||||||
Reference in New Issue
Block a user