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

#include <disabled-components.hpp>

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

Classes

struct  SortStringPtr
 

Public Member Functions

 DisabledComponents (dunedaq::conffwk::Configuration &db, Session *session)
 
virtual ~DisabledComponents ()
 
void notify (std::vector< dunedaq::conffwk::ConfigurationChange * > &) noexcept
 Call action on database changes.
 
void load () noexcept
 Call action on database file(s) load.
 
void unload () noexcept
 Call action on database file(s) unload.
 
void update (const dunedaq::conffwk::ConfigObject &obj, const std::string &name) noexcept
 Call action on database object modification by user's code.
 
void reset () noexcept
 
size_t size () noexcept
 
void disable (const dunedaq::confmodel::Component &c)
 
bool is_enabled (const dunedaq::confmodel::Component *c)
 
void disable_children (const dunedaq::confmodel::ResourceSet &)
 
void disable_children (const dunedaq::confmodel::Segment &)
 
- Public Member Functions inherited from dunedaq::conffwk::ConfigAction
virtual ~ConfigAction ()
 

Static Public Member Functions

static unsigned long get_num_of_slr_resources (const dunedaq::confmodel::Session &p)
 

Private Member Functions

void __clear () noexcept
 

Private Attributes

dunedaq::conffwk::Configurationm_db
 
Sessionm_session
 
unsigned long m_num_of_slr_enabled_resources
 
unsigned long m_num_of_slr_disabled_resources
 
std::set< const std::string *, SortStringPtrm_disabled
 
std::set< const dunedaq::confmodel::Component * > m_user_disabled
 
std::set< const dunedaq::confmodel::Component * > m_user_enabled
 

Friends

class Session
 
class Component
 

Detailed Description

Definition at line 18 of file disabled-components.hpp.

Constructor & Destructor Documentation

◆ DisabledComponents()

DisabledComponents::DisabledComponents ( dunedaq::conffwk::Configuration & db,
Session * session )

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

18 :
19 m_db(db),
23{
24 TLOG_DEBUG(2) << "construct the object " << (void *)this ;
25 m_db.add_action(this);
26}
void add_action(ConfigAction *ac)
dunedaq::conffwk::Configuration & m_db
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112

◆ ~DisabledComponents()

DisabledComponents::~DisabledComponents ( )
virtual

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

29{
30 TLOG_DEBUG(2) << "destroy the object " << (void *)this ;
31 m_db.remove_action(this);
32}
void remove_action(ConfigAction *ac)

Member Function Documentation

◆ __clear()

void dunedaq::confmodel::DisabledComponents::__clear ( )
inlineprivatenoexcept

Definition at line 46 of file disabled-components.hpp.

47 {
48 m_disabled.clear();
49 m_user_disabled.clear();
50 m_user_enabled.clear();
53 }
std::set< const std::string *, SortStringPtr > m_disabled
std::set< const dunedaq::confmodel::Component * > m_user_enabled
std::set< const dunedaq::confmodel::Component * > m_user_disabled

◆ disable()

void dunedaq::confmodel::DisabledComponents::disable ( const dunedaq::confmodel::Component & c)
inline

Definition at line 84 of file disabled-components.hpp.

85 {
86 m_disabled.insert(&c.UID());
87 }

◆ disable_children() [1/2]

void DisabledComponents::disable_children ( const dunedaq::confmodel::ResourceSet & rs)

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

72{
73 for (auto & res : rs.get_contains()) {
74 disable(*res);
75 if (const auto * rs2 = res->cast<ResourceSet>()) {
76 disable_children(*rs2);
77 }
78 }
79}
void disable_children(const dunedaq::confmodel::ResourceSet &)
void disable(const dunedaq::confmodel::Component &c)
const std::vector< const dunedaq::confmodel::ResourceBase * > & get_contains() const
Get "contains" relationship value. A resource set is a container of resources to easily implement gro...

◆ disable_children() [2/2]

void DisabledComponents::disable_children ( const dunedaq::confmodel::Segment & segment)

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

83{
84 for (auto & app : segment.get_applications()) {
85 auto res = app->cast<Component>();
86 if (res) {
87 disable(*res);
88 }
89 }
90 for (auto & seg : segment.get_segments()) {
91 TLOG_DEBUG(6) << "disable segment " << seg << " because it's parent segment " << &segment << " is disabled" ;
92 disable(*seg);
93 disable_children(*seg);
94 }
95}
const std::vector< const dunedaq::confmodel::Segment * > & get_segments() const
Get "segments" relationship value. Nested list of Segments that form part of this Segment.
Definition Segment.hpp:114
const std::vector< const dunedaq::confmodel::Application * > & get_applications() const
Get "applications" relationship value. List of Applications that run in this Segment.
Definition Segment.hpp:141

