DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::confmodel::DetectorToDaqConnection Class Referenceabstract

#include <DetectorToDaqConnection.hpp>

Inheritance diagram for dunedaq::confmodel::DetectorToDaqConnection:
[legend]
Collaboration diagram for dunedaq::confmodel::DetectorToDaqConnection:
[legend]

Public Member Functions

virtual void print (unsigned int offset, bool print_header, std::ostream &s) const
 Print details of the DetectorToDaqConnection object.
 
virtual std::vector< const dunedaq::conffwk::DalObject * > get (const std::string &name, bool upcast_unregistered=true) const
 Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.
 
std::vector< const confmodel::DetectorStream * > streams () const
 
virtual std::vector< const Resource * > contained_resources () const override
 
virtual std::vector< const DetDataSender * > senders () const =0
 
virtual const DetDataReceiverreceiver () const =0
 
bool compute_disabled_state (const std::set< std::string > &disabled) const final
 
virtual void print (unsigned int offset, bool print_header, std::ostream &s) const
 Print details of the DetectorToDaqConnection object.
 
virtual std::vector< const dunedaq::conffwk::DalObject * > get (const std::string &name, bool upcast_unregistered=true) const
 Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.
 
std::vector< const confmodel::DetectorStream * > streams () const
 
virtual std::vector< const Resource * > contained_resources () const override
 
virtual std::vector< const DetDataSender * > senders () const =0
 
virtual const DetDataReceiverreceiver () const =0
 
bool compute_disabled_state (const std::set< std::string > &disabled) const final
 
- Public Member Functions inherited from dunedaq::confmodel::ResourceSet
- Public Member Functions inherited from dunedaq::confmodel::Resource
void parents (const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Resource * > > &parents) const
 
bool is_disabled (const dunedaq::confmodel::ResourceTree &session) const
 
void parents (const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Resource * > > &parents) const
 
bool is_disabled (const dunedaq::confmodel::ResourceTree &session) const
 
- Public Member Functions inherited from dunedaq::conffwk::DalObject
const std::string & UID () const noexcept
 
const std::string & class_name () const noexcept
 
bool castable (const std::string &target) const noexcept
 
bool castable (const std::string *target) const noexcept
 
template<class TARGET >
const TARGET * cast () const noexcept
 Casts object to different class.
 
std::string full_name () const noexcept
 
const ConfigObjectconfig_object () const
 
DalRegistryregistry () const noexcept
 
Configurationconfiguration () const noexcept
 
void unread ()
 
void set (const ConfigObject &o) noexcept
 
void move (const std::string &at)
 
void rename (const std::string &new_id)
 
void p_hdr (std::ostream &s, unsigned int indent, const std::string &cl, const char *nm=nullptr) const
 print object headers
 
std::ostream & print_object (std::ostream &s) const
 print object details
 
