| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
DataObject Class Reference

A DataObject is the base class of any identifiable object on any data store. More...

`#include <GaudiKernel/DataObject.h>`

Inheritance diagram for DataObject:
[legend]
Collaboration diagram for DataObject:
[legend]

## Public Member Functions
| DataObject ()
| Standard Constructor. More...
| DataObject (const DataObject &rhs)
| Copy Constructor. More...
DataObject & | operator= (const DataObject &rhs)
| Assignment Operator. More...
| DataObject (DataObject &&rhs)
| Move Constructor. More...
DataObject & | operator= (DataObject &&rhs)
| Move Assignment Operator. More...
virtual | ~DataObject ()
| Standard Destructor. More...
virtual unsigned long | addRef ()
| Add reference to object. More...
virtual unsigned long | release ()
| release reference to object More...
virtual const CLID & | clID () const
| Retrieve reference to class definition structure. More...
const std::string & | name () const
| Retreive DataObject name. It is the name when registered in the store. More...
virtual StatusCode | update ()
| Provide empty placeholder for internal object reconfiguration callback. More...

## Static Public Member Functions
static const CLID & | classID ()
| Retrieve reference to class definition structure (static access) More...

## Private Attributes
unsigned long | m_refCount = 0
| Reference count. More...
unsigned char | m_version = 0
| Version number. More...
IRegistry * | m_pRegistry = nullptr
| Pointer to the Registry Object. More...
std::unique_ptr< LinkManager > | m_pLinkMgr
| Store of symbolic links. More...

## inline code of class DataObject
void | setRegistry (IRegistry *pRegistry)
| Set pointer to Registry. More...
IRegistry * | registry () const
| Get pointer to Registry. More...
LinkManager * | linkMgr () const
| Retrieve Link manager. More...
unsigned char | version () const
| Retrieve version number of this object representation. More...
void | setVersion (unsigned char vsn)
| Set version number of this object representation. More...
unsigned long | refCount () const
| Return the refcount. More...
virtual std::ostream & | fillStream (std::ostream &s) const
| Fill the output stream (ASCII) More...
std::ostream & | operator<< (std::ostream &s, const DataObject &obj)
| Output operator (ASCII) More...

## Detailed Description

A DataObject is the base class of any identifiable object on any data store.

The base class supplies the implementation of data streaming.

Author
  M.Frank

Definition at line 30 of file DataObject.h.

## Constructor & Destructor Documentation

## ◆ DataObject() [1/3]

DataObject::DataObject | ( |  | ) |

Standard Constructor.

Definition at line 13 of file DataObject.cpp.

13 : m_pLinkMgr{LinkManager::newInstance()} {}
LinkManager::newInstance
static LinkManager * newInstance()
Static instantiation.
Definition: LinkManager.cpp:26
DataObject::m_pLinkMgr
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
Definition: DataObject.h:39

## ◆ DataObject() [2/3]

DataObject::DataObject | ( | const DataObject & | rhs | ) |

Copy Constructor.

Definition at line 16 of file DataObject.cpp.

16 : m_version{rhs.m_version}, m_pLinkMgr{LinkManager::newInstance()} {}
DataObject::m_version
unsigned char m_version
Version number.
Definition: DataObject.h:35
LinkManager::newInstance
static LinkManager * newInstance()
Static instantiation.
Definition: LinkManager.cpp:26
DataObject::m_pLinkMgr
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
Definition: DataObject.h:39

## ◆ DataObject() [3/3]

DataObject::DataObject | ( | DataObject && | rhs | ) |

Move Constructor.

Definition at line 26 of file DataObject.cpp.

27 : m_version{std::move( rhs.m_version )}, m_pLinkMgr{std::move( rhs.m_pLinkMgr )} {}
DataObject::m_version
unsigned char m_version
Version number.
Definition: DataObject.h:35
std::move
T move(T... args)
DataObject::m_pLinkMgr
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
Definition: DataObject.h:39

## ◆ ~DataObject()

DataObject::~DataObject | ( |  | ) |
| virtual

Standard Destructor.

