8#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_REQUESTHANDLERCONCEPT_HPP_
9#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_REQUESTHANDLERCONCEPT_HPP_
24namespace datahandlinglibs {
26template<
class ReadoutType,
class LatencyBufferType>
43 virtual void scrap(
const appfwk::DAQModule::CommandData_t& args) = 0;
44 virtual void start(
const appfwk::DAQModule::CommandData_t& args) = 0;
45 virtual void stop(
const appfwk::DAQModule::CommandData_t& args) = 0;
46 virtual void record(
const appfwk::DAQModule::CommandData_t& args) = 0;
96 std::unique_ptr<daqdataformats::Fragment>
fragment;
virtual std::uint64_t get_oldest_time()=0
Get oldest timestamp in the buffer.
virtual void periodic_data_transmission()=0
Periodic data transmission - relevant for trigger in particular.
const std::string & resultCodeAsString(ResultCode rc)
RequestHandlerConcept(const RequestHandlerConcept &)=delete
RequestHandlerConcept is not copy-constructible.
virtual RequestResult data_request(dfmessages::DataRequest)=0
virtual void start(const appfwk::DAQModule::CommandData_t &args)=0
RequestHandlerConcept & operator=(RequestHandlerConcept &&)=delete
RequestHandlerConcept is not move-assignable.
virtual void record(const appfwk::DAQModule::CommandData_t &args)=0
virtual void scrap(const appfwk::DAQModule::CommandData_t &args)=0
std::map< ResultCode, std::string > ResultCodeStrings
virtual void cleanup_check()=0
Check if cleanup is necessary and execute it if necessary.
RequestHandlerConcept & operator=(const RequestHandlerConcept &)=delete
RequestHandlerConcept is not copy-assginable.
virtual ~RequestHandlerConcept()
virtual void conf(const appmodel::DataHandlerModule *conf)=0
virtual void stop(const appfwk::DAQModule::CommandData_t &args)=0
virtual void issue_request(dfmessages::DataRequest, bool)=0
Issue a data request to the request handler.
RequestHandlerConcept(RequestHandlerConcept &&)=delete
RequestHandlerConcept is not move-constructible.
dfmessages::DataRequest data_request
RequestResult(ResultCode rc, dfmessages::DataRequest dr)
RequestResult(ResultCode rc, dfmessages::DataRequest dr, daqdataformats::Fragment &&frag)
std::unique_ptr< daqdataformats::Fragment > fragment
This message represents a request for data sent to a single component of the DAQ.