ATLAS Offline Software
PropertyMgr.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ASGTOOLS_PROPERTYMGR_H
6 #define ASGTOOLS_PROPERTYMGR_H
7 
8 // Local include(s):
9 
10 #ifndef XAOD_STANDALONE
11 # include "GaudiKernel/PropertyMgr.h"
12 #else // not XAOD_STANDALONE
13 
14 // System include(s):
15 #include <string>
16 #include <map>
17 
18 // Local include(s):
19 #include "AsgMessaging/MsgStream.h"
20 #include "AsgTools/Property.h"
22 
34 class PropertyMgr {
35 
36 public:
38  typedef Property::Type Type;
39 
41  typedef std::map< std::string, Property* > PropMap_t;
42 
44  PropertyMgr();
46  ~PropertyMgr();
47 
50 
52  template< typename T >
53  Property* declareProperty( const std::string& name, T& loc );
54 
56  StatusCode setProperty( const std::string& name, const char* value );
58  template< typename T >
59  StatusCode setProperty( const std::string& name, const T& val );
60 
62  template< typename T >
63  StatusCode getProperty( const std::string& name, T& val ) const;
64 
66  const Property* getProperty( const std::string& name ) const;
67 
69  const PropMap_t& getProperties() const;
70 
72 
75 
77  MsgStream& msg() const;
78 
80  MsgStream& msg( MSG::Level level ) const;
81 
83 
84 private:
86  PropMap_t m_props;
88  mutable MsgStream m_msg;
89 
90 }; // class PropertyMgr
91 
92 // Include the template implementations:
93 #include "AsgTools/PropertyMgr.icc"
94 
95 #endif // not XAOD_STANDALONE
96 #endif // ASGTOOLS_PROPERTYMGR_H
Property::Type
Type
Property type enumeration.
Definition: Property.h:27
athena.value
value
Definition: athena.py:122
Property
Support class for PropertyMgr.
Definition: Property.h:23
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
Type
RootType Type
Definition: TrigTSerializer.h:30
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
PropertyMgr.icc
Property.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TestMuonSF::getProperty
T getProperty(const asg::IAsgTool *interface_tool, const std::string &prop_name)
Definition: MuonSFTestHelper.cxx:17
StatusCode.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
MsgStream.h