ATLAS Offline Software
Loading...
Searching...
No Matches
MuctpiXMLHelper Class Reference

#include <MuctpiXMLHelper.h>

Inheritance diagram for MuctpiXMLHelper:
Collaboration diagram for MuctpiXMLHelper:

Public Member Functions

 MuctpiXMLHelper ()
std::string readAttribute (const boost::property_tree::ptree &tree, const std::string &attr)
bool hasAttribute (const boost::property_tree::ptree &tree, const std::string &attr)
std::string getAttribute (const boost::property_tree::ptree &tree, const std::string &attr)
std::string getAttribute (const boost::property_tree::ptree &tree, const std::string &attr, const std::string &defval)
int getIntAttribute (const boost::property_tree::ptree &tree, const std::string &attr)
int getIntAttribute (const boost::property_tree::ptree &tree, const std::string &attr, int defval)
unsigned int getUIntAttribute (const boost::property_tree::ptree &tree, const std::string &attr)
unsigned int getUIntAttribute (const boost::property_tree::ptree &tree, const std::string &attr, unsigned int &defval)
float getFloatAttribute (const boost::property_tree::ptree &tree, const std::string &attr)
float getFloatAttribute (const boost::property_tree::ptree &tree, const std::string &attr, float &defval)
void printAttributes (const boost::property_tree::ptree &tree)

Private Member Functions

bool msgLvl (const MSGTC::Level lvl) const
 Test the output level.
MsgStreamTC & msg () const
 The standard message stream.
MsgStreamTC & msg (const MSGTC::Level lvl) const
 The standard message stream.
const std::string & getName () const
 name accessor

Private Attributes

boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
 MsgStreamTC instance (a std::cout like with print-out levels)
std::string m_name

Detailed Description

Definition at line 13 of file MuctpiXMLHelper.h.

Constructor & Destructor Documentation

◆ MuctpiXMLHelper()

MuctpiXMLHelper::MuctpiXMLHelper ( )

Definition at line 13 of file MuctpiXMLHelper.cxx.

13 :
14 TrigConf::TrigConfMessaging("MuctpiXML")
15{}

Member Function Documentation

◆ getAttribute() [1/2]

std::string MuctpiXMLHelper::getAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr )

Definition at line 68 of file MuctpiXMLHelper.cxx.

68 {
69 if( ! hasAttribute(tree, attr) ) {
70 TRG_MSG_WARNING("attribute " << attr << " does not exist");
71 return "";
72 }
73 return readAttribute(tree,attr);
74}
std::string readAttribute(const boost::property_tree::ptree &tree, const std::string &attr)
bool hasAttribute(const boost::property_tree::ptree &tree, const std::string &attr)
TChain * tree

◆ getAttribute() [2/2]

std::string MuctpiXMLHelper::getAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr,
const std::string & defval )

Definition at line 77 of file MuctpiXMLHelper.cxx.

77 {
78 if( ! hasAttribute(tree, attr) )
79 return defval;
80 return readAttribute(tree,attr);
81}

◆ getFloatAttribute() [1/2]

float MuctpiXMLHelper::getFloatAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr )

Definition at line 144 of file MuctpiXMLHelper.cxx.

144 {
145 if( ! hasAttribute(tree, attr) ) {
146 TRG_MSG_WARNING("attribute " << attr << " does not exist");
147 return 0;
148 }
149 float ret_value{0};
150 std::string attr_value = readAttribute(tree, attr);
151 auto [ptr, ec] = std::from_chars(attr_value.data(), attr_value.data() + attr_value.size(), ret_value, std::chars_format::general);
152 if (ec != std::errc()) {
153 TRG_MSG_ERROR("attribute '" << attr << "' is not a float (it is " << attr_value << ")");
155 }
156 return ret_value;
157}
void printAttributes(const boost::property_tree::ptree &tree)
void * ptr(T *p)
Definition SGImplSvc.cxx:74

◆ getFloatAttribute() [2/2]

float MuctpiXMLHelper::getFloatAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr,
float & defval )

Definition at line 160 of file MuctpiXMLHelper.cxx.

160 {
161 if( ! hasAttribute(tree, attr) )
162 return defval;
163 float ret_value{0};
164 std::string attr_value = readAttribute(tree, attr);
165 auto [ptr, ec] = std::from_chars(attr_value.data(), attr_value.data() + attr_value.size(), ret_value, std::chars_format::general);
166 if (ec != std::errc()) {
167 TRG_MSG_ERROR("attribute '" << attr << "' is not a float (it is " << attr_value << ")");
169 }
170 return ret_value;
171}

◆ getIntAttribute() [1/2]

int MuctpiXMLHelper::getIntAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr )

Definition at line 85 of file MuctpiXMLHelper.cxx.

85 {
86 if( ! hasAttribute(tree, attr) ) {
87 TRG_MSG_WARNING("attribute " << attr << " does not exist");
88 return 0;
89 }
90
91 int ret_value{0};
92 std::string attr_value = readAttribute(tree, attr);
93 auto [ptr, ec] = std::from_chars(attr_value.data(), attr_value.data() + attr_value.size(), ret_value);
94 if (ec != std::errc()) {
95 TRG_MSG_ERROR("attribute '" << attr << "' is not an int (it is '" << attr_value << "')");
96 }
97 return ret_value;
98}

◆ getIntAttribute() [2/2]

int MuctpiXMLHelper::getIntAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr,
int defval )

