CMS 3D CMS Logo

Public Member Functions | Private Attributes

ora::InlineCArrayUpdater Class Reference

#include <InlineCArrayStreamer.h>

Inheritance diagram for ora::InlineCArrayUpdater:
ora::InlineCArrayStreamerBase ora::IRelationalUpdater

List of all members.

Public Member Functions

bool build (DataElement &dataElement, IRelationalData &relationalData, RelationalBuffer &operationBuffer)
 InlineCArrayUpdater (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 update (int oid, const void *data)
 Updates a data element.
virtual ~InlineCArrayUpdater ()

Private Attributes

std::vector< IRelationalUpdater * > m_updaters

Detailed Description

Definition at line 56 of file InlineCArrayStreamer.h.


Constructor & Destructor Documentation

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

Definition at line 98 of file InlineCArrayStreamer.cc.

                                                                             :
  InlineCArrayStreamerBase( objectType, mapping, contSchema  ),
  m_updaters(){
}
ora::InlineCArrayUpdater::~InlineCArrayUpdater ( ) [virtual]

Definition at line 105 of file InlineCArrayStreamer.cc.

                                            {
  for( std::vector< IRelationalUpdater* >::iterator iU = m_updaters.begin();
       iU != m_updaters.end(); ++iU ){
    delete *iU;
  }
  m_updaters.clear();
}

Member Function Documentation

bool ora::InlineCArrayUpdater::build ( DataElement dataElement,
IRelationalData relationalData,
RelationalBuffer operationBuffer 
) [virtual]

Implements ora::IRelationalUpdater.

Definition at line 122 of file InlineCArrayStreamer.cc.

                                                                       {
  return buildDataElement( dataElement, relationalData, &operationBuffer );  
}
void ora::InlineCArrayUpdater::processArrayElement ( DataElement arrayElementOffset,
IRelationalData relationalData,
MappingElement arrayElementMapping,
RelationalBuffer operationBuffer 
) [virtual]

Implements ora::InlineCArrayStreamerBase.

Definition at line 113 of file InlineCArrayStreamer.cc.

References ora::IRelationalUpdater::build().

                                                                                       {
  IRelationalUpdater* arrayElementUpdater = m_streamerFactory.newUpdater( m_arrayType, arrayElementMapping );
  m_updaters.push_back( arrayElementUpdater );
  arrayElementUpdater->build( arrayElementOffset, relationalData, *operationBuffer );
}
void ora::InlineCArrayUpdater::setRecordId ( const std::vector< int > &  identity) [virtual]

Implements ora::IRelationalUpdater.

Definition at line 128 of file InlineCArrayStreamer.cc.

                                                                         {
  for( std::vector< IRelationalUpdater* >::iterator iU = m_updaters.begin();
       iU !=  m_updaters.end(); ++iU){
    (*iU)->setRecordId( identity );
  }  
}
void ora::InlineCArrayUpdater::update ( int  oid,
const void *  data 
) [virtual]

Updates a data element.

Implements ora::IRelationalUpdater.

Definition at line 135 of file InlineCArrayStreamer.cc.

                                                         {
  for( std::vector< IRelationalUpdater* >::iterator iU = m_updaters.begin();
       iU !=  m_updaters.end(); ++iU ){
    (*iU)->update( oid, data );
  }
}

Member Data Documentation

Definition at line 70 of file InlineCArrayStreamer.h.