Tanl Linguistic Pipeline

IXE::Table< T, IndexerClass >::Cursor Class Reference

A Cursor on a Table<T, IndexerClass>. More...

#include <table.h>

Inheritance diagram for IXE::Table< T, IndexerClass >::Cursor:
IXE::Enumerator< ItemType * > IXE::DynamicTable::Cursor

List of all members.

Public Member Functions

 Cursor (TableType *table, Field *field=0)
 Create a cursor on a column (default primary key).
 Cursor (TableType *table, char const *name)
 Create a cursor into the named column (must be indexed).
void setKey (int8 const value)
 Prepare cursor for retrieving rows with specified key.
void setKey (char const *value)
void setKey (byte const *value)
DocID getKey ()
void getPrimaryKey (byte *key)
 Fetches into.
byte * fetchRowData ()
bool MoveNext ()
 Implements Enumerator interface.
byte * NextSame ()
 Retrieve next row with same key as current row.
T * first ()
T * last ()
T * previous ()
virtual T * get ()
 Implements Enumerator interface.
byte * getKeyData ()
byte * getRowData ()
int size () const
byte * getNext ()
 Retrieve next row.
byte * getPrevious ()
 Retrieve previous row.
T * get (DocID docID)
 Retrieve object from DocID.
T * get (byte const *key)
 Retrieve object from key.
T * get (ItemType *obj)
 Retrieve the object identified by the value of the key for this Cursor in object.
byte * getEQ ()
 Retrieve next row with key == given key key_ must have been filled by setKey().
byte * getGE ()
 Retrieve object with smallest key >= given key key_ must have been filled by setKey().
byte * getGT ()
 Retrieve object with smallest key > given key key_ must have been filled by setKey().
byte * getLE ()
 Retrieve object with smallest key <= given key key_ must have been filled by setKey().
byte * getLT ()
 Retrieve object with smallest key < given key key_ must have been filled by setKey().
ItemType * operator-> ()
 Behave as fetched object.
bool update ()
 Update just row data, not fulltext field.

Protected Attributes

ItemType object
Table< ItemType, IndexerClass > * table
DBT key_
DBT row_
Fieldfield
 field scanned by cursor
FieldfieldStart
 first field to retrieve
FieldfieldEnd
 end field to retrieve

Detailed Description

template<class T, class IndexerClass = TextIndexer>
class IXE::Table< T, IndexerClass >::Cursor

A Cursor on a Table<T, IndexerClass>.


Constructor & Destructor Documentation

template<class T, class IndexerClass = TextIndexer>
IXE::Table< T, IndexerClass >::Cursor::Cursor ( TableType table,
Field field = 0 
) [inline]

Create a cursor on a column (default primary key).

References IXE::Table< T, IndexerClass >::Cursor::field.

template<class T, class IndexerClass = TextIndexer>
IXE::Table< T, IndexerClass >::Cursor::Cursor ( TableType table,
char const *  name 
) [inline]

Create a cursor into the named column (must be indexed).

References IXE::MetaClass::find().


Member Function Documentation

template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::fetchRowData (  )  [inline]
template<class T, class IndexerClass = TextIndexer>
T* IXE::Table< T, IndexerClass >::Cursor::first (  )  [inline]
Returns:
first element in table, NULL if none. Object returned is volatile: caller must make its own copy if needed.
template<class T, class IndexerClass = TextIndexer>
T* IXE::Table< T, IndexerClass >::Cursor::get ( ItemType *  obj  )  [inline]

Retrieve the object identified by the value of the key for this Cursor in object.

Parameters:
obj. 

References IXE::Table< T, IndexerClass >::Cursor::field, and IXE::Table< T, IndexerClass >::key.

template<class T, class IndexerClass = TextIndexer>
T* IXE::Table< T, IndexerClass >::Cursor::get ( byte const *  key  )  [inline]

Retrieve object from key.

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

Parameters:
key requested key

References IXE::Table< T, IndexerClass >::key, and IXE::Table< T, IndexerClass >::Cursor::setKey().

