artdaq  v3_04_01
artdaq::DataReceiverCore Class Referenceabstract

DataReceiverCore implements the state machine for the DataReceiver artdaq application. DataReceiverCore receives Fragment objects from the DataReceiverManager, and sends them to the EventStore. More...

#include <artdaq/Application/DataReceiverCore.hh>

Inheritance diagram for artdaq::DataReceiverCore:
artdaq::DataLoggerCore artdaq::DispatcherCore artdaq::EventBuilderCore

Public Member Functions

 DataReceiverCore ()
 DataReceiverCore Constructor.
 
 DataReceiverCore (DataReceiverCore const &)=delete
 Copy Constructor is deleted.
 
virtual ~DataReceiverCore ()
 
DataReceiverCoreoperator= (DataReceiverCore const &)=delete
 Copy Assignment operator is deleted. More...
 
virtual bool initialize (fhicl::ParameterSet const &pset)=0
 Processes the initialize request. 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. More...
 

Protected Member Functions

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

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_
 ParameterSet sent to art process.
 
std::map< std::string,
std::string > 
config_archive_entries_
 Additional strings to archive as part of the art configuration.
 

Detailed Description

DataReceiverCore implements the state machine for the DataReceiver artdaq application. DataReceiverCore receives Fragment objects from the DataReceiverManager, and sends them to the EventStore.

Definition at line 25 of file DataReceiverCore.hh.

Constructor & Destructor Documentation

artdaq::DataReceiverCore::~DataReceiverCore ( )
virtual

Destructor.

Definition at line 23 of file DataReceiverCore.cc.

Member Function Documentation

bool artdaq::DataReceiverCore::add_config_archive_entry ( std::string const &  key,
std::string const &  value 
)
inline

Add the specified key and value to the configuration archive list.

Parameters
keyString key to be used
valueString value to be stored
Returns
This function will always return true

Definition at line 143 of file DataReceiverCore.hh.

bool artdaq::DataReceiverCore::clear_config_archive ( )
inline

Clear the configuration archive list.

Returns
True if archive is empty after clear operation

Definition at line 153 of file DataReceiverCore.hh.

virtual bool artdaq::DataReceiverCore::initialize ( fhicl::ParameterSet const &  pset)
pure virtual

Processes the initialize request.

Parameters
psetParameterSet used to configure the DataReceiverCore
Returns
Whether the initialize attempt succeeded
* DataReceiverCore accepts the following Parameters:
* "daq" (REQUIRED): FHiCL table containing DAQ configuration
*   "event_builder" (REQUIRED): FHiCL table containing Aggregator paramters
*     "fragment_count" (REQUIRED): Number of Fragment objects to collect before sending them to art
*     "inrun_recv_timeout_usec" (Default: 100000): Amount of time to wait for new Fragment objects while running
*     "endrun_recv_timeout_usec" (Default: 20000000): Amount of time to wait for additional Fragment objects at EndOfRun
*     "pause_recv_timeout_usec" (Default: 3000000): Amount of time to wait for additional Fragment objects at PauseRun
*     "verbose" (Default: true): Whether to print transition messages
*   "metrics": FHiCL table containing configuration for MetricManager
* 

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

Implemented in artdaq::DispatcherCore, artdaq::DataLoggerCore, and artdaq::EventBuilderCore.

bool artdaq::DataReceiverCore::initializeDataReceiver ( fhicl::ParameterSet const &  pset,
fhicl::ParameterSet const &  data_pset,
fhicl::ParameterSet const &  metric_pset 
)
protected

Initialize the DataReceiverCore (should be called from initialize() overrides.

Parameters
psetParameterSet for art configuration
data_psetParameterSet for DataReceiverManager and SharedMemoryEventManager configuration
metric_psetParameterSet for MetricManager
Returns
Whether the initialize succeeded

Definition at line 28 of file DataReceiverCore.cc.

void artdaq::DataReceiverCore::logMessage_ ( std::string const &  text)
protected

Log a message, setting severity based on verbosity flag.

Parameters
textMessage to log

Definition at line 283 of file DataReceiverCore.cc.

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

Copy Assignment operator is deleted.

Returns
AggregatorCore copy
bool artdaq::DataReceiverCore::pause ( )

Pauses the DataReceiverCore.

Returns
True if no exception

Definition at line 170 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::reinitialize ( fhicl::ParameterSet const &  pset)

Reinitializes the DataReceiverCore.

Parameters
psetParameterSet for configuring DataReceiverCore
Returns
True if no exception

Definition at line 232 of file DataReceiverCore.cc.

std::string artdaq::DataReceiverCore::report ( std::string const &  which) const

Send a report on a given run-time quantity.

Parameters
whichWhich quantity to report
Returns
A string containing the requested quantity.

report accepts the following values of "which": "event_count": The number of events received, or -1 if not initialized "incomplete_event_count": The number of incomplete event bunches in the EventStore, or -1 if not initalized

Anything else will return the run number and an error message.

Definition at line 251 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::resume ( )

Resumes the DataReceiverCore.

Returns
True if no exception

Definition at line 179 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::rollover_subrun ( uint64_t  eventNum,
uint32_t  subrun 
)

Rollover the subrun after the given event.

Parameters
eventNumSequence ID of boundary
subrunSubrun number of new subrun
Returns
True event_store_ptr is valid

Definition at line 241 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::shutdown ( )

Shuts Down the DataReceiverCore.

Returns
If the shutdown was successful

Definition at line 190 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::soft_initialize ( fhicl::ParameterSet const &  pset)

Soft-Initializes the DataReceiverCore. No-Op.

Parameters
psetParameterSet for configuring DataReceiverCore
Returns
Always returns true

Definition at line 224 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::start ( art::RunID  id)

Start the DataReceiverCore.

Parameters
idRun ID of the current run
Returns
True if no exception

Definition at line 92 of file DataReceiverCore.cc.

bool artdaq::DataReceiverCore::stop ( )

Stops the DataReceiverCore.

Returns
True if no exception

Definition at line 126 of file DataReceiverCore.cc.


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