6 m_buffer( iteratorBuffer ){
10 m_buffer( rhs.m_buffer ){
17 if(
this != &rhs ) m_buffer = rhs.
m_buffer;
26 return m_buffer->next();
30 return m_buffer->itemId();
34 return Object( m_buffer->getItem(), m_buffer->type() );
39 void* ptr = m_buffer->getItemAsType( castType );
40 return boost::shared_ptr<void>( ptr,
RflxDeleter( m_buffer->type() ) );
44 m_dbContainer( dbContainer ){
48 m_dbContainer( rhs.m_dbContainer ){
60 return m_dbContainer->id();
64 return m_dbContainer->name();
68 return m_dbContainer->className();
72 return m_dbContainer->mappingVersion();
76 return m_dbContainer->size();
86 m_dbContainer->extendSchema( type );
90 return Object( m_dbContainer->fetchItem(itemId), m_dbContainer->type() );
94 const std::type_info& asTypeInfo){
96 void* ptr = m_dbContainer->fetchItemAsType(itemId, asType );
97 if(!ptr)
return boost::shared_ptr<void>();
98 return boost::shared_ptr<void>( ptr,
RflxDeleter( m_dbContainer->type() ) );
104 throwException(
"Object class has not been found in the dictionary.",
105 "Container::insertItem");
107 return m_dbContainer->insertItem( data.
address(), objType );
111 const std::type_info& typeInfo ){
113 return m_dbContainer->insertItem( data, type );
120 throwException(
"Object class has not been found in the dictionary.",
121 "Container::updateItem");
123 return m_dbContainer->updateItem( itemId, data.
address(), objType );
128 const std::type_info& typeInfo ){
130 m_dbContainer->updateItem( itemId, data, type );
134 m_dbContainer->erase(itemId );
138 m_dbContainer->flush();
143 m_dbContainer->setItemName( name, itemId );
147 return m_dbContainer->getNames( destination );
void updateItem(int itemId, const Object &data)
Handle< IteratorBuffer > m_buffer
const std::string & name()
int insertItem(const Object &data)
Object fetchItem(int itemId)
void setItemName(const std::string &name, int itemId)
const std::string & className()
const std::string & mappingVersion()
boost::shared_ptr< void > fetchItemAsType(int itemId, const std::type_info &asTypeInfo)
Container(Handle< DatabaseContainer > &dbContainer)
boost::shared_ptr< void > getItemAsType(const std::type_info &asTypeInfo)
const Reflex::Type & type() const
Container & operator=(const Container &rhs)
void throwException(const std::string &message, const std::string &methodName)
virtual ~ContainerIterator()
bool getNames(std::vector< std::string > &destination)
Handle< DatabaseContainer > m_dbContainer
Reflex::Type lookupDictionary(const std::type_info &typeInfo, bool throwFlag=true)
ContainerIterator iterator()
ContainerIterator & operator=(const ContainerIterator &rhs)
ContainerIterator(Handle< IteratorBuffer > &iteratorBuffer)