CMS 3D CMS Logo

Public Member Functions | Private Attributes

ora::ObjectUpdater Class Reference

#include <ObjectStreamer.h>

Inheritance diagram for ora::ObjectUpdater:
ora::ObjectStreamerBase ora::IRelationalUpdater

List of all members.

Public Member Functions

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

Private Attributes

std::vector< IRelationalUpdater * > m_updaters

Detailed Description

Definition at line 53 of file ObjectStreamer.h.


Constructor & Destructor Documentation

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

Definition at line 186 of file ObjectStreamer.cc.

                                                                :
  ObjectStreamerBase( objectType, mapping, contSchema ),
  m_updaters(){
}
ora::ObjectUpdater::~ObjectUpdater ( ) [virtual]

Definition at line 193 of file ObjectStreamer.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::ObjectUpdater::build ( DataElement dataElement,
IRelationalData relationalData,
RelationalBuffer operationBuffer 
) [virtual]

Implements ora::IRelationalUpdater.

Definition at line 201 of file ObjectStreamer.cc.

                                                                 {
  return buildDataMembers( dataElement, relationalData, &operationBuffer  );
}
void ora::ObjectUpdater::processDataMember ( DataElement dataElement,
IRelationalData relationalData,
Reflex::Type &  dataMemberType,
MappingElement dataMemberMapping,
RelationalBuffer operationBuffer 
) [virtual]

Implements ora::ObjectStreamerBase.

Definition at line 223 of file ObjectStreamer.cc.

References ora::IRelationalUpdater::build().

                                                                               {
  IRelationalUpdater* dataMemberUpdater = m_streamerFactory.newUpdater( dataMemberType, dataMemberMapping );
  m_updaters.push_back( dataMemberUpdater );
  dataMemberUpdater->build( dataMemberElement, relationalData, *operationBuffer );
}
void ora::ObjectUpdater::setRecordId ( const std::vector< int > &  identity) [virtual]

Implements ora::IRelationalUpdater.

Definition at line 207 of file ObjectStreamer.cc.

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

Updates a data element.

Writes a data element.

Implements ora::IRelationalUpdater.

Definition at line 215 of file ObjectStreamer.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 75 of file ObjectStreamer.h.