26 constexpr
struct NoCaseCmp_t
33 [](
char c1,
char c2) {
44 inline bool operator() (
const Property* p )
const
45 {
return p && noCaseCmp( p->
name() , m_name ) ; }
65 if ( !rsvc ) {
return nullptr ; }
68 m_remoteProperties.emplace_back ( name ,
std::make_pair( rsvc , nam ) ) ;
79 return ( it != props.
end() ) ? *it :
nullptr;
88 Property* lp = property ( name , m_properties ) ;
89 if ( lp ) {
return lp ; }
91 for (
const auto& it : m_remoteProperties )
93 if ( !noCaseCmp(it.first,name) ) { continue ; }
95 if ( !p ) { continue ; }
204 return noCaseCmp(prop->
name(),
name);
214 <<
"duplicated property name '" << name
215 <<
"', see https://its.cern.ch/jira/browse/GAUDI-1023"<<
endmsg;
Definition of the MsgStream class used to transmit messages.
IInterface * m_pOuter
Interface hub reference (ApplicationMgr)
virtual bool assign(const Property &source)=0
import the property value form the source
virtual const std::vector< Property * > & getProperties() const =0
Get list of properties.
virtual std::string toString() const =0
value -> string
const std::string & name() const
property name
StatusCode setProperty(const Property &p) override
set the property form another property
StatusCode queryInterface(const InterfaceID &iid, void **pinterface) override
bool isSuccess() const
Test for a status code of SUCCESS.
StatusCode parse(GaudiUtils::HashMap< K, V > &result, const std::string &input)
Basic parser for the types of HashMap used in DODBasicMapper.
virtual bool load(Property &dest) const =0
export the property value to the destination
bool isFailure() const
Test for a status code of FAILURE.
auto begin(reverse_wrapper< T > &w)
virtual const std::string & name() const =0
Retrieve the name of the instance.
StatusCode getProperty(Property *p) const override
get the property
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Properties m_properties
Collection of all declared properties.
GAUDI_API ISvcLocator * svcLocator()
unsigned long addRef() override
Reference Interface instance.
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
const std::vector< Property * > & getProperties() const override
get all properties
The IMessage is the interface implemented by the message service.
auto end(reverse_wrapper< T > &w)
Property base class allowing Property* collections to be "homogeneous".
bool hasProperty(const std::string &name) const override
Return true if we have a property with the given name.
Property * declareRemoteProperty(const std::string &name, IProperty *rsvc, const std::string &rname="")
Declare a remote property.
StatusCode queryInterface(const InterfaceID &ti, void **pp) override
Implementation of IInterface::queryInterface.
The IProperty is the basic interface for all components which have properties that can be set or get...
void assertUniqueName(const std::string &name) const
Throw an exception if the name is already present in the list of properties (see GAUDI-1023).
void toupper(std::string &s)
PropertyMgr(IInterface *iface=nullptr)
constructor from the interface
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Property * property(const std::string &name) const
virtual StatusCode queryInterface(const InterfaceID &ti, void **pp)=0
Set the void** to the pointer to the requested interface of the instance.
virtual StatusCode fromString(const std::string &value)=0
string -> value