ifw-daq 3.1.0
IFW Data Acquisition modules
Loading...
Searching...
No Matches
Files | Classes

OCM Server application. More...

Files

file  ocmDaqService.cpp
 Declaration of OcmDaqService.
 

Classes

class  OcmDaqService
 Implements the MAL interface daqif::OcmDaq (async version). More...
 

Detailed Description

OCM Server application.


Class Documentation

◆ OcmDaqService

class OcmDaqService

Implements the MAL interface daqif::OcmDaq (async version).

The server is only safe to use as a shared pointer, as weak pointers to this object is stored in asynchronous continuations, apart from the initiating operation. Provided boost::asio::io_context must outlive object and any pending operations.

This object can be deleted while there are operations that have not complete yet. In that case, when the operation finally completes, an exception is sent as reply, even if the requested operation would have succeeded otherwise. The io_context must stay alive however, as it will be used as an executor when asynchonous operation is continued.

A note on thread safety:

The public (asynchronous) interface will immediately defer the execution to the provided executor, so depending on the executor this can provide thread safety.

Definition at line 98 of file ocmDaqService.hpp.

+ Inheritance diagram for OcmDaqService:

Public Member Functions

 OcmDaqService (boost::asio::io_context &io_ctx, mal::Mal &mal, daq::Manager &mgr, std::string proc_name, std::string output_path, std::shared_ptr< daq::ObservableEventLog > event_log)
 
 ~OcmDaqService ()
 
boost::future< std::shared_ptr<::daqif::DaqReply > > StartDaq (const std::string &id, const std::string &file_prefix, const std::string &primary_sources, const std::string &metadata_sources, const std::string &properties) override
 
boost::future< std::shared_ptr<::daqif::DaqReply > > StartDaqV2 (const std::string &specification) override
 
boost::future< std::shared_ptr<::daqif::DaqReply > > StopDaq (const std::string &id) override
 
boost::future< std::shared_ptr<::daqif::DaqReply > > ForceStopDaq (const std::string &id) override
 
boost::future< std::shared_ptr<::daqif::DaqReply > > AbortDaq (const std::string &id) override
 
boost::future< std::shared_ptr<::daqif::DaqReply > > ForceAbortDaq (const std::string &id) override
 
boost::future< std::shared_ptr<::daqif::DaqReply > > UpdateKeywords (const std::string &id, const std::string &keywords) override
 
boost::future< std::shared_ptr<::daqif::AwaitDaqReply > > AwaitDaqState (const std::string &id, daqif::DaqState state, daqif::DaqSubState substate, double timeout) override
 
boost::future< std::shared_ptr<::daqif::DaqStatus > > GetStatus (const std::string &id) override
 
boost::future< std::vector< std::shared_ptr<::daqif::DaqStatus > > > GetActiveList () override
 

Static Public Attributes

static constexpr char const * LOGGER_NAME = "ocm.service.daq"
 

Constructor & Destructor Documentation

◆ OcmDaqService()

OcmDaqService::OcmDaqService ( boost::asio::io_context &  io_ctx,
mal::Mal &  mal,
daq::Manager mgr,
std::string  proc_name,
std::string  output_path,
std::shared_ptr< daq::ObservableEventLog event_log 
)
Parameters
io_ctxASIO io context to use as an executor. This object must outlive OcmDaqService. The io context will be progated to any created daq::DaqController instances as well.
malThe mal instance to use to create instances. This object must outlive OcmDaqService.
mgrThe data acquisition manager to use. This object must outlive OcmDaqService.

Definition at line 195 of file ocmDaqService.cpp.

◆ ~OcmDaqService()

OcmDaqService::~OcmDaqService ( )

Definition at line 219 of file ocmDaqService.cpp.

Member Function Documentation

◆ AbortDaq()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::AbortDaq ( const std::string &  id)
override

Definition at line 493 of file ocmDaqService.cpp.

◆ AwaitDaqState()

boost::future< std::shared_ptr<::daqif::AwaitDaqReply > > OcmDaqService::AwaitDaqState ( const std::string &  id,
daqif::DaqState  state,
daqif::DaqSubState  substate,
double  timeout 
)
override

Definition at line 711 of file ocmDaqService.cpp.

◆ ForceAbortDaq()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::ForceAbortDaq ( const std::string &  id)
override

Definition at line 508 of file ocmDaqService.cpp.

◆ ForceStopDaq()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::ForceStopDaq ( const std::string &  id)
override

Definition at line 395 of file ocmDaqService.cpp.

◆ GetActiveList()

boost::future< std::vector< std::shared_ptr<::daqif::DaqStatus > > > OcmDaqService::GetActiveList ( )
override

Definition at line 685 of file ocmDaqService.cpp.

◆ GetStatus()

boost::future< std::shared_ptr<::daqif::DaqStatus > > OcmDaqService::GetStatus ( const std::string &  id)
override

Definition at line 653 of file ocmDaqService.cpp.

◆ StartDaq()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::StartDaq ( const std::string &  id,
const std::string &  file_prefix,
const std::string &  primary_sources,
const std::string &  metadata_sources,
const std::string &  properties 
)
override

Definition at line 224 of file ocmDaqService.cpp.

◆ StartDaqV2()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::StartDaqV2 ( const std::string &  specification)
override

Definition at line 331 of file ocmDaqService.cpp.

◆ StopDaq()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::StopDaq ( const std::string &  id)
override

Definition at line 380 of file ocmDaqService.cpp.

◆ UpdateKeywords()

boost::future< std::shared_ptr<::daqif::DaqReply > > OcmDaqService::UpdateKeywords ( const std::string &  id,
const std::string &  keywords 
)
override

Definition at line 585 of file ocmDaqService.cpp.

Member Data Documentation

◆ LOGGER_NAME

constexpr char const* OcmDaqService::LOGGER_NAME = "ocm.service.daq"
staticconstexpr

Definition at line 101 of file ocmDaqService.hpp.