Go to the documentation of this file.
51 "test access to objects (DataObject and ContainedObject)" };
69 if ( !p )
return "Access FAILED.";
71 std::begin( *p ),
std::end( *p ), std::string{}, [&](
const std::string&
s,
typename T::const_reference i ) {
72 return s + std::to_string( p->index( i ) ) +
":" + std::to_string( i->clID() ) +
",";
74 return result.substr( 0, result.length() - 2 );
80 for (
size_t j = 1;
j < flg.size();
j++ ) {
81 if ( !flg[
j - 1] && flg[
j] )
93 log <<
" [No Address]";
100 log <<
" " << typ.substr( 0, 32 );
101 }
catch ( ... ) {
log <<
"Access test FAILED"; }
103 log <<
" (Unloaded) ";
108 int numObj =
base->numberOfObjects();
110 log <<
" [" << numObj <<
"]";
114 case CLID_ObjectList >> 16:
117 case CLID_ObjectVector >> 16:
120 case ( CLID_ObjectVector + 0x00030000 ) >> 16:
123 case ( CLID_ObjectVector + 0x00040000 ) >> 16:
126 case ( CLID_ObjectVector + 0x00050000 ) >> 16:
131 }
catch ( ... ) {
log <<
"Access test FAILED"; }
141 std::vector<IRegistry*> leaves;
142 StatusCode sc = mgr->objectLeaves( pObj, leaves );
143 const std::string* par0 =
nullptr;
146 for (
auto i = leaves.begin(); i != leaves.end(); i++ ) {
147 const std::string&
id = ( *i )->identifier();
151 const std::string* par1 = ( *i )->address()->par();
152 if ( par1 && par0[0] != par1[0] )
continue;
156 sc =
eventSvc()->retrieveObject(
id, p );
158 sc =
eventSvc()->findObject(
id, p );
162 flg.push_back( i + 1 == leaves.end() );
167 flg.push_back( i + 1 == leaves.end() );
187 error() <<
"Failed to retrieve IDataManagerSvc interface." <<
endmsg;
205 std::string store_name =
"Unknown";
209 if ( isvc ) store_name = isvc->name();
212 <<
"@" << store_name <<
"]:" <<
endmsg;
213 std::vector<bool> flg( 1,
true );
219 error() <<
"Cannot retrieve \"/Event\"!" <<
endmsg;
std::string m_rootName
Name of the root leaf (obtained at initialize)
KeyedObjectManager Class to manage keyed objects.
MsgStream & hex(MsgStream &log)
virtual const std::string * par() const =0
Retrieve String parameters.
SmartIF< IDataProviderSvc > & eventSvc() const
The standard event data service.
Gaudi::Property< long > m_print
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
virtual long svcType() const =0
Retrieve service type.
Alias for backward compatibility.
long m_total
Internal counter to trigger printouts.
Gaudi::Property< bool > m_load
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Gaudi::Property< bool > m_accessForeign
StatusCode finalize() override
Finalize.
virtual const name_type & name() const =0
Name of the directory (or key)
AttribStringParser::Iterator begin(const AttribStringParser &parser)
SmartIF< IDataProviderSvc > m_dataSvc
Reference to data provider service.
void printObj(IRegistry *pReg, std::vector< bool > &flg)
Print datastore leaf.
MsgStream & dec(MsgStream &log)
virtual const CLID & clID() const =0
Retrieve class information from link.
template class KeyedContainer, KeyedContainer.h
Gaudi::Property< bool > m_exploreRelations
unsigned int CLID
Class ID definition.
StatusCode execute() override
Execute procedure.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Gaudi::Property< std::string > m_dataSvcName
SmartIF< IFace > as() const
return a new SmartIF instance to another interface
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
Gaudi::Property< long > m_printMissing
void explore(IRegistry *pObj, std::vector< bool > &flg)
constexpr static const auto SUCCESS
TYPE * get() const
Get interface pointer.
A small class used to access easily (and efficiently) data items residing in data stores.
#define DECLARE_COMPONENT(type)
StatusCode service(std::string_view name, T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
virtual DataObject * object() const =0
Retrieve object behind the link.
long m_frqPrint
Internal counter to adjust printout frequency.
Algorithm(std::string name, ISvcLocator *svcloc, std::string version=PACKAGE_VERSION)
Constructor.
constexpr static const auto FAILURE
Gaudi::Property< double > m_frequency
Gaudi::Property< bool > m_testAccess
virtual const CLID & clID() const
Retrieve reference to class definition structure.
void accumulate(Counter &counter, const Container &container, Fun f=Identity{})
A helper function for accumulating data from a container into a counter This is internally using buff...
StatusCode initialize() override
Initialize.
virtual IDataProviderSvc * dataSvc() const =0
Retrieve pointer to Transient Store.