void throw_init_ex (dunedaq::conffwk::Exception &ex)
 throw object initialisation exception (i.e.
 

Static Public Attributes

static const std::string & s_class_name
 
- Static Public Attributes inherited from dunedaq::confmodel::ResourceSet
static const std::string & s_class_name
 
- Static Public Attributes inherited from dunedaq::confmodel::Resource
static const std::string & s_class_name
 

Protected Member Functions

 DetectorToDaqConnection (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~DetectorToDaqConnection () noexcept
 
virtual void init (bool init_children)
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 DetectorToDaqConnection (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~DetectorToDaqConnection () noexcept
 
virtual void init (bool init_children)
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::confmodel::ResourceSet
 ResourceSet (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~ResourceSet () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 ResourceSet (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~ResourceSet () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::confmodel::Resource
 Resource (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Resource () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
 Resource (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Resource () noexcept
 
bool get (const std::string &name, std::vector< const dunedaq::conffwk::DalObject * > &vec, bool upcast_unregistered, bool first_call) const
 
- Protected Member Functions inherited from dunedaq::conffwk::DalObject
 DalObject (DalRegistry &db, const ConfigObject &o) noexcept
 
virtual ~DalObject ()
 
void clear () noexcept
 
void check () const
 
bool is_deleted () const
 
void increment_created () noexcept
 
void increment_read () noexcept
 
void check_init () const
 Check and initialize object if necessary.
 
template<typename T >
void _set_object (const std::string &name, const T *value)
 Helper method for generated set single-value relationship methods.
 
template<typename T >
void _set_objects (const std::string &name, const std::vector< const T * > &value)
 Helper method for generated set multi-value relationship methods.
 
bool get_rel_objects (const std::string &name, bool upcast_unregistered, std::vector< const DalObject * > &objs) const
 Read relationship values as DAL objects using DAL factory.
 
bool get_algo_objects (const std::string &name, std::vector< const DalObject * > &objs) const
 Run algorithm and return result as DAL objects using DAL factory.
 

Friends

class conffwk::Configuration
 
class conffwk::DalObject
 
class conffwk::DalFactory
 
class conffwk::DalRegistry
 

Additional Inherited Members

- Static Public Member Functions inherited from dunedaq::conffwk::DalObject
static void p_null (std::ostream &s)
 print "(null)"
 
static void p_rm (std::ostream &s)
 print "(deleted object)"
 
static void p_error (std::ostream &s, dunedaq::conffwk::Exception &ex)
 print error text
 
static void throw_get_ex (const std::string &what, const std::string &class_name, const DalObject *obj)
 throw exception in generated get method (i.e.
 
static bool is_null (const DalObject *ref) noexcept
 check a pointer on DAL object is null
 
- Protected Attributes inherited from dunedaq::conffwk::DalObject
std::mutex m_mutex
 Used to protect changes of DAL object.
 
bool p_was_read
 is true, if the object was read
 
DalRegistryp_registry
 Configuration object.
 
ConfigObject p_obj
 Config object used by given template object.
 
std::string p_UID
 Is used for template objects (see dqm_conffwk)
 

Detailed Description

Definition at line 34 of file DetectorToDaqConnection.hpp.

Constructor & Destructor Documentation

◆ DetectorToDaqConnection() [1/2]

dunedaq::confmodel::DetectorToDaqConnection::DetectorToDaqConnection ( conffwk::DalRegistry & db,
const conffwk::ConfigObject & obj )
protectednoexcept

Definition at line 15 of file DetectorToDaqConnection.cpp.

15 :
17 ResourceSet(db, o)
18
19 {
20 ;
21 }
The base class for any generated DAL object.
Definition DalObject.hpp:45
ResourceSet(conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept

◆ ~DetectorToDaqConnection() [1/2]

dunedaq::confmodel::DetectorToDaqConnection::~DetectorToDaqConnection ( )
protectedvirtualnoexcept

Definition at line 51 of file DetectorToDaqConnection.cpp.

52 {
53 }

◆ DetectorToDaqConnection() [2/2]

dunedaq::confmodel::DetectorToDaqConnection::DetectorToDaqConnection ( conffwk::DalRegistry & db,
const conffwk::ConfigObject & obj )
protectednoexcept

◆ ~DetectorToDaqConnection() [2/2]

virtual dunedaq::confmodel::DetectorToDaqConnection::~DetectorToDaqConnection ( )
protectedvirtualnoexcept

Member Function Documentation

◆ compute_disabled_state() [1/2]

bool dunedaq::confmodel::DetectorToDaqConnection::compute_disabled_state ( const std::set< std::string > & disabled) const
finalvirtual

Custom implementation of method for DetectorToDaqConnection. Must AND the senders and OR the seult with the receiver.

Reimplemented from dunedaq::confmodel::Resource.

Definition at line 418 of file dalMethods.cpp.

418 {
419 if (disabled_resources.contains(UID())) {
420 return true;
421 }
422 bool send_disabled = true;
423 for (auto sender: senders()) {
424 if (!sender->compute_disabled_state(disabled_resources)) {
425 send_disabled = false;
426 break;
427 }
428 }
429 TLOG_DBG(6) << "receiver disabled=" << receiver()->compute_disabled_state(disabled_resources)
430 << " senders disabled=" << send_disabled;
431 if (receiver()->compute_disabled_state(disabled_resources) || send_disabled) {
432 return true;
433 }
434 return false;
435}
const std::string & UID() const noexcept
bool compute_disabled_state(const std::set< std::string > &disabled) const final
virtual const DetDataReceiver * receiver() const =0
virtual std::vector< const DetDataSender * > senders() const =0
virtual bool compute_disabled_state(const std::set< std::string > &) const

◆ compute_disabled_state() [2/2]

bool dunedaq::confmodel::DetectorToDaqConnection::compute_disabled_state ( const std::set< std::string > & disabled) const
finalvirtual

Custom implementation of method for DetectorToDaqConnection. Must AND the senders and OR the seult with the receiver.

Reimplemented from dunedaq::confmodel::Resource.

◆ contained_resources() [1/2]

std::vector< const Resource * > dunedaq::confmodel::DetectorToDaqConnection::contained_resources ( ) const
overridevirtual

Virtual method to obtain the list of all contained Resources. Used internally by the core disabled logic. Not intended to be used in application code as that should be using individual relationships of the derived classes.

Implements dunedaq::confmodel::ResourceSet.

Definition at line 410 of file dalMethods.cpp.

410 {
411 auto res = to_resources(senders());
412 res.push_back(receiver());
413 return res;
414}
std::vector< const dunedaq::confmodel::Resource * > to_resources(const std::vector< T * > &vector_of_children)

◆ contained_resources() [2/2]

virtual std::vector< const Resource * > dunedaq::confmodel::DetectorToDaqConnection::contained_resources ( ) const
overridevirtual

Virtual method to obtain the list of all contained Resources. Used internally by the core disabled logic. Not intended to be used in application code as that should be using individual relationships of the derived classes.

Implements dunedaq::confmodel::ResourceSet.

◆ get() [1/4]

std::vector< const dunedaq::conffwk::DalObject * > dunedaq::confmodel::DetectorToDaqConnection::get ( const std::string & name,
bool upcast_unregistered = true ) const
virtual

Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.

Parameters are:

Parameters
namename of the relationship or algorithm
Returns
value of relationship or result of algorithm
Exceptions
std::exceptionif there is no relationship or algorithm with such name in this and base classes

Reimplemented from dunedaq::confmodel::ResourceSet.

Reimplemented in dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::confmodel::DummyD2D, and dunedaq::confmodel::DummyD2D.

Definition at line 55 of file DetectorToDaqConnection.cpp.

56 {
57 std::vector<const dunedaq::conffwk::DalObject *> vec;
58
59 if (!get(name, vec, upcast_unregistered, true))
60 throw_get_ex(name, s_class_name, this);
61
62 return vec;
63 }
static void throw_get_ex(const std::string &what, const std::string &class_name, const DalObject *obj)
throw exception in generated get method (i.e.
Definition DalObject.cpp:82
virtual std::vector< const dunedaq::conffwk::DalObject * > get(const std::string &name, bool upcast_unregistered=true) const
Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject...

◆ get() [2/4]

virtual std::vector< const dunedaq::conffwk::DalObject * > dunedaq::confmodel::DetectorToDaqConnection::get ( const std::string & name,
bool upcast_unregistered = true ) const
virtual

Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject pointers.

Parameters are:

Parameters
namename of the relationship or algorithm
Returns
value of relationship or result of algorithm
Exceptions
std::exceptionif there is no relationship or algorithm with such name in this and base classes

Reimplemented from dunedaq::confmodel::ResourceSet.

Reimplemented in dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::confmodel::DummyD2D, and dunedaq::confmodel::DummyD2D.

◆ get() [3/4]

bool dunedaq::confmodel::DetectorToDaqConnection::get ( const std::string & name,
std::vector< const dunedaq::conffwk::DalObject * > & vec,
bool upcast_unregistered,
bool first_call ) const
protected

Definition at line 65 of file DetectorToDaqConnection.cpp.

66 {
67 if (first_call)
68 {
69 std::lock_guard scoped_lock(m_mutex);
70
71 check();
72 check_init();
73
74 if (get_rel_objects(name, upcast_unregistered, vec))
75 return true;
76 }
77
78 if (ResourceSet::get(name, vec, upcast_unregistered, false)) return true;
79
80 if (first_call)
81 return get_algo_objects(name, vec);
82
83 return false;
84 }
bool get_rel_objects(const std::string &name, bool upcast_unregistered, std::vector< const DalObject * > &objs) const
Read relationship values as DAL objects using DAL factory.
Definition DalObject.cpp:8
std::mutex m_mutex
Used to protect changes of DAL object.
bool get_algo_objects(const std::string &name, std::vector< const DalObject * > &objs) const
Run algorithm and return result as DAL objects using DAL factory.
Definition DalObject.cpp:25
void check_init() const
Check and initialize object if necessary.
virtual std::vector< const dunedaq::conffwk::DalObject * > get(const std::string &name, bool upcast_unregistered=true) const
Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject...

◆ get() [4/4]

bool dunedaq::confmodel::DetectorToDaqConnection::get ( const std::string & name,
std::vector< const dunedaq::conffwk::DalObject * > & vec,
bool upcast_unregistered,
bool first_call ) const
protected

◆ init() [1/2]

void dunedaq::confmodel::DetectorToDaqConnection::init ( bool init_children)
protectedvirtual

Initialize object (method generated by genconffwk)

Parameters
init_childrenif true, initialize referenced objects

Reimplemented from dunedaq::confmodel::ResourceSet.

Reimplemented in dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::confmodel::DummyD2D, and dunedaq::confmodel::DummyD2D.

Definition at line 44 of file DetectorToDaqConnection.cpp.

45 {
46 ResourceSet::init(init_children);
47
48 TLOG_DEBUG(5) << "read object " << this << " (class " << s_class_name << ')';
49 }
virtual void init(bool init_children)
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112

◆ init() [2/2]

virtual void dunedaq::confmodel::DetectorToDaqConnection::init ( bool init_children)
protectedvirtual

◆ print() [1/2]

void dunedaq::confmodel::DetectorToDaqConnection::print ( unsigned int offset,
bool print_header,
std::ostream & s ) const
virtual

Print details of the DetectorToDaqConnection object.

Parameters are:

Parameters
offsetnumber of spaces to shift object right (useful to print nested objects)
print_headerif false, do not print object header (to print attributes of base classes)
soutput stream

Reimplemented from dunedaq::confmodel::ResourceSet.

Reimplemented in dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::confmodel::DummyD2D, and dunedaq::confmodel::DummyD2D.

Definition at line 24 of file DetectorToDaqConnection.cpp.

25 {
26 check_init();
27
28 try {
29
30 if (print_header)
31 p_hdr(s, indent, s_class_name, "dunedaq::confmodel");
32
33
34 // print direct super-classes
35
37 }
38 catch (dunedaq::conffwk::Exception & ex) {
40 }
41 }
void p_hdr(std::ostream &s, unsigned int indent, const std::string &cl, const char *nm=nullptr) const
print object headers
Definition DalObject.cpp:65
static void p_error(std::ostream &s, dunedaq::conffwk::Exception &ex)
print error text
Definition DalObject.cpp:59
virtual void print(unsigned int offset, bool print_header, std::ostream &s) const
Print details of the ResourceSet object.

◆ print() [2/2]

virtual void dunedaq::confmodel::DetectorToDaqConnection::print ( unsigned int offset,
bool print_header,
std::ostream & s ) const
virtual

Print details of the DetectorToDaqConnection object.

Parameters are:

Parameters
offsetnumber of spaces to shift object right (useful to print nested objects)
print_headerif false, do not print object header (to print attributes of base classes)
soutput stream

Reimplemented from dunedaq::confmodel::ResourceSet.

Reimplemented in dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::FelixDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::appmodel::NetworkDetectorToDaqConnection, dunedaq::confmodel::DummyD2D, and dunedaq::confmodel::DummyD2D.

◆ receiver() [1/2]

virtual const DetDataReceiver * dunedaq::confmodel::DetectorToDaqConnection::receiver ( ) const
pure virtual

◆ receiver() [2/2]

virtual const DetDataReceiver * dunedaq::confmodel::DetectorToDaqConnection::receiver ( ) const
pure virtual

◆ senders() [1/2]

virtual std::vector< const DetDataSender * > dunedaq::confmodel::DetectorToDaqConnection::senders ( ) const
pure virtual

◆ senders() [2/2]

virtual std::vector< const DetDataSender * > dunedaq::confmodel::DetectorToDaqConnection::senders ( ) const
pure virtual

◆ streams() [1/2]

std::vector< const confmodel::DetectorStream * > dunedaq::confmodel::DetectorToDaqConnection::streams ( ) const

Definition at line 371 of file dalMethods.cpp.

371 {
372 std::vector<const confmodel::DetectorStream*> all_streams;
373 // Loop over senders
374 for (auto sender : this->senders()) {
375 auto sender_streams = sender->get_streams();
376 all_streams.insert(all_streams.end(), sender_streams.begin(), sender_streams.end());
377 }
378 return all_streams;
379}

◆ streams() [2/2]

std::vector< const confmodel::DetectorStream * > dunedaq::confmodel::DetectorToDaqConnection::streams ( ) const

Friends And Related Symbol Documentation

◆ conffwk::Configuration

Definition at line 36 of file DetectorToDaqConnection.hpp.

◆ conffwk::DalFactory

conffwk::DalFactory
friend

Definition at line 38 of file DetectorToDaqConnection.hpp.

◆ conffwk::DalObject

Definition at line 37 of file DetectorToDaqConnection.hpp.

◆ conffwk::DalRegistry

Definition at line 39 of file DetectorToDaqConnection.hpp.

Member Data Documentation

◆ s_class_name

static const std::string & dunedaq::confmodel::DetectorToDaqConnection::s_class_name
static

The name of the configuration class.

Definition at line 51 of file DetectorToDaqConnection.hpp.


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