CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
InlineCArrayStreamer.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_INLINECARRAYSTREAMER_H
2 #define INCLUDE_ORA_INLINECARRAYSTREAMER_H
3 
4 #include "IRelationalStreamer.h"
6 // externals
7 #include "Reflex/Type.h"
8 
9 namespace ora {
10 
11  class MappingElement;
12  class ContainerSchema;
13  class DataElement;
14 
16 
17  public:
18 
19  InlineCArrayStreamerBase( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
20 
21  virtual ~InlineCArrayStreamerBase();
22 
23  bool buildDataElement( DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer* operationBuffer );
24 
25  virtual void processArrayElement( DataElement& arrayElementOffset, IRelationalData& relationalData, MappingElement& arrayElementMapping, RelationalBuffer* operationBuffer ) = 0;
26 
27  protected:
28 
32  private:
33 
35  };
36 
38  public:
39  InlineCArrayWriter( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
40 
41  virtual ~InlineCArrayWriter();
42 
43  void processArrayElement( DataElement& arrayElementOffset, IRelationalData& relationalData, MappingElement& arrayElementMapping, RelationalBuffer* operationBuffer );
44 
45  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
46 
47  void setRecordId( const std::vector<int>& identity );
48 
49  void write( int oid, const void* data );
50 
51  private:
52  std::vector<IRelationalWriter*> m_writers;
53  };
54 
55 
57  public:
58  InlineCArrayUpdater( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
59 
60  virtual ~InlineCArrayUpdater();
61 
62  void processArrayElement( DataElement& arrayElementOffset, IRelationalData& relationalData, MappingElement& arrayElementMapping, RelationalBuffer* operationBuffer );
63 
64  bool build(DataElement& dataElement, IRelationalData& relationalData, RelationalBuffer& operationBuffer);
65 
66  void setRecordId( const std::vector<int>& identity );
67 
68  void update( int oid, const void* data );
69  private:
70  std::vector<IRelationalUpdater*> m_updaters;
71 
72  };
73 
75  public:
76  InlineCArrayReader( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
77 
78  virtual ~InlineCArrayReader();
79 
80  void processArrayElement( DataElement& arrayElementOffset, IRelationalData& relationalData, MappingElement& arrayElementMapping, RelationalBuffer* operationBuffer );
81 
82  bool build(DataElement& dataElement, IRelationalData& relationalData );
83 
84  void select( int oid );
85 
86  void setRecordId( const std::vector<int>& identity );
87 
88  void read( void* data );
89 
90  void clear();
91 
92  private:
93  std::vector<IRelationalReader*> m_readers;
94  };
95 
97  {
98  public:
99  InlineCArrayStreamer( const Reflex::Type& objectType, MappingElement& mapping, ContainerSchema& contSchema );
100 
102 
104 
106 
108 
109  private:
113 
114  };
115 
116 }
117 
118 
119 #endif
120 
121 
122 
std::vector< IRelationalReader * > m_readers
std::vector< IRelationalUpdater * > m_updaters
void setRecordId(const std::vector< int > &identity)
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
IRelationalReader * newReader()
InlineCArrayReader(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
InlineCArrayUpdater(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
InlineCArrayStreamerBase(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
InlineCArrayStreamer(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
virtual void processArrayElement(DataElement &arrayElementOffset, IRelationalData &relationalData, MappingElement &arrayElementMapping, RelationalBuffer *operationBuffer)=0
bool build(DataElement &dataElement, IRelationalData &relationalData)
void read(void *data)
Reads a data element.
InlineCArrayWriter(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
RelationalStreamerFactory m_streamerFactory
IRelationalUpdater * newUpdater()
bool build(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
void write(int oid, const void *data)
Writes a data element.
bool buildDataElement(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer *operationBuffer)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void update(int oid, const void *data)
Updates a data element.
void processArrayElement(DataElement &arrayElementOffset, IRelationalData &relationalData, MappingElement &arrayElementMapping, RelationalBuffer *operationBuffer)
void setRecordId(const std::vector< int > &identity)
void setRecordId(const std::vector< int > &identity)
std::vector< IRelationalWriter * > m_writers
void processArrayElement(DataElement &arrayElementOffset, IRelationalData &relationalData, MappingElement &arrayElementMapping, RelationalBuffer *operationBuffer)
void processArrayElement(DataElement &arrayElementOffset, IRelationalData &relationalData, MappingElement &arrayElementMapping, RelationalBuffer *operationBuffer)
IRelationalWriter * newWriter()