artdaq  v3_04_00
artdaq::DispatcherCore Class Reference

DispatcherCore implements the state machine for the Dispatcher artdaq application. DispatcherCore processes incoming events in one of three roles: Data Logger, Online Monitor, or Dispatcher. More...

#include <artdaq/Application/DispatcherCore.hh>

Inheritance diagram for artdaq::DispatcherCore:
artdaq::DataReceiverCore

Public Member Functions

 DispatcherCore ()
 DispatcherCore Constructor.
 
 DispatcherCore (DispatcherCore const &)=delete
 Copy Constructor is deleted.
 
 ~DispatcherCore ()
 
DispatcherCoreoperator= (DispatcherCore const &)=delete
 Copy Assignment operator is deleted. More...
 
bool initialize (fhicl::ParameterSet const &pset) override
 Processes the initialize request. More...
 
std::string register_monitor (fhicl::ParameterSet const &pset)
 Create a new TransferInterface instance using the given configuration. More...
 
std::string unregister_monitor (std::string const &label)
 Delete the TransferInterface having the given unique label. More...
 
- Public Member Functions inherited from artdaq::DataReceiverCore
 DataReceiverCore ()
 DataReceiverCore Constructor.
 
 DataReceiverCore (DataReceiverCore const &)=delete
 Copy Constructor is deleted.
 
virtual ~DataReceiverCore ()
 
DataReceiverCoreoperator= (DataReceiverCore const &)=delete
 Copy Assignment operator is deleted. More...
 
bool start (art::RunID id)
 Start the DataReceiverCore. More...
 
bool stop ()
 Stops the DataReceiverCore. More...
 
bool pause ()
 Pauses the DataReceiverCore. More...
 
bool resume ()
 Resumes the DataReceiverCore. More...
 
bool shutdown ()
 Shuts Down the DataReceiverCore. More...
 
bool soft_initialize (fhicl::ParameterSet const &pset)
 Soft-Initializes the DataReceiverCore. No-Op. More...
 
bool reinitialize (fhicl::ParameterSet const &pset)
 Reinitializes the DataReceiverCore. More...
 
bool rollover_subrun (uint64_t eventNum, uint32_t subrun)
 Rollover the subrun after the given event. More...
 
std::string report (std::string const &which) const
 Send a report on a given run-time quantity. More...
 
bool add_config_archive_entry (std::string const &key, std::string const &value)
 Add the specified key and value to the configuration archive list. More...
 
bool clear_config_archive ()
 Clear the configuration archive list.
 

Additional Inherited Members

- Protected Member Functions inherited from artdaq::DataReceiverCore
bool initializeDataReceiver (fhicl::ParameterSet const &pset, fhicl::ParameterSet const &data_pset, fhicl::ParameterSet const &metric_pset)
 Initialize the DataReceiverCore (should be called from initialize() overrides. More...
 
void logMessage_ (std::string const &text)
 Log a message, setting severity based on verbosity flag. More...
 
- Protected Attributes inherited from artdaq::DataReceiverCore
std::unique_ptr
< DataReceiverManager
receiver_ptr_
 Pointer to the DataReceiverManager.
 
std::shared_ptr
< SharedMemoryEventManager
event_store_ptr_
 Pointer to the SharedMemoryEventManager.
 
std::atomic< bool > stop_requested_
 Stop has been requested?
 
std::atomic< bool > pause_requested_
 Pause has been requested?
 
std::atomic< bool > run_is_paused_
 Pause has been successfully completed?
 
bool verbose_
 Whether to log transition messages.
 
fhicl::ParameterSet art_pset_
 
std::map< std::string,
std::string > 
config_archive_entries_
 

Detailed Description

DispatcherCore implements the state machine for the Dispatcher artdaq application. DispatcherCore processes incoming events in one of three roles: Data Logger, Online Monitor, or Dispatcher.

Definition at line 21 of file DispatcherCore.hh.

Constructor & Destructor Documentation

artdaq::DispatcherCore::~DispatcherCore ( )

Destructor.

Definition at line 31 of file DispatcherCore.cc.

Member Function Documentation

bool artdaq::DispatcherCore::initialize ( fhicl::ParameterSet const &  pset)
overridevirtual

Processes the initialize request.

Parameters
psetParameterSet used to configure the DispatcherCore
Returns
Whether the initialize attempt succeeded
* DispatcherCore accepts the following Parameters:
* "daq" (REQUIRED): FHiCL table containing DAQ configuration
*   "Dispatcher" (REQUIRED): FHiCL table containing Dispatcher paramters
*     "expected_events_per_bunch" (REQUIRED): Number of events to collect before sending them to art
*     "enq_timeout" (Default: 5.0): Maximum amount of time to wait while enqueueing events to the ConcurrentQueue
*     "is_data_logger": True if the Dispatcher is a Data Logger
*     "is_online_monitor": True if the Dispatcher is an Online Monitor. is_data_logger takes precedence
*     "is_dispatcher": True if the Dispatcher is a Dispatcher. is_data_logger and is_online_monitor take precedence
*       NOTE: At least ONE of these three parameters must be specified.
*     "inrun_recv_timeout_usec" (Default: 100000): Amount of time to wait for new events while running
*     "endrun_recv_timeout_usec" (Default: 20000000): Amount of time to wait for additional events at EndOfRun
*     "pause_recv_timeout_usec" (Default: 3000000): Amount of time to wait for additional events at PauseRun
*     "onmon_event_prescale" (Default: 1): Only send 1/N events to art for online monitoring (requires is_data_logger: true)
*     "verbose" (Default: true): Whether to print transition messages
*   "metrics": FHiCL table containing configuration for MetricManager
* "outputs" (REQUIRED): FHiCL table containing output parameters
*   "normalOutput" (REQUIRED): FHiCL table containing default output parameters
*     "fileName" (Default: ""): Name template of the output file. Used to determine output directory
* 

Note that the "Dispatcher" ParameterSet is also used to configure the EventStore. See that class' documentation for more information.

Implements artdaq::DataReceiverCore.

Definition at line 36 of file DispatcherCore.cc.

DispatcherCore& artdaq::DispatcherCore::operator= ( DispatcherCore const &  )
delete

Copy Assignment operator is deleted.

Returns
DispatcherCore copy
std::string artdaq::DispatcherCore::register_monitor ( fhicl::ParameterSet const &  pset)

Create a new TransferInterface instance using the given configuration.

Parameters
psetParameterSet used to configure the TransferInterface
Returns
String detailing any errors encountered or "Success"

See TransferInterface for details on the expected configuration

Definition at line 92 of file DispatcherCore.cc.

std::string artdaq::DispatcherCore::unregister_monitor ( std::string const &  label)

Delete the TransferInterface having the given unique label.

Parameters
labelLabel of the TransferInterface to delete
Returns
String detailing any errors encountered or "Success"

Definition at line 162 of file DispatcherCore.cc.


The documentation for this class was generated from the following files: