11 #include "boost/algorithm/string.hpp" 19 constexpr
struct select1st_t {
20 template <
typename S,
typename T>
25 template <
typename S,
typename T>
35 for (
const auto& cur : m_catalog ) {
36 for (
auto& prop : cur.second )
delete prop;
42 auto props = findProperties( client );
44 removeProperty( client, property->
name() ).ignore();
45 props->push_back( property );
54 auto props = findProperties( client );
56 auto res = findProperty( *props, name );
59 props->erase( res.second );
67 return findProperties( client );
73 result.
reserve( m_catalog.size() );
80 auto result = m_catalog.find( client );
81 return ( result != m_catalog.end() ) ? &result->second :
nullptr;
86 auto result = m_catalog.find( client );
87 return ( result != m_catalog.end() ) ? &result->second :
nullptr;
94 return boost::iequals( name, prop->
name() );
103 return boost::iequals( name, prop->
name() );
111 for (
const auto& iclient : m_catalog ) {
112 o <<
"Client '" << iclient.first <<
"'" <<
std::endl;
113 for (
const auto& p : iclient.second ) {
114 if ( p ) o <<
"\t" << ( *p ) <<
std::endl;
122 auto props = findProperties( client );
124 const auto res = findProperty( *props, name );
const PropertiesT * getProperties(const std::string &client) const
std::ostream & fillStream(std::ostream &o) const
dump the content of catalog to std::ostream
const std::string name() const
property name
Gaudi::Details::PropertyBase * property(const std::string &name) const
StatusCode addProperty(const std::string &client, const Gaudi::Details::PropertyBase *property)
std::ostream & operator<<(std::ostream &o, const SvcCatalog &c)
printoput operator
StatusCode removeProperty(const std::string &client, const std::string &name)
std::vector< std::string > getClients() const
const PropertiesT * findProperties(const std::string &client) const
This class is used for returning status codes from appropriate routines.
std::pair< bool, PropertiesT::const_iterator > findProperty(const PropertiesT &props, const std::string &name) const
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
const Gaudi::Details::PropertyBase * getProperty(const std::string &client, const std::string &name) const
constexpr static const auto SUCCESS
virtual Out operator()(const vector_of_const_< In > &inputs) const =0
T back_inserter(T...args)