CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
ora::InlineCArrayWriter Class Reference

#include <InlineCArrayStreamer.h>

Inheritance diagram for ora::InlineCArrayWriter:
ora::InlineCArrayStreamerBase ora::IRelationalWriter

Public Member Functions

bool build (DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
 
 InlineCArrayWriter (const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
 
void processArrayElement (DataElement &arrayElementOffset, IRelationalData &relationalData, MappingElement &arrayElementMapping, RelationalBuffer *operationBuffer)
 
void setRecordId (const std::vector< int > &identity)
 
void write (int oid, const void *data)
 Writes a data element. More...
 
virtual ~InlineCArrayWriter ()
 
- Public Member Functions inherited from ora::InlineCArrayStreamerBase
bool buildDataElement (DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer *operationBuffer)
 
 InlineCArrayStreamerBase (const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
 
virtual ~InlineCArrayStreamerBase ()
 
- Public Member Functions inherited from ora::IRelationalWriter
virtual ~IRelationalWriter ()
 Destructor. More...
 

Private Attributes

std::vector< IRelationalWriter * > m_writers
 

Additional Inherited Members

- Protected Attributes inherited from ora::InlineCArrayStreamerBase
Reflex::Type m_arrayType
 
Reflex::Type m_objectType
 
RelationalStreamerFactory m_streamerFactory
 

Detailed Description

Definition at line 37 of file InlineCArrayStreamer.h.

Constructor & Destructor Documentation

ora::InlineCArrayWriter::InlineCArrayWriter ( const Reflex::Type &  objectType,
MappingElement mapping,
ContainerSchema contSchema 
)

Definition at line 54 of file InlineCArrayStreamer.cc.

56  :
57  InlineCArrayStreamerBase( objectType, mapping, contSchema ),
58  m_writers(){
59 }
InlineCArrayStreamerBase(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
std::vector< IRelationalWriter * > m_writers
ora::InlineCArrayWriter::~InlineCArrayWriter ( )
virtual

Definition at line 61 of file InlineCArrayStreamer.cc.

61  {
62  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
63  iW != m_writers.end(); ++iW ){
64  delete *iW;
65  }
66  m_writers.clear();
67 }
std::vector< IRelationalWriter * > m_writers

Member Function Documentation

bool ora::InlineCArrayWriter::build ( DataElement dataElement,
IRelationalData relationalData,
RelationalBuffer operationBuffer 
)
virtual

Implements ora::IRelationalWriter.

Definition at line 78 of file InlineCArrayStreamer.cc.

80  {
81  return buildDataElement( dataElement, relationalData, &operationBuffer );
82 }
bool buildDataElement(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer *operationBuffer)
void ora::InlineCArrayWriter::processArrayElement ( DataElement arrayElementOffset,
IRelationalData relationalData,
MappingElement arrayElementMapping,
RelationalBuffer operationBuffer 
)
virtual

Implements ora::InlineCArrayStreamerBase.

Definition at line 69 of file InlineCArrayStreamer.cc.

References ora::IRelationalWriter::build().

72  {
73  IRelationalWriter* arrayElementWriter = m_streamerFactory.newWriter( m_arrayType, arrayElementMapping );
74  m_writers.push_back( arrayElementWriter );
75  arrayElementWriter->build( arrayElementOffset, relationalData, *operationBuffer );
76 }
RelationalStreamerFactory m_streamerFactory
IRelationalWriter * newWriter(const Reflex::Type &dataType, MappingElement &dataMapping)
std::vector< IRelationalWriter * > m_writers
void ora::InlineCArrayWriter::setRecordId ( const std::vector< int > &  identity)
virtual

Implements ora::IRelationalWriter.

Definition at line 84 of file InlineCArrayStreamer.cc.

84  {
85  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
86  iW != m_writers.end(); ++iW ){
87  (*iW)->setRecordId( identity );
88  }
89 }
std::vector< IRelationalWriter * > m_writers
void ora::InlineCArrayWriter::write ( int  oid,
const void *  data 
)
virtual

Writes a data element.

Implements ora::IRelationalWriter.

Definition at line 91 of file InlineCArrayStreamer.cc.

91  {
92  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
93  iW != m_writers.end(); ++iW ){
94  (*iW)->write( oid, data );
95  }
96 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
std::vector< IRelationalWriter * > m_writers

Member Data Documentation

std::vector<IRelationalWriter*> ora::InlineCArrayWriter::m_writers
private

Definition at line 52 of file InlineCArrayStreamer.h.