_VDBL_table Class Reference
[Classes and types for internal use]

the base class describing database tables More...

#include <vdbl_table.h>

Inheritance diagram for _VDBL_table:

Inheritance graph
[legend]

List of all members.

Classes

struct  _col_iterator
class  _col_iterator_base
struct  _row_iterator

Public Types

typedef std::pair< std::string,
_VDBL_col
_T_colspec
typedef std::pair< const
std::string *, const _VDBL_col * > 
_T_ptrcolspec
typedef _col_iterator
< std::pair< std::string,
_VDBL_colid >, const std::pair
< std::string, _VDBL_colid >
&, const std::pair
< std::string, _VDBL_colid > * > 
col_const_iterator
typedef _row_iterator
< _VDBL_rowid, const
_VDBL_rowid &, const
_VDBL_rowid * > 
row_const_iterator

Public Member Functions

virtual const std::type_info & get_colinfo (const std::string &_C_n, std::triple< bool, _VDBL_colid, _VDBL_colflags > &_r) const VDBL_PURE_VIRTUAL public
virtual std::pair< std::string,
_VDBL_colid
_next_col (const std::pair< std::string, _VDBL_colid > &_ci) const VDBL_PURE_VIRTUALvirtual std
virtual _VDBL_rowid _next_row (const _VDBL_rowid &_ci) const VDBL_PURE_VIRTUALvirtual _VDBL_rowid _prev_row(const _VDBL_rowid &_ci) const VDBL_PURE_VIRTUALvirtual row_const_iterator row_begin() const VDBL_PURE_VIRTUALvirtual row_const_iterator row_end() const VDBL_PURE_VIRTUALvirtual row_const_iterator *row_iterator_copy(const row_const_iterator &) const VDBL_PURE_VIRTUAL public
 _VDBL_table (const _VDBL_table &__t)
template<template< class __Tp, class __AllocTp > class __SequenceCtr, class Allocator1 >
 _VDBL_table (const __SequenceCtr< std::triple< std::string, _VDBL_col, _VDBL_colflags >, Allocator1 > &__cc)
