CMS 3D CMS Logo

Public Member Functions | Private Attributes

ora::InlineCArrayWriter Class Reference

#include <InlineCArrayStreamer.h>

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

List of all members.

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.
virtual ~InlineCArrayWriter ()

Private Attributes

std::vector< IRelationalWriter * > m_writers

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.

                                                                          :
  InlineCArrayStreamerBase( objectType, mapping, contSchema ),
  m_writers(){
}
ora::InlineCArrayWriter::~InlineCArrayWriter ( ) [virtual]

Definition at line 61 of file InlineCArrayStreamer.cc.

                                          {
  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
       iW != m_writers.end(); ++iW ){
    delete *iW;
  }
  m_writers.clear();
}

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.

                                                                      {
  return buildDataElement( dataElement, relationalData, &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().

                                                                                      {
  IRelationalWriter* arrayElementWriter = m_streamerFactory.newWriter( m_arrayType, arrayElementMapping );
  m_writers.push_back( arrayElementWriter );
  arrayElementWriter->build( arrayElementOffset, relationalData, *operationBuffer );
}
void ora::InlineCArrayWriter::setRecordId ( const std::vector< int > &  identity) [virtual]

Implements ora::IRelationalWriter.

Definition at line 84 of file InlineCArrayStreamer.cc.

                                                                       {
  for( std::vector< IRelationalWriter* >::iterator iW = m_writers.begin();
       iW !=  m_writers.end(); ++iW ){
    (*iW)->setRecordId( identity );
  }  
}
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.

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

Member Data Documentation

Definition at line 52 of file InlineCArrayStreamer.h.