4 #include <NovaRunControlClient/RunControlReceiver.h> 5 #include <DAQMessages/ccpp_RunControlMessages.h> 6 #include <boost/shared_ptr.hpp> 7 #include <boost/thread/mutex.hpp> 11 namespace rcm=runcontrolmessages;
22 template <
class response_t>
24 boost::shared_ptr<response_t> response;
25 response.reset(
new response_t());
27 rmscore::RequestStatus reqStatus;
28 reqStatus.code =
code;
29 reqStatus.message = DDS::string_dup(
message.data());
31 response->status = reqStatus;
36 template<
class request_t,
class response_t>
41 boost::shared_ptr<response_t>
49 return Response<response_t>(1,
std::string(
"Reques failed: ")+e.what());
52 return Response<response_t>(0,
"Success");
55 virtual void handle(
const request_t& request) = 0;
59 public Responder<rcm::StatusRequest,rcm::StatusResponse>,
60 public Responder<rcm::RolloverRunRequest,rcm::RolloverRunResponse>,
61 public Responder<rcm::BeginRunRequest,rcm::BeginRunResponse>
71 virtual void handle(
const rcm::StatusRequest&
message)
override;
72 virtual void handle(
const rcm::RolloverRunRequest& message)
override;
73 virtual void handle(
const rcm::BeginRunRequest& message)
override;
78 boost::shared_ptr<novadaq::rcclient::RunControlReceiver>
_rcReceiver;
boost::shared_ptr< novadaq::rcclient::RunControlReceiver > _rcReceiver
::xsd::cxx::tree::exception< char > exception
boost::shared_ptr< response_t > Response(int code=0, std::string message="Success")
boost::shared_ptr< response_t > handleMessage(boost::shared_ptr< request_t > message)
boost::mutex _callbackMutex
boost::shared_ptr< mf::Presence > _mfPresence
std::string _applicationName