template<class T, class IndexerClass = TextIndexer>
T* IXE::Table< T, IndexerClass >::Cursor::get ( DocID  docID  )  [inline]

Retrieve object from DocID.

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

Parameters:
docID requested DocID

References IXE::Table< T, IndexerClass >::Cursor::field, and IXE::Field::setKey().

template<class T, class IndexerClass = TextIndexer>
virtual T* IXE::Table< T, IndexerClass >::Cursor::get (  )  [inline, virtual]
template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getEQ (  )  [inline]

Retrieve next row with key == given key key_ must have been filled by setKey().

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().

template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getGE (  )  [inline]

Retrieve object with smallest key >= given key key_ must have been filled by setKey().

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().

template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getGT (  )  [inline]

Retrieve object with smallest key > given key key_ must have been filled by setKey().

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().

template<class T, class IndexerClass = TextIndexer>
DocID IXE::Table< T, IndexerClass >::Cursor::getKey (  )  [inline]
Returns:
the primary key of the current row

References IXE::Field::fetchKey(), and IXE::Table< T, IndexerClass >::Cursor::field.

template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getKeyData (  )  [inline]
Returns:
key of current row
template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getLE (  )  [inline]

Retrieve object with smallest key <= given key key_ must have been filled by setKey().

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().

template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getLT (  )  [inline]

Retrieve object with smallest key < given key key_ must have been filled by setKey().

Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).

References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().

template<class T, class IndexerClass = TextIndexer>
void IXE::Table< T, IndexerClass >::Cursor::getPrimaryKey ( byte *  key  )  [inline]

Fetches into.

Parameters:
key the primary key from the current row of a secondary cursor

References IXE::Field::fetchKey(), and IXE::Table< T, IndexerClass >::Cursor::getRowData().

Referenced by IXE::Table< T, IndexerClass >::Cursor::get().

template<class T, class IndexerClass = TextIndexer>
byte* IXE::Table< T, IndexerClass >::Cursor::getRowData (  )  [inline]
Returns:
data of current row

Referenced by IXE::Table< T, IndexerClass >::Cursor::getPrimaryKey().

template<class T, class IndexerClass = TextIndexer>
T* IXE::Table< T, IndexerClass >::Cursor::last (  )  [inline]
Returns:
last element in table, NULL if none. Object returned is volatile: caller must make its own copy if needed.
template<class T, class IndexerClass = TextIndexer>
bool IXE::Table< T, IndexerClass >::Cursor::MoveNext (  )  [inline]

Implements Enumerator interface.

Moves to then next row in the table, if there is one. For DB_HASH tables, since we don't use locking, if there several cursors open on the same table, there is no guarantee that all rows will be returned.

Returns:
true if succeeded moving to the next row

Reimplemented from IXE::Enumerator< ItemType * >.

References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().

template<class T, class IndexerClass = TextIndexer>
ItemType* IXE::Table< T, IndexerClass >::Cursor::operator-> (  )  [inline]

Behave as fetched object.

A get() must have been issued before.

template<class T, class IndexerClass = TextIndexer>
T* IXE::Table< T, IndexerClass >::Cursor::previous (  )  [inline]
Returns:
previous element in table, NULL if none. Object returned is volatile: caller must make its own copy if needed.
template<class T, class IndexerClass = TextIndexer>
void IXE::Table< T, IndexerClass >::Cursor::setKey ( int8 const   value  )  [inline]

Prepare cursor for retrieving rows with specified key.

References IXE::Table< T, IndexerClass >::Cursor::field, and IXE::Field::setKey().

Referenced by IXE::Table< T, IndexerClass >::Cursor::get().

template<class T, class IndexerClass = TextIndexer>
int IXE::Table< T, IndexerClass >::Cursor::size (  )  const [inline]
Returns:
number of items with same key

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
 
Copyright © 2005-2011 G. Attardi. Generated on 4 Mar 2011 by doxygen 1.6.1.