◆ get_num_of_slr_resources()

unsigned long DisabledComponents::get_num_of_slr_resources ( const dunedaq::confmodel::Session & p)
static

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

347{
348 return (session.m_disabled_components.m_num_of_slr_enabled_resources + session.m_disabled_components.m_num_of_slr_disabled_resources);
349}

◆ is_enabled()

bool dunedaq::confmodel::DisabledComponents::is_enabled ( const dunedaq::confmodel::Component * c)
inline

Definition at line 90 of file disabled-components.hpp.

90 {
91 return (m_disabled.find(&c->UID()) == m_disabled.end());
92 }

◆ load()

void DisabledComponents::load ( )
virtualnoexcept

Call action on database file(s) load.

Implements dunedaq::conffwk::ConfigAction.

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

43{
44 TLOG_DEBUG(2) << "reset session components because of configuration load on object " << (void *)this ;
45 __clear();
46}

◆ notify()

void DisabledComponents::notify ( std::vector< dunedaq::conffwk::ConfigurationChange * > & changes)
virtualnoexcept

Call action on database changes.

Implements dunedaq::conffwk::ConfigAction.

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

36{
37 TLOG_DEBUG(2) << "reset session components because of notification callback on object " << (void *)this ;
38 __clear();
39}

◆ reset()

void DisabledComponents::reset ( )
noexcept

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

64{
65 TLOG_DEBUG(2) << "reset disabled by explicit user call" ;
66 m_disabled.clear(); // do not clear s_user_disabled && s_user_enabled !!!
67}

◆ size()

size_t dunedaq::confmodel::DisabledComponents::size ( )
inlinenoexcept

Definition at line 78 of file disabled-components.hpp.

79 {
80 return m_disabled.size();
81 }

◆ unload()

void DisabledComponents::unload ( )
virtualnoexcept

Call action on database file(s) unload.

Implements dunedaq::conffwk::ConfigAction.

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

50{
51 TLOG_DEBUG(2) << "reset session components because of configuration unload on object " << (void *)this ;
52 __clear();
53}

◆ update()

void DisabledComponents::update ( const dunedaq::conffwk::ConfigObject & obj,
const std::string & name )
virtualnoexcept

Call action on database object modification by user's code.

Implements dunedaq::conffwk::ConfigAction.

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

57{
58 TLOG_DEBUG(2) << "reset session components because of configuration update (obj = " << obj << ", name = \'" << name << "\') on object " << (void *)this ;
59 __clear();
60}

Friends And Related Symbol Documentation

◆ Component

friend class Component
friend

Definition at line 22 of file disabled-components.hpp.

◆ Session

friend class Session
friend

Definition at line 21 of file disabled-components.hpp.

Member Data Documentation

◆ m_db

dunedaq::conffwk::Configuration& dunedaq::confmodel::DisabledComponents::m_db
private

Definition at line 35 of file disabled-components.hpp.

◆ m_disabled

std::set<const std::string *, SortStringPtr> dunedaq::confmodel::DisabledComponents::m_disabled
private

Definition at line 41 of file disabled-components.hpp.

◆ m_num_of_slr_disabled_resources

unsigned long dunedaq::confmodel::DisabledComponents::m_num_of_slr_disabled_resources
private

Definition at line 39 of file disabled-components.hpp.

◆ m_num_of_slr_enabled_resources

unsigned long dunedaq::confmodel::DisabledComponents::m_num_of_slr_enabled_resources
private

Definition at line 38 of file disabled-components.hpp.

◆ m_session

Session* dunedaq::confmodel::DisabledComponents::m_session
private

Definition at line 36 of file disabled-components.hpp.

◆ m_user_disabled

std::set<const dunedaq::confmodel::Component *> dunedaq::confmodel::DisabledComponents::m_user_disabled
private

Definition at line 42 of file disabled-components.hpp.

◆ m_user_enabled

std::set<const dunedaq::confmodel::Component *> dunedaq::confmodel::DisabledComponents::m_user_enabled
private

Definition at line 43 of file disabled-components.hpp.


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