CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
NamedRefStreamer.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_NAMEDREFSTREAMER_H
2 #define INCLUDE_ORA_NAMEDREFSTREAMER_H
3 
4 #include "IRelationalStreamer.h"
5 #include "DataElement.h"
6 //
7 #include <memory>
8 #include <boost/shared_ptr.hpp>
9 // externals
10 #include "Reflex/Type.h"
11 
12 
13 namespace ora {
14 
15  class MappingElement;
16  class ContainerSchema;
17 
18  std::string namedRefNullLabel();
19 
21 
22  public:
23 
24  explicit NamedReferenceStreamerBase( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& schema );
25 
27 
28  bool buildDataElement( DataElement& dataElement, IRelationalData& relationalData );
29 
30  void bindDataForUpdate( const void* data );
31 
32  void bindDataForRead( void* data );
33 
34  private:
35 
45  };
46 
48 
49  public:
50 
51  NamedRefWriter( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
52 
53  virtual ~NamedRefWriter();
54 
55  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
56 
57  void setRecordId( const std::vector<int>& identity );
58 
60  void write( int oid, const void* data );
61 
62  };
63 
65 
66  public:
67 
68  NamedRefUpdater( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
69 
70  virtual ~NamedRefUpdater();
71 
72  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
73 
74  void setRecordId( const std::vector<int>& identity );
75 
77  void update( int oid,
78  const void* data );
79 
80  };
81 
83 
84  public:
85 
86  NamedRefReader( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
87 
88  virtual ~NamedRefReader();
89 
90  bool build( DataElement& offset, IRelationalData& relationalData);
91 
92  void select( int oid );
93 
94  void setRecordId( const std::vector<int>& identity );
95 
97  void read( void* destination );
98 
99  void clear();
100 
101  };
102 
104  {
105  public:
106  NamedRefStreamer( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
107 
109 
111 
113 
115 
116  private:
120  };
121 
122 }
123 #endif
124 
125 
126 
void update(int oid, const void *data)
Updates a data element.
ContainerSchema & m_schema
std::string namedRefNullLabel()
void read(void *destination)
Reads a data element.
void bindDataForUpdate(const void *data)
void setRecordId(const std::vector< int > &identity)
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
IRelationalUpdater * newUpdater()
NamedRefWriter(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
bool build(DataElement &offset, IRelationalData &relationalData)
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
NamedRefStreamer(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
unsigned int offset(bool)
NamedReferenceStreamerBase(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &schema)
IRelationalWriter * newWriter()
void write(int oid, const void *data)
Writes a data element.
IRelationalReader * newReader()
bool buildDataElement(DataElement &dataElement, IRelationalData &relationalData)
void setRecordId(const std::vector< int > &identity)
NamedRefUpdater(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
NamedRefReader(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
void setRecordId(const std::vector< int > &identity)
MappingElement & m_mapping