virtual ~_VDBL_table ()
virtual _VDBL_tablenew_copy () VDBL_PURE_VIRTUALvirtual void destroy_copy(_VDBL_table *t) VDBL_PURE_VIRTUALvirtual bool add_col(const std
template<template< class __Tp1, class __AllocTp1 > class __SequenceCtrOut, template< class __Tp2, class __AllocTp2 > class __SequenceCtrIn, class AllocatorOut , class AllocatorIn >
bool insert_row (const __SequenceCtrOut< __SequenceCtrIn< _T_colspec, AllocatorIn >, AllocatorOut > &_rows)

Protected Member Functions

void made_change ()
_VDBL_colid get_colid ()
_VDBL_rowid get_rowid ()

Friends

class _VDBL_view


Detailed Description

This is the base class of all tables within a database. A table is defined by a set of columns, which can be added and removed dynamically. The columns might have default values. Those are stored with the table, as well. The columns all consist of objects of class _VDBL_col.

The whole table then consists of a set of rows (_VDBL_row objects), organized in a map rowid -> row.

Definition at line 68 of file vdbl_table.h.


Member Typedef Documentation

typedef std::pair<std::string,_VDBL_col> _VDBL_table::_T_colspec

specifier of one column, a pair of column name (string) and entry (_VDBL_col).

Reimplemented in _VDBL_standardtable, and _VDBL_viewtable.

Definition at line 78 of file vdbl_table.h.

typedef std::pair<const std::string*,const _VDBL_col*> _VDBL_table::_T_ptrcolspec

specifier of pointers to one column, a pair of column name (string*) and entry (_VDBL_col*).

Reimplemented in _VDBL_standardtable.

Definition at line 83 of file vdbl_table.h.

typedef _col_iterator<std::pair<std::string,_VDBL_colid>, const std::pair<std::string,_VDBL_colid>&, const std::pair<std::string,_VDBL_colid>*> _VDBL_table::col_const_iterator

const iterator over all columns

Reimplemented in _VDBL_standardtable.

Definition at line 214 of file vdbl_table.h.

const iterator over all rows

Definition at line 321 of file vdbl_table.h.


Constructor & Destructor Documentation

_VDBL_table::_VDBL_table ( const _VDBL_table __t  )  [inline]

copy constructor

Definition at line 359 of file vdbl_table.h.

template<template< class __Tp, class __AllocTp > class __SequenceCtr, class Allocator1 >
_VDBL_table::_VDBL_table ( const __SequenceCtr< std::triple< std::string, _VDBL_col, _VDBL_colflags >, Allocator1 > &  __cc  )  [inline]

constructor which builds a table from a list of column definitions. This list can be contained in any sequential STL container.

Definition at line 368 of file vdbl_table.h.

virtual _VDBL_table::~_VDBL_table (  )  [inline, virtual]

standard destructor

Definition at line 375 of file vdbl_table.h.


Member Function Documentation

virtual std::pair<std::string,_VDBL_colid> _VDBL_table::_next_col ( const std::pair< std::string, _VDBL_colid > &  _ci  )  const [inline, virtual]

This virtual function has to be overloaded by the derived table classes, and it performs the step to the next column for a _col_iterator. This virtual function has to be overloaded by the derived table classes, and it performs the step to the previous column for a _col_iterator. return iterator to first column return iterator beyond last column This is the fundamental class for iterators over all rows, defining basic in(de)crementation for overloading, and basic comparison.

Reimplemented in _VDBL_standardtable.

Definition at line 221 of file vdbl_table.h.

virtual _VDBL_rowid _VDBL_table::_next_row ( const _VDBL_rowid _ci  )  const [inline, virtual]

This virtual function has to be overloaded by the derived table classes, and it performs the step to the next row for a _col_iterator. This virtual function has to be overloaded by the derived table classes, and it performs the step to the previous row for a _col_iterator. return iterator to first row return iterator beyond last row construct a new copy of a row iterator standard constructor

Reimplemented in _VDBL_standardtable.

Definition at line 328 of file vdbl_table.h.

_VDBL_colid _VDBL_table::get_colid (  )  [inline, protected]

generate new unique id's for rows and columns

Definition at line 99 of file vdbl_table.h.

virtual const std::type_info& _VDBL_table::get_colinfo ( const std::string &  _C_n,
std::triple< bool, _VDBL_colid, _VDBL_colflags > &  _r 
) const [inline, virtual]

return the column information for column _C_n. the return value is a referenc to the type_info of the column's value type. The reference _r contains upon returning whether the function was successful, the column id, and the column flags. what was the id of the last change to the table

Reimplemented in _VDBL_standardtable.

Definition at line 116 of file vdbl_table.h.

_VDBL_rowid _VDBL_table::get_rowid (  )  [inline, protected]

generate new unique id's for rows and columns

Definition at line 100 of file vdbl_table.h.

template<template< class __Tp1, class __AllocTp1 > class __SequenceCtrOut, template< class __Tp2, class __AllocTp2 > class __SequenceCtrIn, class AllocatorOut , class AllocatorIn >
bool _VDBL_table::insert_row ( const __SequenceCtrOut< __SequenceCtrIn< _T_colspec, AllocatorIn >, AllocatorOut > &  _rows  )  [inline]

insert a many new rows of specifications _rows into the table. The list of rows can be contained in any sequential STL container, which holds any other sequential STL container of column entries. The function returns true, if inserting was successful for all rows.

Definition at line 473 of file vdbl_table.h.

void _VDBL_table::made_change (  )  [inline, protected]

increment the last_change counter.

Definition at line 106 of file vdbl_table.h.

virtual _VDBL_table* _VDBL_table::new_copy (  )  const [inline, virtual]

clone method clone destructor method add a new column of name _C_n, which contains __c, and has column flags __f. The function returns true, if adding the column was successful. modify the column of name _C_n, to new contents __c, and new column flags __f. The function returns true, if modifying was successful. modify the contents of column of name _C_n The function returns true, if modifying was successful. modify the column flags of column of name _C_n The function returns true, if modifying was successful. remove the column _C_n from the table The function returns true, if erasing was successful. rename the column _C_old to new name _C_new. The function returns true, if renaming was successful. insert a new row of specification _row into the table, and return the row id of the newly created row in _r. The function returns true, if inserting was successful. insert a new row of specification _row into the table. The function returns true, if inserting was successful. insert a new row of specification _row into the table, and return the row id of the newly created row in _r. Take any sequential STL container to hold the row entries of the column. The function returns true, if inserting was successful.

Definition at line 380 of file vdbl_table.h.


The documentation for this class was generated from the following file:

Generated on Tue Feb 9 14:59:41 2010 for Vienna Database Library by  doxygen 1.5.8