Definition at line 101 of file MuctpiXMLHelper.cxx.

101 {
102 if( ! hasAttribute(tree, attr) )
103 return defval;
104 int ret_value{0};
105 std::string attr_value = readAttribute(tree, attr);
106 auto [ptr, ec] = std::from_chars(attr_value.data(), attr_value.data() + attr_value.size(), ret_value);
107 if (ec != std::errc()) {
108 TRG_MSG_ERROR("attribute '" << attr << "' is not an int (it is '" << attr_value << "')");
109 }
110 return ret_value;
111}

◆ getName()

const std::string & TrigConf::TrigConfMessaging::getName ( ) const
inlineinherited

name accessor

Returns
the name

Definition at line 101 of file TrigConfMessaging.h.

101 {
102 return m_name;
103 }

◆ getUIntAttribute() [1/2]

unsigned int MuctpiXMLHelper::getUIntAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr )

Definition at line 115 of file MuctpiXMLHelper.cxx.

115 {
116 if( ! hasAttribute(tree, attr) ) {
117 TRG_MSG_WARNING("attribute " << attr << " does not exist");
118 return 0;
119 }
120 unsigned int ret_value{0};
121 std::string attr_value = readAttribute(tree, attr);
122 auto [ptr, ec] = std::from_chars(attr_value.data(), attr_value.data() + attr_value.size(), ret_value);
123 if (ec != std::errc()) {
124 TRG_MSG_ERROR("attribute '" << attr << "' is not an unsigned int (it is " << attr_value << ")");
125 }
126 return ret_value;
127}

◆ getUIntAttribute() [2/2]

unsigned int MuctpiXMLHelper::getUIntAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr,
unsigned int & defval )

Definition at line 130 of file MuctpiXMLHelper.cxx.

130 {
131 if( ! hasAttribute(tree, attr) )
132 return defval;
133 unsigned int ret_value{0};
134 std::string attr_value = readAttribute(tree, attr);
135 auto [ptr, ec] = std::from_chars(attr_value.data(), attr_value.data() + attr_value.size(), ret_value);
136 if (ec != std::errc()) {
137 TRG_MSG_ERROR("attribute '" << attr << "' is not an unsigned int (it is " << attr_value << ")");
138 }
139 return ret_value;
140}

◆ hasAttribute()

bool MuctpiXMLHelper::hasAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr )

Definition at line 33 of file MuctpiXMLHelper.cxx.

33 {
34
35 // initialize attributes ptree
36 ptree tmp_ptree;
37 ptree attributes = tree.get_child("<xmlattr>", tmp_ptree);
38
39 if(attributes.empty()) return false;
40
41 for(const ptree::value_type &a: attributes) {
42 string attrName = a.first;
43 if(attrName == attr) {
44 return true;
45 }
46 }
47 return false;
48}
boost::property_tree::ptree ptree
static Double_t a

◆ msg() [1/2]

MsgStreamTC & TrigConf::TrigConfMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 86 of file TrigConfMessaging.h.

87 {
88 MsgStreamTC* ms = m_msg_tls.get();
89 if (!ms) {
90 ms = new MsgStreamTC(m_name);
91 m_msg_tls.reset(ms);
92 }
93 return *ms;
94 }
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)

◆ msg() [2/2]

MsgStreamTC & TrigConf::TrigConfMessaging::msg ( const MSGTC::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 96 of file TrigConfMessaging.h.

97 {
98 return msg() << lvl;
99 }
MsgStreamTC & msg() const
The standard message stream.

◆ msgLvl()

bool TrigConf::TrigConfMessaging::msgLvl ( const MSGTC::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicting if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 75 of file TrigConfMessaging.h.

76 {
77 if (msg().level() <= lvl) {
78 msg() << lvl;
79 return true;
80 }
81 else {
82 return false;
83 }
84 }

◆ printAttributes()

void MuctpiXMLHelper::printAttributes ( const boost::property_tree::ptree & tree)

Definition at line 18 of file MuctpiXMLHelper.cxx.

18 {
19
20 // initialize attributes ptree
21 ptree tmp_ptree;
22 ptree attributes = tree.get_child("<xmlattr>", tmp_ptree);
23
24 // iterate through elements
25 for(const ptree::value_type & a: attributes) {
26 string attrName = a.first;
27 string attrVal = a.second.data();
28 std::cout << attrName << " : " << attrVal << std::endl;
29 }
30}

◆ readAttribute()

string MuctpiXMLHelper::readAttribute ( const boost::property_tree::ptree & tree,
const std::string & attr )

Definition at line 52 of file MuctpiXMLHelper.cxx.

52 {
53
54 // initialize attributes ptree
55 ptree tmp_ptree;
56 ptree attributes = tree.get_child("<xmlattr>", tmp_ptree);
57
58 // iterate through children
59 for(const ptree::value_type &a : attributes) {
60 if(a.first != attr) continue;
61 return a.second.data(); //a.second.data is the value!
62 }
63 return "";
64}

Member Data Documentation

◆ m_msg_tls

boost::thread_specific_ptr<MsgStreamTC> TrigConf::TrigConfMessaging::m_msg_tls
mutableprivateinherited

MsgStreamTC instance (a std::cout like with print-out levels)

Definition at line 71 of file TrigConfMessaging.h.

◆ m_name

std::string TrigConf::TrigConfMessaging::m_name
privateinherited

Definition at line 72 of file TrigConfMessaging.h.


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