22 std::string quote( std::string_view in ) {
23 if ( !in.empty() && in.front() == in.back() && ( in.front() ==
'\'' || in.front() ==
'\"' ) )
24 return std::string{ in };
26 s << std::quoted( in );
34 template <
typename Iterator,
typename Skipper>
38 template <
typename ClassID>
40 dest = { arg.first, arg.second };
52 ph::function<Operations>
op;
70 if ( !getClidSvc() || getClidSvc()->getIDOfTypeName(
m_className,
m_clid ).isFailure() ) {
95 if ( !getClidSvc() || getClidSvc()->getTypeNameOfID(
m_clid,
m_className ).isFailure() ) {
112 const std::string& s ) {
115 throw std::invalid_argument(
"cannot parse '" + s +
"' to DataObjIDColl" );
125 const std::string& s ) {
128 throw std::invalid_argument(
"cannot parse '" + s +
"' to DataObjIDVector" );
std::ostream & toStream(const DataObjID &d, std::ostream &os)
StatusCode parse(DataObjID &dest, std::string_view src)
std::unordered_set< DataObjID, DataObjID_Hasher > DataObjIDColl
std::vector< DataObjID > DataObjIDVector
#define REGISTER_GRAMMAR(ResultType, GrammarName)
boost::spirit::classic::position_iterator2< ForwardIterator > Iterator
implementation of various functions for streaming.
std::string fullKey() const
combination of the key and the ClassName, mostly for debugging
const std::string & className() const
return the ClassName (if available)
std::once_flag m_setClassName
interface to the CLID database
virtual SmartIF< IService > & service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
Returns a smart pointer to a service.
This class is used for returning status codes from appropriate routines.
SkipperGrammar< IteratorT > Skipper
StatusCode parse_(ResultT &result, std::string_view input)
std::string toString(const TYPE &obj)
the generic implementation of the type conversion to the string
std::ostream & toStream(ITERATOR first, ITERATOR last, std::ostream &s, const std::string &open, const std::string &close, const std::string &delim)
the helper function to print the sequence
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
GAUDI_API ISvcLocator * svcLocator()
virtual TYPE fromString(const TYPE &ref_value, const std::string &s)=0
std::string toString(const TYPE &v)
void operator()(DataObjID &dest, const std::pair< ClassID, std::string > &arg) const
void operator()(DataObjID &dest, const std::string &arg) const
Grammar_< Iterator, std::string, Skipper >::Grammar gaudi_style
Grammar_< Iterator, std::pair< unsignedint, std::string >, Skipper >::Grammar atlas1_style
qi::rule< Iterator, DataObjID(), Skipper > result
ph::function< Operations > op
Grammar_< Iterator, std::pair< std::string, std::string >, Skipper >::Grammar atlas2_style