Definition at line 37 of file DataObject.cpp.

37 {
38 // Issue a warning if the object is being deleted and the reference
39 // count is non-zero.
40 if ( m_refCount > 0 ) {
41 // Insert warning here
42 }
43 }
DataObject::m_refCount
unsigned long m_refCount
Reference count.
Definition: DataObject.h:33

## Member Function Documentation

## ◆ addRef()

unsigned long DataObject::addRef | ( |  | ) |
| virtual

Add reference to object.

Definition at line 53 of file DataObject.cpp.

53 { return ++m_refCount; }
DataObject::m_refCount
unsigned long m_refCount
Reference count.
Definition: DataObject.h:33

## ◆ classID()

const CLID & DataObject::classID | ( |  | ) |
| static

Retrieve reference to class definition structure (static access)

Retrieve Pointer to class definition structure.

Definition at line 59 of file DataObject.cpp.

59 { return CLID_DataObject; }

## ◆ clID()

const CLID & DataObject::clID | ( |  | ) | const
| virtual

Retrieve reference to class definition structure.

Retrieve Pointer to class definition structure.

Reimplemented in NTuple::File, NTuple::Directory, KeyedContainer< DATATYPE, MAPPING >, NTuple::RowWiseTuple, NTuple::ColumnWiseTuple, SharedObjectsContainer< TYPE >, ObjectVector< TYPE >, ObjectList< TYPE >, AlgorithmHistory, JobHistory, AlgToolHistory, Gaudi::Histogram1D, Gaudi::Histogram3D, Gaudi::Histogram2D, DataHistory, Gaudi::Profile1D, Gaudi::Profile2D, ServiceHistory, and HistoryObj.

Definition at line 56 of file DataObject.cpp.

56 { return CLID_DataObject; }

## ◆ fillStream()

virtual std::ostream& DataObject::fillStream | ( | std::ostream & | s | ) | const
| inline virtual

Fill the output stream (ASCII)

Reimplemented in ObjectVector< TYPE >, and ObjectList< TYPE >.

Definition at line 82 of file DataObject.h.

82 {
83 s << "DataObject at " << std::hex << this;
84 return s;
85 }
gaudirun.s
string s
Definition: gaudirun.py:316
std::hex
T hex(T... args)

## ◆ linkMgr()

LinkManager* DataObject::linkMgr | ( |  | ) | const
| inline

Retrieve Link manager.

Definition at line 74 of file DataObject.h.

74 { return m_pLinkMgr.get(); }
std::unique_ptr::get
T get(T... args)
DataObject::m_pLinkMgr
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
Definition: DataObject.h:39

## ◆ name()

const std::string & DataObject::name | ( |  | ) | const

Retreive DataObject name. It is the name when registered in the store.

Retrieve DataObject name. It is the name when included in the store.

Definition at line 62 of file DataObject.cpp.

62 { return m_pRegistry ? m_pRegistry->name() : _sDataObjectCppNotRegistered; }
IRegistry::name
virtual const name_type & name() const =0
Name of the directory (or key)
DataObject::m_pRegistry
IRegistry * m_pRegistry
Pointer to the Registry Object.
Definition: DataObject.h:37

## ◆ operator=() [1/2]

DataObject & DataObject::operator= | ( | const DataObject & | rhs | ) |

Assignment Operator.

Definition at line 19 of file DataObject.cpp.

19 {
20 m_version = rhs.m_version;
21 m_pLinkMgr.reset( LinkManager::newInstance() );
22 return *this;
23 }
DataObject::m_version
unsigned char m_version
Version number.
Definition: DataObject.h:35
LinkManager::newInstance
static LinkManager * newInstance()
Static instantiation.
Definition: LinkManager.cpp:26
std::unique_ptr::reset
T reset(T... args)
DataObject::m_pLinkMgr
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
Definition: DataObject.h:39

## ◆ operator=() [2/2]

DataObject & DataObject::operator= | ( | DataObject && | rhs | ) |

Move Assignment Operator.

Assignment Operator.

Definition at line 30 of file DataObject.cpp.

