CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
UniqueRefStreamer.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_UNIQUEREFSTREAMER_H
2 #define INCLUDE_ORA_UNIQUEREFSTREAMER_H
3 
4 #include "IRelationalStreamer.h"
5 #include "DataElement.h"
6 #include "RelationalBuffer.h"
7 //
8 #include <memory>
9 #include <boost/shared_ptr.hpp>
10 // externals
11 #include "Reflex/Type.h"
12 
13 
14 namespace ora {
15 
16  class MappingElement;
17  class ContainerSchema;
18  class RelationalRefLoader;
19  class DependentClassReader;
20 
21  std::string uniqueRefNullLabel();
22 
24 
25  public:
26 
27  UniqueRefWriter( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
28 
29  virtual ~UniqueRefWriter();
30 
31  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
32 
33  void setRecordId( const std::vector<int>& identity );
34 
36  void write( int oid, const void* data );
37 
38  private:
39 
47  };
48 
50 
51  public:
52 
53  UniqueRefUpdater( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
54 
55  virtual ~UniqueRefUpdater();
56 
57  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
58 
59  void setRecordId( const std::vector<int>& identity );
60 
62  void update( int oid,
63  const void* data );
64 
65  private:
66 
68 
69  };
70 
72 
73  public:
74 
75  UniqueRefReader( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
76 
77  virtual ~UniqueRefReader();
78 
79  bool build( DataElement& offset, IRelationalData& relationalData);
80 
81  void select( int oid );
82 
83  void setRecordId( const std::vector<int>& identity );
84 
86  void read( void* destination );
87 
88  void clear();
89 
90  private:
91 
98  std::vector<boost::shared_ptr<RelationalRefLoader> > m_loaders;
99  };
100 
102  {
103  public:
104  UniqueRefStreamer( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
105 
107 
109 
111 
113 
114  private:
118  };
119 
120 }
121 #endif
122 
123 
124 
IRelationalReader * newReader()
UniqueRefUpdater(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
RelationalBuffer * m_operationBuffer
void write(int oid, const void *data)
Writes a data element.
std::vector< boost::shared_ptr< RelationalRefLoader > > m_loaders
bool build(DataElement &offset, IRelationalData &relationalData)
DataElement * m_dataElement
IRelationalUpdater * newUpdater()
void setRecordId(const std::vector< int > &identity)
MappingElement & m_mapping
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
void read(void *destination)
Reads a data element.
UniqueRefStreamer(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
ContainerSchema & m_schema
void setRecordId(const std::vector< int > &identity)
UniqueRefWriter(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
UniqueRefWriter m_writer
void update(int oid, const void *data)
Updates a data element.
ContainerSchema & m_schema
IRelationalData * m_relationalData
unsigned int offset(bool)
ContainerSchema & m_schema
IRelationalData * m_relationalData
UniqueRefReader(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
DataElement * m_dataElement
void setRecordId(const std::vector< int > &identity)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
MappingElement & m_mappingElement
IRelationalWriter * newWriter()
MappingElement & m_mappingElement
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
std::string uniqueRefNullLabel()