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::ObjectWriter Class Reference

#include <ObjectStreamer.h>

Inheritance diagram for ora::ObjectWriter:
ora::ObjectStreamerBase ora::IRelationalWriter

Public Member Functions

bool build (DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
 
 ObjectWriter (const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
 
void processDataMember (DataElement &dataElement, IRelationalData &relationalData, Reflex::Type &dataMemberType, MappingElement &dataMemberMapping, RelationalBuffer *operationBuffer)
 
void setRecordId (const std::vector< int > &identity)
 
void write (int oid, const void *data)
 Writes a data element. More...
 
virtual ~ObjectWriter ()
 
- Public Member Functions inherited from ora::ObjectStreamerBase
void buildBaseDataMembers (DataElement &dataElement, IRelationalData &relationalData, const Reflex::Type &objType, RelationalBuffer *operationBuffer)
 
bool buildDataMembers (DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer *operationBuffer)
 
 ObjectStreamerBase (const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
 
virtual ~ObjectStreamerBase ()
 
- 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::ObjectStreamerBase
RelationalStreamerFactory m_streamerFactory
 

Detailed Description

Definition at line 29 of file ObjectStreamer.h.

Constructor & Destructor Documentation

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

Definition at line 109 of file ObjectStreamer.cc.

111  :
112  ObjectStreamerBase( objectType, mapping, contSchema ),
113  m_writers(){
114 }
std::vector< IRelationalWriter * > m_writers
ObjectStreamerBase(const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
ora::ObjectWriter::~ObjectWriter ( )
virtual

Definition at line 116 of file ObjectStreamer.cc.

116  {
117  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
118  iW != m_writers.end(); ++iW ){
119  delete *iW;
120  }
121  m_writers.clear();
122 }
std::vector< IRelationalWriter * > m_writers

Member Function Documentation

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

Implements ora::IRelationalWriter.

Definition at line 124 of file ObjectStreamer.cc.

126  {
127  return buildDataMembers( dataElement, relationalData, &operationBuffer );
128 }
bool buildDataMembers(DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer *operationBuffer)
void ora::ObjectWriter::processDataMember ( DataElement dataElement,
IRelationalData relationalData,
Reflex::Type &  dataMemberType,
MappingElement dataMemberMapping,
RelationalBuffer operationBuffer 
)
virtual

Implements ora::ObjectStreamerBase.

Definition at line 146 of file ObjectStreamer.cc.

References ora::IRelationalWriter::build().

150  {
151  IRelationalWriter* dataMemberWriter = m_streamerFactory.newWriter( dataMemberType, dataMemberMapping );
152  m_writers.push_back( dataMemberWriter );
153  dataMemberWriter->build( dataMemberElement, relationalData, *operationBuffer );
154 }
std::vector< IRelationalWriter * > m_writers
IRelationalWriter * newWriter(const Reflex::Type &dataType, MappingElement &dataMapping)
RelationalStreamerFactory m_streamerFactory
void ora::ObjectWriter::setRecordId ( const std::vector< int > &  identity)
virtual

Implements ora::IRelationalWriter.

Definition at line 130 of file ObjectStreamer.cc.

130  {
131  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
132  iW != m_writers.end(); ++iW ){
133  (*iW)->setRecordId( identity );
134  }
135 }
std::vector< IRelationalWriter * > m_writers
void ora::ObjectWriter::write ( int  oid,
const void *  data 
)
virtual

Writes a data element.

Implements ora::IRelationalWriter.

Definition at line 138 of file ObjectStreamer.cc.

139  {
140  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
141  iW != m_writers.end(); ++iW ){
142  (*iW)->write( oid, data );
143  }
144 }
std::vector< IRelationalWriter * > m_writers

Member Data Documentation

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

Definition at line 50 of file ObjectStreamer.h.