ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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. More...
 
MsgStreamTC & msg () const
 The standard message stream. More...
 
MsgStreamTC & msg (const MSGTC::Level lvl) const
 The standard message stream. More...
 
const std::string & getName () const
 name accessor More...
 

Private Attributes

boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
 MsgStreamTC instance (a std::cout like with print-out levels) More...
 
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 }

◆ 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 }

◆ 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 }

◆ 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  }

◆ 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  }

◆ 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:
TRG_MSG_ERROR
#define TRG_MSG_ERROR(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:29
TrigConf::TrigConfMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStreamTC > m_msg_tls
MsgStreamTC instance (a std::cout like with print-out levels)
Definition: TrigConfMessaging.h:71
MuctpiXMLHelper::printAttributes
void printAttributes(const boost::property_tree::ptree &tree)
Definition: MuctpiXMLHelper.cxx:18
tree
TChain * tree
Definition: tile_monitor.h:30
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
MuctpiXMLHelper::readAttribute
std::string readAttribute(const boost::property_tree::ptree &tree, const std::string &attr)
Definition: MuctpiXMLHelper.cxx:52
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TrigConf::TrigConfMessaging::m_name
std::string m_name
Definition: TrigConfMessaging.h:72
TrigConf::TrigConfMessaging::msg
MsgStreamTC & msg() const
The standard message stream.
Definition: TrigConfMessaging.h:86
MuctpiXMLHelper::hasAttribute
bool hasAttribute(const boost::property_tree::ptree &tree, const std::string &attr)
Definition: MuctpiXMLHelper.cxx:33
TRG_MSG_WARNING
#define TRG_MSG_WARNING(x)
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStreamMacros.h:28
ptree
boost::property_tree::ptree ptree
Definition: JsonFileLoader.cxx:16
TrigConf::TrigConfMessaging
Class to provide easy access to TrigConf::MsgStream for TrigConf classes.
Definition: TrigConfMessaging.h:28
python.PoolAttributeHelper.attrName
attrName
Definition: PoolAttributeHelper.py:100
a
TList * a
Definition: liststreamerinfos.cxx:10
python.TransformConfig.attributes
def attributes(self)
Definition: TransformConfig.py:383
python.SystemOfUnits.ms
float ms
Definition: SystemOfUnits.py:148