DataObjectHandleBase Class Reference

DataObjectHandleBase GaudiKernel/DataObjectHandleBase.h. More...

#include <GaudiKernel/DataObjectHandleBase.h>

Inheritance diagram for DataObjectHandleBase:
Collaboration diagram for DataObjectHandleBase:

Public Member Functions

 DataObjectHandleBase ()
 
 DataObjectHandleBase (const DataObjID &k, Gaudi::DataHandle::Mode a, IDataHandleHolder *o)
 
 DataObjectHandleBase (const std::string &k, Gaudi::DataHandle::Mode a, IDataHandleHolder *o)
 
virtual ~DataObjectHandleBase ()
 
const std::string toString () const
 
const std::string pythonRepr () const override
 
void fromString (const std::string &s)
 
bool isOptional () const
 Check if the data object declared is optional for the algorithm. More...
 
void setOptional (bool optional=true)
 
const std::vector< std::string > & alternativeDataProductNames () const
 
void setAlternativeDataProductNames (const std::vector< std::string > &alternativeAddresses)
 
bool initialized () const
 
bool wasRead () const
 
bool wasWritten () const
 
bool isValid () const
 
- Public Member Functions inherited from Gaudi::DataHandle
 DataHandle ()
 
 DataHandle (const DataObjID &k, Mode a=Reader, IDataHandleHolder *owner=0)
 
virtual ~DataHandle ()
 
virtual void setOwner (IDataHandleHolder *o)
 
virtual IDataHandleHolderowner () const
 
virtual Mode mode () const
 
virtual void setKey (const DataObjID &key)
 
virtual void updateKey (const std::string &key)
 
virtual const std::stringobjKey () const
 
virtual const DataObjIDfullKey () const
 
virtual void reset (bool)
 
virtual StatusCode commit ()
 

Protected Member Functions

void setRead (bool wasRead=true)
 
void setWritten (bool wasWritten=true)
 
void init ()
 
- Protected Member Functions inherited from Gaudi::DataHandle
virtual void setMode (const Mode &mode)
 

Protected Attributes

SmartIF< IDataProviderSvcm_EDS
 
SmartIF< IMessageSvcm_MS
 
bool m_init
 
bool m_goodType
 
bool m_optional
 
bool m_wasRead
 
bool m_wasWritten
 
std::vector< std::stringm_altNames
 
- Protected Attributes inherited from Gaudi::DataHandle
DataObjID m_key
 
IDataHandleHolderm_owner
 

Friends

std::ostreamoperator<< (std::ostream &str, const DataObjectHandleBase &d)
 

Additional Inherited Members

- Public Types inherited from Gaudi::DataHandle
enum  Mode { Reader = 1<<2, Writer = 1<<4, Updater = Reader | Writer }
 

Detailed Description

DataObjectHandleBase GaudiKernel/DataObjectHandleBase.h.

Base class for handles to Data Objects in the Event Store, to simplify access via Properties.

provides accessors to AlternateNames, and Optional parameters

Author
Charles Leggett
Date
2015-09-01

Definition at line 24 of file DataObjectHandleBase.h.

Constructor & Destructor Documentation

DataObjectHandleBase::DataObjectHandleBase ( )
DataObjectHandleBase::DataObjectHandleBase ( const DataObjID k,
Gaudi::DataHandle::Mode  a,
IDataHandleHolder o 
)

Definition at line 20 of file DataObjectHandleBase.cpp.

DataObjectHandleBase::DataObjectHandleBase ( const std::string k,
Gaudi::DataHandle::Mode  a,
IDataHandleHolder o 
)

Definition at line 28 of file DataObjectHandleBase.cpp.

30  :
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:45
virtual DataObjectHandleBase::~DataObjectHandleBase ( )
inlinevirtual

Definition at line 34 of file DataObjectHandleBase.h.

34 {}

Member Function Documentation

const std::vector<std::string>& DataObjectHandleBase::alternativeDataProductNames ( ) const
inline

Definition at line 48 of file DataObjectHandleBase.h.

48  {
49  return m_altNames; }
std::vector< std::string > m_altNames
void DataObjectHandleBase::fromString ( const std::string s)

Definition at line 54 of file DataObjectHandleBase.cpp.

54  {
55  Gaudi::Parsers::parse(*this,s).ignore();
56 }
StatusCode parse(GaudiUtils::HashMap< K, V > &result, const std::string &input)
Basic parser for the types of HashMap used in DODBasicMapper.
void ignore() const
Definition: StatusCode.h:106
void DataObjectHandleBase::init ( )
protected

Definition at line 61 of file DataObjectHandleBase.cpp.

