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

#include <Component.hpp>

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

Public Member Functions

virtual void print (unsigned int offset, bool print_header, std::ostream &s) const
 Print details of the Component 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.
 
void get_parents (const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Component * > > &parents) const
 
bool disabled (const dunedaq::confmodel::Session &session) const
 
virtual void print (unsigned int offset, bool print_header, std::ostream &s) const
 Print details of the Component 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.
 
void get_parents (const dunedaq::confmodel::Session &session, std::list< std::vector< const dunedaq::confmodel::Component * > > &parents) const
 
bool disabled (const dunedaq::confmodel::Session &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
 

Protected Member Functions

 Component (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Component () 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
 
 Component (conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
 
virtual ~Component () 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::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

Abstract base class for Segment and Resource classes. It is only used to allow objects of derived classes to be put into list of disabled items. For more information read https://twiki.cern.ch/twiki/bin/viewauth/Atlas/DaqHltDal#3_4_Resource_Classes

Definition at line 33 of file Component.hpp.

Constructor & Destructor Documentation

◆ Component() [1/2]

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

Definition at line 15 of file Component.cpp.

15 :
17 {
18 ;
19 }
The base class for any generated DAL object.
Definition DalObject.hpp:45

◆ ~Component() [1/2]

dunedaq::confmodel::Component::~Component ( )
protectedvirtualnoexcept

Definition at line 44 of file Component.cpp.

45 {
46 }

◆ Component() [2/2]

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

◆ ~Component() [2/2]

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

Member Function Documentation

◆ disabled() [1/2]

bool Component::disabled ( const dunedaq::confmodel::Session & session) const

The algorithm checks if the segment / resource is disabled in the partition that uses it.

Parameters
partitionpartition object containing this resource or segment

Definition at line 224 of file disabled-components.cpp.

225{
226 TLOG_DEBUG( 6) << "Session UID: " << session.UID() << " this->UID()=" << UID();
227 // fill disabled (e.g. after session changes)
228
229 if (session.m_disabled_components.size() == 0) {
230 if (session.get_disabled().empty() &&
231 session.m_disabled_components.m_user_disabled.empty()) {
232 TLOG_DEBUG( 6) << "Session has no disabled components";
233 return false; // the session has no disabled components
234 }
235 else {
236 // get two lists of all session's resource-set-or and resource-set-and
237 // also test any circular dependencies between segments and resource sets
238 TestCircularDependency cd_fuse("component \'is-disabled\' status", &session);
239 std::vector<const ResourceSetOR *> rs_or;
240 std::vector<const ResourceSetAND *> rs_and;
241 fill(session, rs_or, rs_and, cd_fuse);
242
243 // calculate explicitly and implicitly (nested) disabled components
244 {
245 std::vector<const Component *> vector_of_disabled;
246 vector_of_disabled.reserve(session.get_disabled().size() + session.m_disabled_components.m_user_disabled.size());
247
248 // add user disabled components, if any
249 for (auto & i : session.m_disabled_components.m_user_disabled) {
250 vector_of_disabled.push_back(i);
251 TLOG_DEBUG(6) << "disable component " << i->UID() << " because it is explicitly disabled by user" ;
252 }
253
254 // add session-disabled components ignoring explicitly enabled by user
255 for (auto & i : session.get_disabled()) {
256 TLOG_DEBUG(6) << "check component " << i->UID() << " explicitly disabled in session" ;
257
258 if (session.m_disabled_components.m_user_enabled.find(i) == session.m_disabled_components.m_user_enabled.end()) {
259 vector_of_disabled.push_back(i);
260 TLOG_DEBUG(6) << "disable component " << i->UID() << " because it is not explicitly enabled in session" ;
261 }
262 else {
263 TLOG_DEBUG(6) << "skip component " << i->UID() << " because it is enabled by user" ;
264 }
265 }
266
267 // fill set of explicitly and implicitly (segment/resource-set containers) disabled components
268 for (auto & i : vector_of_disabled) {
269 session.m_disabled_components.disable(*i);
270
271 if (const ResourceSet * rs = i->cast<ResourceSet>()) {
272 session.m_disabled_components.disable_children(*rs);
273 }
274 else if (const Segment * seg = i->cast<Segment>()) {
275 TLOG_DEBUG(6) << "Disabling children of segment " << seg->UID();
276 session.m_disabled_components.disable_children(*seg);
277 }
278 }
279 }
280
281 for (unsigned long count = 1; true; ++count) {
282 const unsigned long num(session.m_disabled_components.size());
283
284 TLOG_DEBUG(6) << "before auto-disabling iteration " << count << " the number of disabled components is " << num ;
285
286 TLOG_DEBUG(6) << "Session has " << rs_or.size() << " resourceSetORs";
287 for (const auto& i : rs_or) {
288 if (session.m_disabled_components.is_enabled(i)) {
289 // check ANY child is disabled
290 TLOG_DEBUG(6) << "ResourceSetOR " << i->UID() << " contains " << i->get_contains().size() << " resources";
291 for (auto & i2 : i->get_contains()) {
292 if (!session.m_disabled_components.is_enabled(i2)) {
293 TLOG_DEBUG(6) << "disable resource-set-OR " << i->UID() << " because it's child " << i2 << " is disabled" ;
294 session.m_disabled_components.disable(*i);
295 session.m_disabled_components.disable_children(*i);
296 break;
297 }
298 }
299 }
300 }
301
302 TLOG_DEBUG(6) << "Session has " << rs_and.size() << " resourceSetANDs";
303 for (const auto& j : rs_and) {
304 if (session.m_disabled_components.is_enabled(j)) {
305 const std::vector<const ResourceBase*> &resources = j->get_contains();
306 TLOG_DEBUG(6) << "Checking " << resources.size() << " ResourceSetAND resources";
307 if (!resources.empty()) {
308 // check ANY child is enabled
309 bool found_enabled = false;
310 for (auto & j2 : resources) {
311 if (session.m_disabled_components.is_enabled(j2)) {
312 found_enabled = true;
313 TLOG_DEBUG(6) << "Found enabled resource " << j2->UID();
314 break;
315 }
316 }
317 if (found_enabled == false) {
318 TLOG_DEBUG(6) << "disable resource-set-AND " << j->UID() << " because all it's children are disabled" ;
319 session.m_disabled_components.disable(*j);
320 session.m_disabled_components.disable_children(*j);
321 }
322 }
323 }
324 }
325
326 if (session.m_disabled_components.size() == num) {
327 TLOG_DEBUG(6) << "after " << count << " iteration(s) auto-disabling algorithm found no newly disabled sets, exiting loop ..." ;
328 break;
329 }
330
331 unsigned int iLimit(1000);
332 if (count > iLimit) {
333 ers::error(ReadMaxAllowedIterations(ERS_HERE, iLimit));
334 break;
335 }
336 }
337 }
338 }
339
340 bool result(!session.m_disabled_components.is_enabled(this));
341 TLOG_DEBUG( 6) << "disabled(" << this << ") (UID=" << UID() << ") returns " << std::boolalpha << result ;
342 return result;
343}
#define ERS_HERE
const TARGET * cast() const noexcept
Casts object to different class.
const std::string & UID() const noexcept
static void fill(const ResourceSet &rs, std::vector< const ResourceSetOR * > &rs_or, std::vector< const ResourceSetAND * > &rs_and, TestCircularDependency &cd_fuse)
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
void error(const Issue &issue)
Definition ers.hpp:81

◆ disabled() [2/2]

bool dunedaq::confmodel::Component::disabled ( const dunedaq::confmodel::Session & session) const

The algorithm checks if the segment / resource is disabled in the partition that uses it.

Parameters
partitionpartition object containing this resource or segment

◆ get() [1/4]

std::vector< const dunedaq::conffwk::DalObject * > dunedaq::confmodel::Component::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

Implements dunedaq::conffwk::DalObject.

Reimplemented in dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::WIECApplication, dunedaq::appmodel::WIECApplication, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::Resource, dunedaq::confmodel::Resource, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::Segment, and dunedaq::confmodel::Segment.

Definition at line 48 of file Component.cpp.

49 {
50 std::vector<const dunedaq::conffwk::DalObject *> vec;
51
52 if (!get(name, vec, upcast_unregistered, true))
53 throw_get_ex(name, s_class_name, this);
54
55 return vec;
56 }
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
static const std::string & s_class_name
Definition Component.hpp:50
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...
Definition Component.cpp:48

◆ get() [2/4]

virtual std::vector< const dunedaq::conffwk::DalObject * > dunedaq::confmodel::Component::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

Implements dunedaq::conffwk::DalObject.

Reimplemented in dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::WIECApplication, dunedaq::appmodel::WIECApplication, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::Resource, dunedaq::confmodel::Resource, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::Segment, and dunedaq::confmodel::Segment.

◆ get() [3/4]

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

Definition at line 58 of file Component.cpp.

59 {
60 if (first_call)
61 {
62 std::lock_guard scoped_lock(m_mutex);
63
64 check();
65 check_init();
66
67 if (get_rel_objects(name, upcast_unregistered, vec))
68 return true;
69 }
70
71 if (first_call)
72 return get_algo_objects(name, vec);
73
74 return false;
75 }
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.

◆ get() [4/4]

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

◆ get_parents() [1/2]

void dunedaq::confmodel::Component::get_parents ( const dunedaq::confmodel::Session & session,
std::list< std::vector< const dunedaq::confmodel::Component * > > & parents ) const

The algorithm calculates a vector of segments which are parents of given segment. If the segment has parents referenced by the partition object, then:

  • in case of C++ it fills the parents parameter; otherwise it throws NotFoundException exception

Definition at line 134 of file dalMethods.cpp.

137{
138 const ConfigObjectImpl * obj_impl = config_object().implementation();
139
141
142 try {
143 dunedaq::confmodel::TestCircularDependency cd_fuse("component parents", &session);
144
145 // check session's segment
146 check_segment(parents, session.get_segment(), obj_impl, is_segment,
147 cd_fuse);
148
149
150 if (parents.empty()) {
151 TLOG_DEBUG(1) << "cannot find segment/resource path(s) between Component " << this << " and session " << &session << " objects (check this object is linked with the session as a segment or a resource)" ;
152 }
153 }
154 catch (ers::Issue & ex) {
155 ers::error(CannotGetParents(ERS_HERE, full_name(), ex));
156 }
157}
Implements database objects.
const ConfigObjectImpl * implementation() const noexcept
Returns pointer on implementation.
std::string full_name() const noexcept
bool castable(const std::string &target) const noexcept
const ConfigObject & config_object() const
static const std::string & s_class_name
Definition Segment.hpp:54
Base class for any user define issue.
Definition Issue.hpp:69
static void check_segment(std::list< std::vector< const dunedaq::confmodel::Component * > > &out, const dunedaq::confmodel::Segment *segment, const ConfigObjectImpl *child, bool is_segment, dunedaq::confmodel::TestCircularDependency &cd_fuse)

◆ get_parents() [2/2]

void dunedaq::confmodel::Component::get_parents ( const dunedaq::confmodel::Session & session,
std::list< std::vector< const dunedaq::confmodel::Component * > > & parents ) const

The algorithm calculates a vector of segments which are parents of given segment. If the segment has parents referenced by the partition object, then:

  • in case of C++ it fills the parents parameter; otherwise it throws NotFoundException exception

◆ init() [1/2]

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

Initialize object (method generated by genconffwk)

Parameters
init_childrenif true, initialize referenced objects

Implements dunedaq::conffwk::DalObject.

Reimplemented in dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::WIECApplication, dunedaq::appmodel::WIECApplication, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::Resource, dunedaq::confmodel::Resource, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::Segment, and dunedaq::confmodel::Segment.

Definition at line 37 of file Component.cpp.

38 {
39 p_was_read = true;
41 TLOG_DEBUG(5) << "read object " << this << " (class " << s_class_name << ')';
42 }
void increment_read() noexcept
bool p_was_read
is true, if the object was read

◆ init() [2/2]

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

Initialize object (method generated by genconffwk)

Parameters
init_childrenif true, initialize referenced objects

Implements dunedaq::conffwk::DalObject.

Reimplemented in dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::WIECApplication, dunedaq::appmodel::WIECApplication, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::Resource, dunedaq::confmodel::Resource, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::Segment, and dunedaq::confmodel::Segment.

◆ print() [1/2]

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

Print details of the Component 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

Implements dunedaq::conffwk::DalObject.

Reimplemented in dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::WIECApplication, dunedaq::appmodel::WIECApplication, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::Resource, dunedaq::confmodel::Resource, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::Segment, and dunedaq::confmodel::Segment.

Definition at line 22 of file Component.cpp.

23 {
24 check_init();
25
26 try {
27
28 if (print_header)
29 p_hdr(s, indent, s_class_name, "dunedaq::confmodel");
30 }
31 catch (dunedaq::conffwk::Exception & ex) {
33 }
34 }
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

◆ print() [2/2]

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

Print details of the Component 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

Implements dunedaq::conffwk::DalObject.

Reimplemented in dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CRTReaderApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBApplication, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBCountLLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBHLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBLLT, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBMisc, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBoardConf, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBRandomTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::CTBTrigger, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DaphneApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DFApplication, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DPDKReceiver, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::DTSHSIApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataApplication, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataProdConf, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataReceiver, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeDataSender, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FakeHSIApplication, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataReceiver, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixDataSender, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::FelixInterface, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HermesDataSender, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::HSIEventToTCApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::MLTApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NP02ReadoutApplication, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataReceiver, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::NWDetDataSender, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::ReadoutApplication, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketDataSender, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::SocketReceiver, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TdeAmcDetDataSender, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TDECrateApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPReplayApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TPStreamWriterApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::TriggerApplication, dunedaq::appmodel::WIECApplication, dunedaq::appmodel::WIECApplication, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataReceiver, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetDataSender, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorStream, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::DetectorToDaqConnection, dunedaq::confmodel::Resource, dunedaq::confmodel::Resource, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceBase, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSet, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetAND, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::ResourceSetOR, dunedaq::confmodel::Segment, and dunedaq::confmodel::Segment.

Friends And Related Symbol Documentation

◆ conffwk::Configuration

Definition at line 35 of file Component.hpp.

◆ conffwk::DalFactory

conffwk::DalFactory
friend

Definition at line 37 of file Component.hpp.

◆ conffwk::DalObject

Definition at line 36 of file Component.hpp.

◆ conffwk::DalRegistry

Definition at line 38 of file Component.hpp.

Member Data Documentation

◆ s_class_name

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

The name of the configuration class.

Definition at line 50 of file Component.hpp.


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