16 #include <boost/format.hpp> 23 constexpr
struct select1st_t {
24 template <
typename S,
typename T>
28 template <
typename S,
typename T>
43 auto it = catalog_.find( property->
ClientName() );
44 if ( it == catalog_.end() ) {
50 it->second.erase( *property );
51 it->second.insert( property );
57 auto it = catalog_.find( client );
58 if ( it == catalog_.end() )
return nullptr;
60 auto pit =
std::find_if( it->second.begin(), it->second.end(), Property::Equal(
name ) );
61 return ( pit != it->second.end() ) ? &*pit :
nullptr;
66 for (
const auto& client : catalog_ ) {
67 for (
const auto& current : client.second ) { 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(...)".
Gaudi::Details::PropertyBase Property
\fixme backward compatibility hack for old Property base class
const std::string & ClientName() const
std::ostream & fillStream(std::ostream &out) const
print the content of the catalogue to std::ostream
T back_inserter(T... args)