ATLAS Offline Software
Loading...
Searching...
No Matches
MiniConfigTreeNode.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef dqiMiniConfigTreeNode_h
6#define dqiMiniConfigTreeNode_h
7
8#include <map>
9#include <set>
10#include <string>
11
12#include <TObject.h>
13
14
15namespace dqi {
16
24
25class MiniConfigTreeNode : public TObject {
26public:
27
28 class Visitor {
29 public:
30 virtual ~Visitor() { }
31 virtual void Visit( const MiniConfigTreeNode* node ) = 0;
32 };
33
34 class Writer {
35 public:
36 virtual ~Writer() { }
37 virtual void Write(MiniConfigTreeNode* node ) = 0;
38 };
39
40 MiniConfigTreeNode( std::string name_, MiniConfigTreeNode* parent_ );
41
42 virtual ~MiniConfigTreeNode();
43
44 virtual const char* GetName() const;
45
46 virtual std::string GetPathName() const;
47
48
53
54 virtual MiniConfigTreeNode* GetNewDaughter( std::string name_ );
55
56 virtual MiniConfigTreeNode* GetDaughter( std::string name_ ) const;
57
58 virtual const MiniConfigTreeNode* GetParent() const { return m_parent; }
59 virtual MiniConfigTreeNode* GetParent() { return m_parent; }
60
61 virtual std::map<std::string,dqi::MiniConfigTreeNode*> GetDaughters() const;
62
69
70 virtual const MiniConfigTreeNode* GetNode( const std::string & name_ ) const;
71
72
73 virtual void SetAttribute( const std::string & attName, const std::string & attValue, bool isAttribKeyword = false );
74
75 virtual std::string GetAttribute( const std::string & attName, bool calledFromDaughter = false ) const;
76
77 virtual std::string GetAttributeLocal( const std::string & attName ) const;
78
79 virtual void GetAttributeNames( std::set<std::string>& attSet, bool calledFromDaughter = false ) const;
80
81 virtual void GetAttributeNamesLocal( std::set<std::string>& attSet ) const;
82
83
84 virtual void Accept( Visitor& visitor ) const;
85
86 virtual void Accept(Writer& writer );
87
88 virtual void SetAttribKeywordPropagateDown( bool propagateDown );
89
90 virtual bool GetAttribKeywordPropagateDown() const;
91
92protected:
93
94 typedef std::map<std::string,MiniConfigTreeNode*> NodeMap_t;
95 typedef NodeMap_t::const_iterator NodeIter_t;
96
97 typedef std::map<std::string,std::pair<std::string,bool> > AttMap_t;
98 typedef AttMap_t::const_iterator AttIter_t;
99
100 const std::string m_name;
102
105
107
108private:
109
110//Get rid of Root macros that confuse Doxygen
112 ClassDef( MiniConfigTreeNode, 0 ) // A node in a configuration tree
114};
115
116} // namespace dqi
117
118#endif
virtual void Visit(const MiniConfigTreeNode *node)=0
virtual void Write(MiniConfigTreeNode *node)=0
A node of a tree structure holding a configuration, where each node may be given attributes,...
MiniConfigTreeNode * m_parent
virtual std::string GetAttributeLocal(const std::string &attName) const
virtual const MiniConfigTreeNode * GetParent() const
MiniConfigTreeNode(std::string name_, MiniConfigTreeNode *parent_)
virtual const MiniConfigTreeNode * GetNode(const std::string &name_) const
This function takes the full path name of a subnode (in UNIX directory style) and returns the corresp...
virtual bool GetAttribKeywordPropagateDown() const
virtual MiniConfigTreeNode * GetDaughter(std::string name_) const
virtual MiniConfigTreeNode * GetParent()
virtual const char * GetName() const
virtual std::map< std::string, dqi::MiniConfigTreeNode * > GetDaughters() const
virtual void Accept(Visitor &visitor) const
virtual MiniConfigTreeNode * GetNewDaughter(std::string name_)
Returns a daughter of this node, creating one if necessary.
std::map< std::string, MiniConfigTreeNode * > NodeMap_t
AttMap_t::const_iterator AttIter_t
virtual std::string GetAttribute(const std::string &attName, bool calledFromDaughter=false) const
virtual void GetAttributeNames(std::set< std::string > &attSet, bool calledFromDaughter=false) const
virtual void SetAttribute(const std::string &attName, const std::string &attValue, bool isAttribKeyword=false)
virtual void SetAttribKeywordPropagateDown(bool propagateDown)
std::map< std::string, std::pair< std::string, bool > > AttMap_t
virtual std::string GetPathName() const
virtual void GetAttributeNamesLocal(std::set< std::string > &attSet) const
NodeMap_t::const_iterator NodeIter_t
Definition node.h:24