61  {
62 
63  if (m_init) return;
64 
65  if (m_owner == 0) return;
66 
67  setRead(false);
68  setWritten(false);
69 
70  Algorithm* algorithm = dynamic_cast<Algorithm*>( m_owner );
71  if (algorithm != 0) {
72  // Fetch the event Data Service from the algorithm
73  m_EDS = algorithm->evtSvc();
74  m_MS = algorithm->msgSvc();
75  } else {
76  AlgTool* tool = dynamic_cast<AlgTool*>( owner() );
77  if (tool != 0) {
78  m_EDS = tool->evtSvc();
79  m_MS = tool->msgSvc();
80  } else {
81  throw GaudiException( "owner is not an AlgTool or Algorithm" ,
82  "Invalid Cast", StatusCode::FAILURE) ;
83  }
84  }
85 
86  m_init = true;
87 
88 }
void setWritten(bool wasWritten=true)
Define general base for Gaudi exception.
SmartIF< IDataProviderSvc > m_EDS
void setRead(bool wasRead=true)
IDataHandleHolder * m_owner
Definition: DataHandle.h:64
IDataProviderSvc * evtSvc() const
accessor to event service service
Definition: AlgTool.cpp:93
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:78
SmartIF< IDataProviderSvc > & evtSvc() const
shortcut for method eventSvc
Definition: Algorithm.h:276
Base class from which all the concrete tool classes should be derived.
Definition: AlgTool.h:46
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
SmartIF< IMessageSvc > m_MS
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:45
bool DataObjectHandleBase::initialized ( ) const
inline

Definition at line 52 of file DataObjectHandleBase.h.

52 { return m_init; }
bool DataObjectHandleBase::isOptional ( ) const
inline

Check if the data object declared is optional for the algorithm.

Definition at line 45 of file DataObjectHandleBase.h.

bool DataObjectHandleBase::isValid ( ) const

Definition at line 93 of file DataObjectHandleBase.cpp.

93  {
94 
95  return ( fullKey() != INVALID_DATAOBJID );
96 
97 }
virtual const DataObjID & fullKey() const
Definition: DataHandle.h:53
const DataObjID INVALID_DATAOBJID
const std::string DataObjectHandleBase::pythonRepr ( ) const
overridevirtual

Reimplemented from Gaudi::DataHandle.

Definition at line 48 of file DataObjectHandleBase.cpp.

48  {
49  return "DataObjectHandleBase(\"" + toString() + "\")";
50 }
const std::string toString() const
void DataObjectHandleBase::setAlternativeDataProductNames ( const std::vector< std::string > &  alternativeAddresses)
inline

Definition at line 50 of file DataObjectHandleBase.h.

50 { m_altNames = alternativeAddresses; }
std::vector< std::string > m_altNames
void DataObjectHandleBase::setOptional ( bool  optional = true)
inline

Definition at line 46 of file DataObjectHandleBase.h.

46 { m_optional = optional; }
void DataObjectHandleBase::setRead ( bool  wasRead = true)
inlineprotected

Definition at line 59 of file DataObjectHandleBase.h.

void DataObjectHandleBase::setWritten ( bool  wasWritten = true)
inlineprotected

Definition at line 60 of file DataObjectHandleBase.h.

const std::string DataObjectHandleBase::toString ( ) const

Definition at line 36 of file DataObjectHandleBase.cpp.

36  {
38  ost << m_key << "|" << mode() << "|" << isOptional() << "|";
39  for (auto &a : m_altNames) {
40  ost << a << "&";
41  }
42  // ost << ")";
43  return ost.str();
44 }
virtual Mode mode() const
Definition: DataHandle.h:47
DataObjID m_key
Definition: DataHandle.h:63
std::vector< std::string > m_altNames
bool isOptional() const
Check if the data object declared is optional for the algorithm.
bool DataObjectHandleBase::wasRead ( ) const
inline

Definition at line 53 of file DataObjectHandleBase.h.

53 { return m_wasRead; }
bool DataObjectHandleBase::wasWritten ( ) const
inline

Definition at line 54 of file DataObjectHandleBase.h.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream str,
const DataObjectHandleBase d 
)
friend

Definition at line 102 of file DataObjectHandleBase.cpp.

102  {
103 
104  str << d.fullKey() << " m: " << d.mode();
105  if (d.owner() != 0) {
106  str << " o: " << d.owner()->name();
107  }
108 
109  str << " opt: " << d.isOptional();
110 
111  if (d.alternativeDataProductNames().size() != 0) {
112  str << " alt: [";
113  for ( auto &n : d.alternativeDataProductNames()) {
114  str << n << ",";
115  }
116  str << "]";
117  }
118 
119  return str;
120 }
virtual Mode mode() const
Definition: DataHandle.h:47
virtual const DataObjID & fullKey() const
Definition: DataHandle.h:53
T size(T...args)
bool isOptional() const
Check if the data object declared is optional for the algorithm.
const std::vector< std::string > & alternativeDataProductNames() const
virtual const std::string & name() const =0
Retrieve the name of the instance.
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:45

Member Data Documentation

std::vector<std::string> DataObjectHandleBase::m_altNames
protected

Definition at line 74 of file DataObjectHandleBase.h.

SmartIF<IDataProviderSvc> DataObjectHandleBase::m_EDS
protected

Definition at line 66 of file DataObjectHandleBase.h.

bool DataObjectHandleBase::m_goodType
protected

Definition at line 70 of file DataObjectHandleBase.h.

bool DataObjectHandleBase::m_init
protected

Definition at line 69 of file DataObjectHandleBase.h.

SmartIF<IMessageSvc> DataObjectHandleBase::m_MS
protected

Definition at line 67 of file DataObjectHandleBase.h.

bool DataObjectHandleBase::m_optional
protected

Definition at line 71 of file DataObjectHandleBase.h.

bool DataObjectHandleBase::m_wasRead
protected

Definition at line 72 of file DataObjectHandleBase.h.

bool DataObjectHandleBase::m_wasWritten
protected

Definition at line 72 of file DataObjectHandleBase.h.


The documentation for this class was generated from the following files: