6 #include <boost/format.hpp> 14 constexpr
struct select1st_t {
15 template <
typename S,
typename T>
20 template <
typename S,
typename T>
38 auto it = catalog_.find( property->
ClientName() );
39 if ( it == catalog_.end() ) {
41 properties.insert( property );
45 it->second.erase( *property );
46 it->second.insert( property );
53 auto it = catalog_.find( client );
54 if ( it == catalog_.end() )
return nullptr;
56 auto pit =
std::find_if( it->second.begin(), it->second.end(), Property::Equal( name ) );
57 return ( pit != it->second.end() ) ? &*pit :
nullptr;
63 for (
const auto& client : catalog_ ) {
64 for (
const auto& current : client.second ) {
65 result += current.ToString() +
"\n";
79 size_t nComponents = 0;
80 size_t nProperties = 0;
82 for (
const auto& client : catalog_ ) {
85 nProperties += client.second.size();
86 for (
const auto& current : client.second ) {
87 o <<
boost::format(
"%1% %|44t| = %2% ; " ) % current.FullName() % current.ValueAsString() <<
'\n';
91 <<
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