CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DataElement.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_DATAELEMENT_H
2 #define INCLUDE_ORA_DATAELEMENT_H
3 
4 // externals
5 #include "Reflex/Type.h"
6 
7 namespace ora {
8 
9  // class describing an elementary part of data to be stored
10  class DataElement {
11  public:
12  DataElement();
13  DataElement( size_t declaringScopeOffset, Reflex::OffsetFunction offsetFunction );
14  virtual ~DataElement();
15 
16  DataElement& addChild( size_t declaringScopeOffset, Reflex::OffsetFunction offsetFunction );
17 
18  size_t offset( const void* topLevelAddress ) const;
19  void* address( const void* topLevelAddress ) const;
20  size_t declaringScopeOffset() const;
21 
22  void clear();
23 
24  private:
25 
27  std::vector<DataElement*> m_children;
29  Reflex::OffsetFunction m_offsetFunction;
30  };
31 
32 }
33 
34 #endif
35 
void * address(const void *topLevelAddress) const
Definition: DataElement.cc:48
DataElement & addChild(size_t declaringScopeOffset, Reflex::OffsetFunction offsetFunction)
Definition: DataElement.cc:26
Reflex::OffsetFunction m_offsetFunction
Definition: DataElement.h:29
virtual ~DataElement()
Definition: DataElement.cc:18
size_t declaringScopeOffset() const
Definition: DataElement.cc:53
size_t offset(const void *topLevelAddress) const
Definition: DataElement.cc:34
std::vector< DataElement * > m_children
Definition: DataElement.h:27
size_t m_declaringScopeOffset
Definition: DataElement.h:28
const DataElement * m_parent
Definition: DataElement.h:26