#include <OraPtrStreamer.h>
Definition at line 20 of file OraPtrStreamer.h.
Definition at line 141 of file OraPtrStreamer.cc.
Reflex::Type m_objectType
ContainerSchema & m_schema
DataElement m_localElement
std::auto_ptr< IRelationalWriter > m_writer
MappingElement & m_mappingElement
DataElement * m_dataElement
ora::OraPtrWriter::~OraPtrWriter |
( |
| ) |
|
|
virtual |
Implements ora::IRelationalWriter.
Definition at line 155 of file OraPtrStreamer.cc.
References ora::DataElement::clear(), ora::RelationalStreamerFactory::newWriter(), ora::ClassUtils::resolvedType(), and ora::throwException().
165 if ( ! ptrType || !ptrResolvedType ) {
166 throwException(
"Missing dictionary information for the type of the pointer \"" +
168 "OraPtrWriter::build" );
171 std::string ptrTypeName = ptrType.Name();
175 throwException(
"Item for \"" + ptrTypeName +
"\" not found in the mapping element",
176 "OraPtrWriter::build" );
178 RelationalStreamerFactory streamerFactory(
m_schema );
179 m_writer.reset( streamerFactory.newWriter( ptrResolvedType, iMe->second ));
Reflex::Type m_objectType
ContainerSchema & m_schema
iterator find(const std::string &key)
Retrieves a sub-element.
std::map< std::string, MappingElement >::iterator iterator
Iterator definition.
Reflex::Type resolvedType(const Reflex::Type &typ)
DataElement m_localElement
std::auto_ptr< IRelationalWriter > m_writer
iterator end()
Returns an iterator in the end of the sequence.
MappingElement & m_mappingElement
DataElement * m_dataElement
void throwException(const std::string &message, const std::string &methodName)
void ora::OraPtrWriter::setRecordId |
( |
const std::vector< int > & |
identity | ) |
|
|
virtual |
void ora::OraPtrWriter::write |
( |
int |
oid, |
|
|
const void * |
data |
|
) |
| |
|
virtual |
Writes a data element.
Implements ora::IRelationalWriter.
Definition at line 188 of file OraPtrStreamer.cc.
References ora::throwException().
193 "OraPtrWriter::write");
198 ptrObject.Invoke(
"load",0);
200 void* ptrAddress = 0;
201 ptrObject.Invoke(
"address",ptrAddress);
void * address(const void *topLevelAddress) const
Reflex::Type m_objectType
std::auto_ptr< IRelationalWriter > m_writer
char data[epos_bytes_allocation]
DataElement * m_dataElement
void throwException(const std::string &message, const std::string &methodName)
Reflex::Type ora::OraPtrWriter::m_objectType |
|
private |