![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
This is the implementation of IAthenaOutputStreamTool.
More...
#include <AthenaOutputStreamTool.h>
|
| AthenaOutputStreamTool (const std::string &type, const std::string &name, const IInterface *parent) |
| Standard AlgTool Constructor. More...
|
|
virtual | ~AthenaOutputStreamTool () |
| Destructor. More...
|
|
StatusCode | initialize () |
| AthAlgTool Interface method implementations: More...
|
|
StatusCode | finalize () |
|
StatusCode | connectServices (const std::string &dataStore, const std::string &cnvSvc, bool extendProvenenceRecord) |
| Specify which data store and conversion service to use and whether to extend provenance Only use if one wants to override jobOptions. More...
|
|
StatusCode | connectOutput (const std::string &outputName="") |
| Connect to the output stream Must connectOutput BEFORE streaming Only specify "outputName" if one wants to override jobOptions. More...
|
|
StatusCode | commitOutput (bool doCommit=false) |
| Commit the output stream after having streamed out objects Must commitOutput AFTER streaming. More...
|
|
StatusCode | finalizeOutput () |
| Finalize the output stream after the last commit, e.g. More...
|
|
virtual StatusCode | streamObjects (const TypeKeyPairs &typeKeys, const std::string &outputName="") |
|
virtual StatusCode | streamObjects (const DataObjectVec &dataObjects, const std::string &outputName="") |
|
virtual StatusCode | getInputItemList (SG::IFolder *m_p2BWrittenFromTool) |
| Get ItemList from the OutputStreamTool (e.g. all input objects) More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
StringProperty | m_outputName { this, "OutputFile", "", "name of the output db name"} |
|
StringProperty | m_dataHeaderKey { this, "DataHeaderKey", "", "name of the data header key: defaults to tool name"} |
|
StringProperty | m_processTag { this, "ProcessingTag", "", "tag of processing stage: defaults to SG key of DataHeader (Stream name)"} |
|
StringProperty | m_outputCollection { this, "OutputCollection", "", "custom container name prefix for DataHeader: default = "" (will result in \"POOLContainer_\")"} |
|
StringProperty | m_containerPrefix { this, "PoolContainerPrefix", "", "prefix for top level POOL container: default = \"CollectionTree\""} |
|
StringProperty | m_containerNameHint { this, "TopLevelContainerName", "0", "naming hint policy for top level POOL container: default = \"0\""} |
|
StringProperty | m_metaDataOutputCollection { this, "MetaDataOutputCollection", "", "custom container name prefix for MetaDataHeader: default = "" (will result in \"MetaDataHdr\")"} |
|
StringProperty | m_metaDataContainerPrefix { this, "MetaDataPoolContainerPrefix", "", "prefix for top level MetaData container: default = "" (will result in \"MetaData\")"} |
|
StringProperty | m_branchNameHint { this, "SubLevelBranchName", "0", "naming hint policy for POOL branching: default = \"0\"" } |
|
std::string | m_outputAttributes {""} |
|
std::string | m_metaDataOutputAttributes {""} |
|
SG::ReadHandleKey< AthenaAttributeList > | m_attrListKey {this, "AttributeListKey", "", "optional key for AttributeList to be written as part of the DataHeader: default = \"\""} |
|
std::string | m_attrListWrite {""} |
|
ServiceHandle< StoreGateSvc > | m_store { this, "Store", "StoreGateSvc/DetectorStore", "Pointer to the data store"} |
|
ServiceHandle< IConversionSvc > | m_conversionSvc |
| Keep reference to the data conversion service. More...
|
|
ServiceHandle< IClassIDSvc > | m_clidSvc |
| Ref to ClassIDSvc to convert type name to clid. More...
|
|
ServiceHandle< IDecisionSvc > | m_decSvc |
| Ref to DecisionSvc. More...
|
|
DataHeader * | m_dataHeader |
| Current DataHeader for streamed objects. More...
|
|
bool | m_connectionOpen |
| Flag to tell whether connectOutput has been called. More...
|
|
bool | m_extendProvenanceRecord |
| Flag as to whether to extend provenance via the DataHeader. More...
|
|
bool | m_extend |
| Flag to extend attribute list with stream flags from DecisionSvc. More...
|
|
std::set< std::string > | m_skippedItems |
| set of skipped item keys, because of missing CLID More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
This is the implementation of IAthenaOutputStreamTool.
Definition at line 31 of file AthenaOutputStreamTool.h.
◆ DataObjectVec
Stream out a vector of objects Must convert to DataObject, e.g.
#include "AthenaKernel/StorableConversions.h" T* obj = xxx; DataObject* dataObject = SG::asStorable(obj);
Definition at line 76 of file AthenaOutputStreamTool.h.
◆ StoreGateSvc_t
◆ TypeKeyPair
Stream out objects.
Provide vector of typeName/key pairs. If key is empty, assumes only one object and this will fail if there is more than one
Definition at line 67 of file AthenaOutputStreamTool.h.
◆ TypeKeyPairs
◆ AthenaOutputStreamTool()
AthenaOutputStreamTool::AthenaOutputStreamTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Standard AlgTool Constructor.
Constructor.
Definition at line 44 of file AthenaOutputStreamTool.cxx.
55 declareInterface<IAthenaOutputStreamTool>(
this);
57 declareProperty(
"SaveDecisions",
m_extend =
false,
"Set to true to add streaming decisions to an attributeList");
◆ ~AthenaOutputStreamTool()
AthenaOutputStreamTool::~AthenaOutputStreamTool |
( |
| ) |
|
|
virtual |
◆ commitOutput()
StatusCode AthenaOutputStreamTool::commitOutput |
( |
bool |
doCommit = false | ) |
|
|
virtual |
◆ connectOutput()
StatusCode AthenaOutputStreamTool::connectOutput |
( |
const std::string & |
outputName = "" | ) |
|
|
virtual |
Connect to the output stream Must connectOutput BEFORE streaming Only specify "outputName" if one wants to override jobOptions.
Implements IAthenaOutputStreamTool.
Definition at line 173 of file AthenaOutputStreamTool.cxx.
182 return(StatusCode::FAILURE);
188 return(StatusCode::FAILURE);
194 return(StatusCode::FAILURE);
203 if (
m_store->removeDataAndProxy(preDh).isFailure()) {
205 return(StatusCode::FAILURE);
217 std::vector<std::string> dhKeys;
219 for (
const std::string& dhKey : dhKeys) {
220 bool primaryDH =
false;
222 if (dhKey ==
"EventSelector") primaryDH =
true;
223 ATH_MSG_DEBUG(
"No transientContains DataHeader with key " << dhKey);
225 if (
m_store->retrieve(
dh, dhKey).isFailure()) {
226 ATH_MSG_DEBUG(
"Unable to retrieve the DataHeader with key " << dhKey);
229 if (
dh->isInput() || hasInputAlias (*dhProxy) || primaryDH) {
237 delete dhTransAddr; dhTransAddr = dhe.getAddress(0);
241 if (dhProxy != 0 && dhProxy->
address() != 0) {
242 delete dhTransAddr; dhTransAddr = 0;
247 else if (dhTransAddr !=
nullptr) {
249 dhTransAddr->address(),
251 delete dhTransAddr; dhTransAddr = 0;
254 for(
auto iter=
dh->beginProvenance(), iEnd=
dh->endProvenance(); iter != iEnd; ++iter) {
263 if (!attrListHandle.isValid()) {
274 newone->copyData(*attlist);
280 newone->extend(*
it,
"bool");
281 (*newone)[*
it].data<
bool>() =
m_decSvc->isEventAccepted(*
it,Gaudi::Hive::currentContext());
291 ATH_MSG_DEBUG(
"Decisions already added by a different stream");
314 if (
wh.record(std::unique_ptr<DataHeader>(
m_dataHeader)).isFailure()) {
316 return(StatusCode::FAILURE);
323 return(StatusCode::SUCCESS);
◆ connectServices() [1/2]
StatusCode AthenaOutputStreamTool::connectServices |
( |
| ) |
|
|
privatevirtual |
Do the real connection to services.
Definition at line 164 of file AthenaOutputStreamTool.cxx.
168 return(StatusCode::FAILURE);
170 return(StatusCode::SUCCESS);
◆ connectServices() [2/2]
StatusCode AthenaOutputStreamTool::connectServices |
( |
const std::string & |
dataStore, |
|
|
const std::string & |
cnvSvc, |
|
|
bool |
extendProvenenceRecord |
|
) |
| |
|
virtual |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ finalize()
StatusCode AthenaOutputStreamTool::finalize |
( |
| ) |
|
◆ finalizeOutput()
StatusCode AthenaOutputStreamTool::finalizeOutput |
( |
| ) |
|
|
virtual |
Finalize the output stream after the last commit, e.g.
in finalize
Implements IAthenaOutputStreamTool.
Definition at line 338 of file AthenaOutputStreamTool.cxx.
340 if (athConversionSvc != 0) {
343 return(StatusCode::FAILURE);
346 return(StatusCode::SUCCESS);
◆ getInputItemList()
StatusCode AthenaOutputStreamTool::getInputItemList |
( |
SG::IFolder * |
m_p2BWrittenFromTool | ) |
|
|
virtual |
Get ItemList from the OutputStreamTool (e.g. all input objects)
Implements IAthenaOutputStreamTool.
Definition at line 521 of file AthenaOutputStreamTool.cxx.
522 const std::string hltKey =
"HLTAutoKey";
525 if (
m_store->retrieve(
beg, ending).isFailure() ||
beg == ending) {
528 for ( ;
beg != ending; ++
beg) {
530 for (std::vector<DataHeaderElement>::const_iterator
it =
beg->begin(), itLast =
beg->end();
531 it != itLast; ++
it) {
533 CLID clid =
it->getPrimaryClassID();
538 if (
m_clidSvc->getTypeNameOfID(clid,
typeName).isFailure() &&
it->getKey().find(
"Aux.") == std::string::npos) {
540 ATH_MSG_WARNING(
"Skipping " <<
it->getKey() <<
" with unknown clid " << clid <<
" . Further warnings for this item are suppressed" );
546 const std::string
keyName =
it->getKey();
548 p2BWrittenFromTool->add(clid, hltKey +
"*").ignore();
550 p2BWrittenFromTool->add(clid,
"*" + hltKey).ignore();
552 p2BWrittenFromTool->add(clid,
keyName).ignore();
560 return(StatusCode::SUCCESS);
◆ initialize()
StatusCode AthenaOutputStreamTool::initialize |
( |
| ) |
|
AthAlgTool Interface method implementations:
Definition at line 63 of file AthenaOutputStreamTool.cxx.
80 const INamedInterface* parentAlg =
dynamic_cast<const INamedInterface*
>(
parent());
91 const std::string
keyword =
"[AttributeListKey=";
93 if( (
pos != std::string::npos) ) {
126 return(StatusCode::SUCCESS);
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
const InterfaceID & IAthenaOutputStreamTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ streamObjects() [1/2]
StatusCode AthenaOutputStreamTool::streamObjects |
( |
const DataObjectVec & |
dataObjects, |
|
|
const std::string & |
outputName = "" |
|
) |
| |
|
virtual |
Implements IAthenaOutputStreamTool.
Definition at line 410 of file AthenaOutputStreamTool.cxx.
413 ATH_MSG_ERROR(
"Connection NOT open. Please open a connection before streaming out objects.");
414 return(StatusCode::FAILURE);
417 std::string outputConnectionString =
outputName;
418 const std::string defaultMetaDataString =
"[OutputCollection=MetaDataHdr][PoolContainerPrefix=MetaData]";
419 if (std::string::size_type mpos = outputConnectionString.find(defaultMetaDataString); mpos!=std::string::npos) {
436 std::map<DataObject*, IOpaqueAddress*> written;
437 for (DataObject* dobj : dataObjects) {
440 ATH_MSG_DEBUG(
"Explicit request to write DataHeader: " << dobj->name() <<
" - skipping it.");
442 }
else if (written.find(dobj) != written.end()) {
444 ATH_MSG_DEBUG(
"Trying to write DataObject twice (clid/key): " << dobj->clID() <<
" " << dobj->name());
448 IOpaqueAddress* addr =
new TokenAddress(0, dobj->clID(), outputConnectionString);
451 written.insert(std::pair<DataObject*, IOpaqueAddress*>(dobj, addr));
453 ATH_MSG_ERROR(
"Could not create Rep for DataObject (clid/key):" << dobj->clID() <<
" " << dobj->name());
454 return(StatusCode::FAILURE);
459 if (
m_conversionSvc.type() ==
"AthenaPoolCnvSvc" && dataHeaderObj !=
nullptr) {
460 IOpaqueAddress* addr =
new TokenAddress(0, dataHeaderObj->clID(), outputConnectionString);
463 written.insert(std::pair<DataObject*, IOpaqueAddress*>(dataHeaderObj, addr));
466 return(StatusCode::FAILURE);
469 for (DataObject* dobj : dataObjects) {
472 if (
proxy !=
nullptr && written.find(dobj) != written.end()) {
473 IOpaqueAddress* addr(written.find(dobj)->second);
475 if (dobj->clID() != 1 || addr->par()[0] !=
"\n") {
481 if (
proxy->address() ==
nullptr) {
482 proxy->setAddress(addr);
487 ATH_MSG_ERROR(
"Could not fill Object Refs for DataObject (clid/key):" << dobj->clID() <<
" " << dobj->name());
488 return(StatusCode::FAILURE);
491 ATH_MSG_WARNING(
"Could cast DataObject " << dobj->clID() <<
" " << dobj->name());
495 if (
m_conversionSvc.type() ==
"AthenaPoolCnvSvc" && dataHeaderObj !=
nullptr) {
498 if (
proxy !=
nullptr && written.find(dataHeaderObj) != written.end()) {
499 IOpaqueAddress* addr(written.find(dataHeaderObj)->second);
501 if (dataHeaderObj->clID() != 1 || addr->par()[0] !=
"\n") {
511 return(StatusCode::FAILURE);
515 return(StatusCode::FAILURE);
518 return(StatusCode::SUCCESS);
◆ streamObjects() [2/2]
StatusCode AthenaOutputStreamTool::streamObjects |
( |
const TypeKeyPairs & |
typeKeys, |
|
|
const std::string & |
outputName = "" |
|
) |
| |
|
virtual |
Implements IAthenaOutputStreamTool.
Definition at line 349 of file AthenaOutputStreamTool.cxx.
353 ATH_MSG_ERROR(
"Connection NOT open. Please open a connection before streaming out objects.");
354 return(StatusCode::FAILURE);
362 return(StatusCode::FAILURE);
365 std::vector<DataObject*> dataObjects;
366 for (TypeKeyPairs::const_iterator
first = typeKeys.begin(), last = typeKeys.end();
368 const std::string&
type = (*first).first;
369 const std::string&
key = (*first).second;
374 return(StatusCode::FAILURE);
376 DataObject* dObj = 0;
381 dObj =
m_store->accessData(clid);
390 return(StatusCode::SUCCESS);
395 dataObjects.push_back(dObj);
398 if (dataObjects.size() == 0) {
400 return(StatusCode::SUCCESS);
403 if (!
status.isSuccess()) {
407 return(StatusCode::SUCCESS);
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_attrListKey
SG::ReadHandleKey<AthenaAttributeList> AthenaOutputStreamTool::m_attrListKey {this, "AttributeListKey", "", "optional key for AttributeList to be written as part of the DataHeader: default = \"\""} |
|
private |
◆ m_attrListWrite
std::string AthenaOutputStreamTool::m_attrListWrite {""} |
|
private |
◆ m_branchNameHint
StringProperty AthenaOutputStreamTool::m_branchNameHint { this, "SubLevelBranchName", "0", "naming hint policy for POOL branching: default = \"0\"" } |
|
private |
◆ m_clidSvc
◆ m_connectionOpen
bool AthenaOutputStreamTool::m_connectionOpen |
|
private |
◆ m_containerNameHint
StringProperty AthenaOutputStreamTool::m_containerNameHint { this, "TopLevelContainerName", "0", "naming hint policy for top level POOL container: default = \"0\""} |
|
private |
◆ m_containerPrefix
StringProperty AthenaOutputStreamTool::m_containerPrefix { this, "PoolContainerPrefix", "", "prefix for top level POOL container: default = \"CollectionTree\""} |
|
private |
◆ m_conversionSvc
ServiceHandle<IConversionSvc> AthenaOutputStreamTool::m_conversionSvc |
|
private |
◆ m_dataHeader
◆ m_dataHeaderKey
StringProperty AthenaOutputStreamTool::m_dataHeaderKey { this, "DataHeaderKey", "", "name of the data header key: defaults to tool name"} |
|
private |
◆ m_decSvc
◆ m_detStore
◆ m_evtStore
◆ m_extend
bool AthenaOutputStreamTool::m_extend |
|
private |
◆ m_extendProvenanceRecord
bool AthenaOutputStreamTool::m_extendProvenanceRecord |
|
private |
◆ m_metaDataContainerPrefix
StringProperty AthenaOutputStreamTool::m_metaDataContainerPrefix { this, "MetaDataPoolContainerPrefix", "", "prefix for top level MetaData container: default = "" (will result in \"MetaData\")"} |
|
private |
◆ m_metaDataOutputAttributes
std::string AthenaOutputStreamTool::m_metaDataOutputAttributes {""} |
|
private |
◆ m_metaDataOutputCollection
StringProperty AthenaOutputStreamTool::m_metaDataOutputCollection { this, "MetaDataOutputCollection", "", "custom container name prefix for MetaDataHeader: default = "" (will result in \"MetaDataHdr\")"} |
|
private |
◆ m_outputAttributes
std::string AthenaOutputStreamTool::m_outputAttributes {""} |
|
private |
◆ m_outputCollection
StringProperty AthenaOutputStreamTool::m_outputCollection { this, "OutputCollection", "", "custom container name prefix for DataHeader: default = "" (will result in \"POOLContainer_\")"} |
|
private |
◆ m_outputName
StringProperty AthenaOutputStreamTool::m_outputName { this, "OutputFile", "", "name of the output db name"} |
|
private |
◆ m_processTag
StringProperty AthenaOutputStreamTool::m_processTag { this, "ProcessingTag", "", "tag of processing stage: defaults to SG key of DataHeader (Stream name)"} |
|
private |
◆ m_skippedItems
std::set<std::string> AthenaOutputStreamTool::m_skippedItems |
|
private |
◆ m_store
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
bool starts_with(const char *s, const char *prefix)
Test whether one null-terminated byte string starts with another.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const std::string & key() const
Return the StoreGate ID for the referenced object.
virtual void setOwner(IDataHandleHolder *o)=0
This class provides a Generic Transient Address for POOL tokens.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
virtual IOpaqueAddress * address() const override final
Retrieve IOpaqueAddress.
::StatusCode StatusCode
StatusCode definition for legacy code.
Default, invalid implementation of ClassID_traits.
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
uint32_t CLID
The Class ID type.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode disconnectOutput(const std::string &output)
Disconnect output files from the service.
std::string keyword(const std::string &classname)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>