/* * ReceiveResultsOperation.hpp * * Created on: Dec 11, 2011 * Author: heber */ #ifndef FRAGMENTCONTROLLER_RECEIVERESULTSOPERATION_HPP_ #define FRAGMENTCONTROLLER_RECEIVERESULTSOPERATION_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include "JobMarket/Connection.hpp" #include "JobMarket/Operations/AsyncOperation.hpp" #include "JobMarket/Results/FragmentResult.hpp" #include "JobMarket/types.hpp" class ReceiveResultsOperation : public AsyncOperation { public: /// Constructor for class ReceiveResultsOperation. ReceiveResultsOperation(Connection &_connection, const boost::function _callback_on_success = NoOpCallback, const boost::function _callback_on_failure = NoOpCallback) : AsyncOperation(std::string("receiveresults"), _connection, _callback_on_success, _callback_on_failure), jobids(emptyids) {} /// Destructor for class ReceiveResultsOperation ~ReceiveResultsOperation() {} public: // virtual function pointer to the connection handler virtual void handle_connect(const boost::system::error_code& e, boost::asio::ip::tcp::resolver::iterator endpoint_iterator); /// Callback function when sending desired job ids. void handle_SendJobIds(const boost::system::error_code& e); /// Callback function when results are about to be received. void handle_ReceivingResults(const boost::system::error_code& e); /// Callback function when results have been received. void handle_ReceivedResults(const boost::system::error_code& e); /// Getter for results std::vector getResults(); /// Setter for internal vector of jobids to check void setJobIds(const std::set &_jobids) { const_cast &>(jobids) = _jobids; } protected: //!> internal ref to the jobids to check const std::set &jobids; /// bunch of results std::vector results; private: //!> internal empty ids vector to use as default ref static const std::set emptyids; }; #endif /* FRAGMENTCONTROLLER_RECEIVERESULTSOPERATION_HPP_ */