16#include <boost/io/ios_state.hpp>
20static std::string _sDataObjectCppNotRegistered(
"NotRegistered" );
58 if ( 0 == cnt )
delete this;
78 boost::io::ios_flags_saver _{ s };
79 return s <<
"DataObject at " << std::hex <<
this;
85static std::vector<DataObject**>& objectStack() {
86 static std::unique_ptr<std::vector<DataObject**>> s_current{
new std::vector<DataObject**>() };
93 static std::vector<DataObject**>&
c = objectStack();
94 c.push_back( pobjAddr );
95 s_currObj = pobjAddr ? pobjAddr : &s_objPtr;
99 static std::vector<DataObject**>&
c = objectStack();
101 s_currObj =
c.back();
104 s_currObj = &s_objPtr;
unsigned int CLID
Class ID definition.
A DataObject is the base class of any identifiable object on any data store.
virtual unsigned long addRef()
Add reference to object.
std::atomic< unsigned long > m_refCount
Reference count.
DataObject & operator=(const DataObject &rhs)
Assignment Operator.
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
IRegistry * m_pRegistry
Pointer to the Registry Object.
virtual std::ostream & fillStream(std::ostream &s) const
Fill the output stream (ASCII)
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
virtual const CLID & clID() const
Retrieve reference to class definition structure.
virtual StatusCode update()
Provide empty placeholder for internal object reconfiguration callback.
DataObject()
Standard Constructor.
virtual unsigned long release()
release reference to object
static const CLID & classID()
Retrieve reference to class definition structure (static access)
unsigned char m_version
Version number.
virtual ~DataObject()
Standard Destructor.
A LinkManager is the object aggregated into a DataObject, which is responsible for the handling of no...
This class is used for returning status codes from appropriate routines.
constexpr static const auto SUCCESS
GAUDI_API void pushCurrentDataObject(DataObject **pobjAddr)
GAUDI_API void popCurrentDataObject()
GAUDI_API DataObject * getCurrentDataObject()