oasys::BerkeleyDBTable Class Reference

#include <BerkeleyDBStore.h>

Inheritance diagram for oasys::BerkeleyDBTable:

oasys::DurableTableImpl oasys::Logger List of all members.

Detailed Description

Object that encapsulates a single table.

Multiple instances of this object represent multiple uses of the same table.

Definition at line 133 of file BerkeleyDBStore.h.

Public Member Functions

 ~BerkeleyDBTable ()
int get (const SerializableObject &key, SerializableObject *data)
 virtual from DurableTableImpl
int get (const SerializableObject &key, SerializableObject **data, TypeCollection::Allocator_t allocator)
 virtual from DurableTableImpl
int put (const SerializableObject &key, TypeCollection::TypeCode_t typecode, const SerializableObject *data, int flags)
 virtual from DurableTableImpl
int del (const SerializableObject &key)
 virtual from DurableTableImpl
size_t size () const
 virtual from DurableTableImpl
DurableIteratoritr ()
 virtual from DurableTableImpl

Private Member Functions

 BerkeleyDBTable (const char *logpath, BerkeleyDBStore *store, const std::string &table_name, bool multitype, DB *db, DBTYPE type)
 Only BerkeleyDBStore can create BerkeleyDBTables.
int key_exists (const void *key, size_t key_len)
 Whether a specific key exists in the table.

Private Attributes

DB * db_
DBTYPE db_type_
BerkeleyDBStorestore_

Friends

class BerkeleyDBStore
class BerkeleyDBIterator


Constructor & Destructor Documentation

oasys::BerkeleyDBTable::~BerkeleyDBTable (  ) 

Definition at line 584 of file BerkeleyDBStore.cc.

References db_, log_debug, oasys::DurableTableImpl::name(), oasys::BerkeleyDBStore::release_table(), and store_.

oasys::BerkeleyDBTable::BerkeleyDBTable ( const char *  logpath,
BerkeleyDBStore store,
const std::string &  table_name,
bool  multitype,
DB *  db,
DBTYPE  type 
) [private]

Only BerkeleyDBStore can create BerkeleyDBTables.

Definition at line 571 of file BerkeleyDBStore.cc.

References oasys::BerkeleyDBStore::acquire_table(), and store_.


Member Function Documentation

int oasys::BerkeleyDBTable::get ( const SerializableObject key,
SerializableObject data 
) [virtual]

virtual from DurableTableImpl

Implements oasys::DurableTableImpl.

Definition at line 598 of file BerkeleyDBStore.cc.

References ASSERT, oasys::ScratchBuffer< _memory_t, _static_size >::buf(), oasys::Serialize::CONTEXT_LOCAL, db_, oasys::DS_ERR, oasys::DS_NOTFOUND, oasys::DurableTableImpl::flatten(), log_err, oasys::DurableTableImpl::multitype_, and NO_TX.

int oasys::BerkeleyDBTable::get ( const SerializableObject key,
SerializableObject **  data,
TypeCollection::Allocator_t  allocator 
) [virtual]

virtual from DurableTableImpl

Reimplemented from oasys::DurableTableImpl.

Definition at line 637 of file BerkeleyDBStore.cc.

References oasys::SerializeAction::action(), ASSERT, oasys::ScratchBuffer< _memory_t, _static_size >::buf(), oasys::Serialize::CONTEXT_LOCAL, db_, oasys::DS_ERR, oasys::DS_NOTFOUND, oasys::DS_OK, oasys::DurableTableImpl::flatten(), oasys::MarshalSize::get_size(), log_err, oasys::DurableTableImpl::multitype_, NO_TX, and oasys::UIntShim::value().

int oasys::BerkeleyDBTable::put ( const SerializableObject key,
TypeCollection::TypeCode_t  typecode,
const SerializableObject data,
int  flags 
) [virtual]

virtual from DurableTableImpl

Implements oasys::DurableTableImpl.

Definition at line 708 of file BerkeleyDBStore.cc.

References oasys::Marshal::action(), oasys::MarshalSize::action(), oasys::ScratchBuffer< _memory_t, _static_size >::buf(), oasys::Serialize::CONTEXT_LOCAL, db_, oasys::DBTRef::dbt(), oasys::DS_CREATE, oasys::DS_ERR, oasys::DS_EXCL, oasys::DS_EXISTS, oasys::DS_NOTFOUND, oasys::DurableTableImpl::flatten(), oasys::MarshalSize::get_size(), log_debug, log_err, oasys::DurableTableImpl::multitype_, NO_TX, and oasys::MarshalSize::size().

int oasys::BerkeleyDBTable::del ( const SerializableObject key  )  [virtual]

virtual from DurableTableImpl

Implements oasys::DurableTableImpl.

Definition at line 795 of file BerkeleyDBStore.cc.

References db_, oasys::DBTRef::dbt(), oasys::DS_ERR, oasys::DS_NOTFOUND, oasys::DurableTableImpl::flatten(), log_err, and NO_TX.

size_t oasys::BerkeleyDBTable::size (  )  const [virtual]

virtual from DurableTableImpl

Implements oasys::DurableTableImpl.

Definition at line 826 of file BerkeleyDBStore.cc.

References ASSERT, db_, db_type_, errno, log_crit, and NO_TX.

DurableIterator * oasys::BerkeleyDBTable::itr (  )  [virtual]

virtual from DurableTableImpl

Implements oasys::DurableTableImpl.

Definition at line 872 of file BerkeleyDBStore.cc.

References BerkeleyDBIterator.

int oasys::BerkeleyDBTable::key_exists ( const void *  key,
size_t  key_len 
) [private]

Whether a specific key exists in the table.

Definition at line 879 of file BerkeleyDBStore.cc.

References db_, oasys::DBTRef::dbt(), oasys::DS_ERR, oasys::DS_NOTFOUND, log_err, and NO_TX.


Friends And Related Function Documentation

friend class BerkeleyDBStore [friend]

Definition at line 134 of file BerkeleyDBStore.h.

friend class BerkeleyDBIterator [friend]

Definition at line 135 of file BerkeleyDBStore.h.

Referenced by itr().


Member Data Documentation

DB* oasys::BerkeleyDBTable::db_ [private]

Definition at line 161 of file BerkeleyDBStore.h.

Referenced by oasys::BerkeleyDBIterator::BerkeleyDBIterator(), del(), get(), oasys::BerkeleyDBStore::get_table_names(), key_exists(), put(), size(), and ~BerkeleyDBTable().

DBTYPE oasys::BerkeleyDBTable::db_type_ [private]

Definition at line 162 of file BerkeleyDBStore.h.

Referenced by size().

BerkeleyDBStore* oasys::BerkeleyDBTable::store_ [private]

Definition at line 163 of file BerkeleyDBStore.h.

Referenced by BerkeleyDBTable(), and ~BerkeleyDBTable().


The documentation for this class was generated from the following files:
Generated on Thu Jun 7 12:54:36 2007 for DTN Reference Implementation by  doxygen 1.5.1