CMS 3D CMS Logo

Public Member Functions | Private Attributes

ora::InlineCArrayReader Class Reference

#include <InlineCArrayStreamer.h>

Inheritance diagram for ora::InlineCArrayReader:
ora::InlineCArrayStreamerBase ora::IRelationalReader

List of all members.

Public Member Functions

bool build (DataElement &dataElement, IRelationalData &relationalData)
void clear ()
 InlineCArrayReader (const Reflex::Type &objectType, MappingElement &mapping, ContainerSchema &contSchema)
void processArrayElement (DataElement &arrayElementOffset, IRelationalData &relationalData, MappingElement &arrayElementMapping, RelationalBuffer *operationBuffer)
void read (void *data)
 Reads a data element.
void select (int oid)
void setRecordId (const std::vector< int > &identity)
virtual ~InlineCArrayReader ()

Private Attributes

std::vector< IRelationalReader * > m_readers

Detailed Description

Definition at line 74 of file InlineCArrayStreamer.h.


Constructor & Destructor Documentation

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

Definition at line 143 of file InlineCArrayStreamer.cc.

                                                                          :
  InlineCArrayStreamerBase( objectType, mapping, contSchema ),
  m_readers(){
}
ora::InlineCArrayReader::~InlineCArrayReader ( ) [virtual]

Definition at line 150 of file InlineCArrayStreamer.cc.

                                          {
  for( std::vector< IRelationalReader* >::iterator iStr = m_readers.begin();
       iStr != m_readers.end(); ++iStr ){
    delete *iStr;
  }
  m_readers.clear();
}

Member Function Documentation

bool ora::InlineCArrayReader::build ( DataElement dataElement,
IRelationalData relationalData 
) [virtual]

Implements ora::IRelationalReader.

Definition at line 167 of file InlineCArrayStreamer.cc.

                                                                    {
  return buildDataElement( dataElement, relationalData, 0 );  
}
void ora::InlineCArrayReader::clear ( void  ) [virtual]

Implements ora::IRelationalReader.

Definition at line 193 of file InlineCArrayStreamer.cc.

                                 {
  for( std::vector< IRelationalReader* >::iterator iDepReader = m_readers.begin();
       iDepReader !=  m_readers.end(); ++iDepReader ){
    (*iDepReader)->clear();
  }
}
void ora::InlineCArrayReader::processArrayElement ( DataElement arrayElementOffset,
IRelationalData relationalData,
MappingElement arrayElementMapping,
RelationalBuffer operationBuffer 
) [virtual]

Implements ora::InlineCArrayStreamerBase.

Definition at line 158 of file InlineCArrayStreamer.cc.

References ora::IRelationalReader::build().

                                                                     {
  IRelationalReader* arrayElementReader = m_streamerFactory.newReader( m_arrayType, arrayElementMapping );
  m_readers.push_back( arrayElementReader );
  arrayElementReader->build( arrayElementOffset, relationalData );
}
void ora::InlineCArrayReader::read ( void *  address) [virtual]

Reads a data element.

Implements ora::IRelationalReader.

Definition at line 186 of file InlineCArrayStreamer.cc.

                                            {
  for( std::vector< IRelationalReader* >::iterator iDepReader = m_readers.begin();
       iDepReader !=  m_readers.end(); ++iDepReader ){
    (*iDepReader)->read( data );
  }
}
void ora::InlineCArrayReader::select ( int  oid) [virtual]

Implements ora::IRelationalReader.

Definition at line 172 of file InlineCArrayStreamer.cc.

                                          {
  for( std::vector< IRelationalReader* >::iterator iDepReader = m_readers.begin();
       iDepReader !=  m_readers.end(); ++iDepReader ){
    (*iDepReader)->select( oid );
  }
}
void ora::InlineCArrayReader::setRecordId ( const std::vector< int > &  identity) [virtual]

Implements ora::IRelationalReader.

Definition at line 179 of file InlineCArrayStreamer.cc.

                                                                        {
  for( std::vector< IRelationalReader* >::iterator iDepReader = m_readers.begin();
       iDepReader !=  m_readers.end(); ++iDepReader ){
    (*iDepReader)->setRecordId( identity );
  }  
}

Member Data Documentation

Definition at line 93 of file InlineCArrayStreamer.h.