30 {
31 m_version = std::move( rhs.m_version );
32 m_pLinkMgr = std::move( rhs.m_pLinkMgr );
33 return *this;
34 }
DataObject::m_version
unsigned char m_version
Version number.
Definition: DataObject.h:35
std::move
T move(T... args)
DataObject::m_pLinkMgr
std::unique_ptr< LinkManager > m_pLinkMgr
Store of symbolic links.
Definition: DataObject.h:39

## ◆ refCount()

unsigned long DataObject::refCount | ( |  | ) | const
| inline

Return the refcount.

Definition at line 80 of file DataObject.h.

80 { return m_refCount; }
DataObject::m_refCount
unsigned long m_refCount
Reference count.
Definition: DataObject.h:33

## ◆ registry()

IRegistry* DataObject::registry | ( |  | ) | const
| inline

Get pointer to Registry.

Definition at line 72 of file DataObject.h.

72 { return m_pRegistry; }
DataObject::m_pRegistry
IRegistry * m_pRegistry
Pointer to the Registry Object.
Definition: DataObject.h:37

## ◆ release()

unsigned long DataObject::release | ( |  | ) |
| virtual

release reference to object

Decrease reference count.

Definition at line 46 of file DataObject.cpp.

46 {
47 unsigned long cnt = --m_refCount;
48 if ( 0 == cnt ) delete this;
49 return cnt;
50 }
DataObject::m_refCount
unsigned long m_refCount
Reference count.
Definition: DataObject.h:33

## ◆ setRegistry()

void DataObject::setRegistry | ( | IRegistry * | pRegistry | ) |
| inline

Set pointer to Registry.

Definition at line 70 of file DataObject.h.

70 { m_pRegistry = pRegistry; }
DataObject::m_pRegistry
IRegistry * m_pRegistry
Pointer to the Registry Object.
Definition: DataObject.h:37

## ◆ setVersion()

void DataObject::setVersion | ( | unsigned char | vsn | ) |
| inline

Set version number of this object representation.

Definition at line 78 of file DataObject.h.

78 { m_version = vsn; }
DataObject::m_version
unsigned char m_version
Version number.
Definition: DataObject.h:35

## ◆ update()

StatusCode DataObject::update | ( |  | ) |
| virtual

Provide empty placeholder for internal object reconfiguration callback.

Reimplemented in KeyedContainer< DATATYPE, MAPPING >.

Definition at line 65 of file DataObject.cpp.

65 { return StatusCode::SUCCESS; }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85

## ◆ version()

unsigned char DataObject::version | ( |  | ) | const
| inline

Retrieve version number of this object representation.

Definition at line 76 of file DataObject.h.

76 { return m_version; }
DataObject::m_version
unsigned char m_version
Version number.
Definition: DataObject.h:35

## Friends And Related Function Documentation

## ◆ operator<<

std::ostream& operator<< | ( | std::ostream & | s,
|  | const DataObject & | obj
| ) |  |
| friend

Output operator (ASCII)

Definition at line 87 of file DataObject.h.

87 { return obj.fillStream( s ); }
DataObject::fillStream
virtual std::ostream & fillStream(std::ostream &s) const
Fill the output stream (ASCII)
Definition: DataObject.h:82
gaudirun.s
string s
Definition: gaudirun.py:316

## Member Data Documentation

## ◆ m_pLinkMgr

std::unique_ptr<LinkManager> DataObject::m_pLinkMgr
| private

Store of symbolic links.

Definition at line 39 of file DataObject.h.

## ◆ m_pRegistry

IRegistry* DataObject::m_pRegistry = nullptr
| private

Pointer to the Registry Object.

Definition at line 37 of file DataObject.h.

## ◆ m_refCount

unsigned long DataObject::m_refCount = 0
| private

Reference count.

Definition at line 33 of file DataObject.h.

## ◆ m_version

unsigned char DataObject::m_version = 0
| private

Version number.

Definition at line 35 of file DataObject.h.

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

- GaudiKernel/GaudiKernel/DataObject.h
- GaudiKernel/src/Lib/DataObject.cpp