6 #include <boost/format.hpp> 13 constexpr
struct select1st_t {
14 template <
typename S,
typename T>
18 template <
typename S,
typename T>
33 auto it = catalog_.find( property->
ClientName() );
34 if ( it == catalog_.end() ) {
36 properties.insert( property );
40 it->second.erase( *property );
41 it->second.insert( property );
47 auto it = catalog_.find( client );
48 if ( it == catalog_.end() )
return nullptr;
50 auto pit =
std::find_if( it->second.begin(), it->second.end(), Property::Equal( name ) );
51 return ( pit != it->second.end() ) ? &*pit :
nullptr;
56 for (
const auto& client : catalog_ ) {
57 for (
const auto& current : client.second ) { result += current.ToString() +
"\n"; }
69 size_t nComponents = 0;
70 size_t nProperties = 0;
72 for (
const auto& client : catalog_ ) {
75 nProperties += client.second.size();
76 for (
const auto& current : client.second ) {
77 o <<
boost::format(
"%1% %|44t| = %2% ; " ) % current.FullName() % current.ValueAsString() <<
'\n';
81 <<
boost::format(
"// End parser catalog #Components=%1% #Properties=%2%" ) % nComponents % nProperties <<
'\n' GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
std::ostream & fillStream(std::ostream &out) const
print the content of the catalogue to std::ostream
Gaudi::Details::PropertyBase * property(const std::string &name) const
Gaudi::Details::PropertyBase Property
backward compatibility hack for old Property base class
virtual Out operator()(const vector_of_const_< In > &inputs) const =0
T back_inserter(T...args)
const std::string & ClientName() const