CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OraReferenceStreamer.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_ORAREFERENCESTREAMER_H
2 #define INCLUDE_ORA_ORAREFERENCESTREAMER_H
3 
4 #include "IRelationalStreamer.h"
5 // externals
6 #include "Reflex/Type.h"
7 
8 namespace ora {
9 
10  class MappingElement;
11  class ContainerSchema;
12 
14 
15  public:
16 
17  explicit OraReferenceStreamerBase( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& schema );
18 
19  virtual ~OraReferenceStreamerBase();
20 
21  bool buildDataElement( DataElement& dataElement, IRelationalData& relationalData );
22 
23  void bindDataForUpdate( const void* data );
24 
25  void bindDataForRead( void* data );
26 
27  private:
28 
30  const std::vector<std::string>& m_columns;
36  };
37 
39  public:
40  explicit OraReferenceWriter( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& schema );
41 
42  virtual ~OraReferenceWriter();
43 
44  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
45 
46  void setRecordId( const std::vector<int>& identity );
47 
48  void write( int oid, const void* data );
49 
50  };
51 
52 
54  public:
55  explicit OraReferenceUpdater( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& schema );
56 
57  virtual ~OraReferenceUpdater();
58 
59  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
60 
61  void setRecordId( const std::vector<int>& identity );
62 
63  void update( int oid, const void* data );
64 
65  };
66 
68  public:
69  explicit OraReferenceReader( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& schema );
70 
71  virtual ~OraReferenceReader();
72 
73  bool build(DataElement& dataElement, IRelationalData& relationalData );
74 
75  void select( int oid );
76 
77  void setRecordId( const std::vector<int>& identity );
78 
79  void read( void* data );
80 
81  void clear();
82 
83  };
84 
86  {
87  public:
88  explicit OraReferenceStreamer( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& schema );
89 
91 
93 
95 
97 
98  private:
102  };
103 
104 }
105 
106 
107 #endif
108 
109 
110 
bool build(DataElement &dataElement, IRelationalData &relationalData)
OraReferenceUpdater(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &schema)
void write(int oid, const void *data)
Writes a data element.
IRelationalWriter * newWriter()
OraReferenceStreamer(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &schema)
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
void setRecordId(const std::vector< int > &identity)
OraReferenceStreamerBase(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &schema)
bool buildDataElement(DataElement &dataElement, IRelationalData &relationalData)
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
void read(void *data)
Reads a data element.
void setRecordId(const std::vector< int > &identity)
void update(int oid, const void *data)
Updates a data element.
OraReferenceReader(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &schema)
void setRecordId(const std::vector< int > &identity)
const std::vector< std::string > & m_columns
void bindDataForUpdate(const void *data)
OraReferenceWriter(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &schema)
IRelationalUpdater * newUpdater()
IRelationalReader * newReader()