Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

Database::PrimaryIterator< T > Class Template Reference

#include <generaldata.h>

Collaboration diagram for Database::PrimaryIterator< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PrimaryIterator (TrapperDoc *doc, string generalDataType, DbTxn *txnid=NULL)
 ~PrimaryIterator ()
int first ()
int next ()
int get (u_int32_t flags, Dbt &primary_key)
T * key ()
T * answer ()
int delCurrent ()
int setFromRecno (db_recno_t recno)

Protected Member Functions

void fillSecondaryDataDbt (Dbt &secondaryKey, const Dbt &primaryData)

Protected Attributes

T * m_GeneralData_key
T * m_GeneralData_answer
Dbc * m_cursor
Db * m_db
std::string name

Detailed Description

template<class T>
class Database::PrimaryIterator< T >

Definition at line 477 of file generaldata.h.


Constructor & Destructor Documentation

template<class T>
Database::PrimaryIterator< T >::PrimaryIterator TrapperDoc doc,
string  generalDataType,
DbTxn *  txnid = NULL
 

Definition at line 502 of file generaldata.h.

References TrapperDoc::findTrDb(), Database::PrimaryIterator< T >::m_cursor, Database::PrimaryIterator< T >::m_db, Database::PrimaryIterator< T >::m_GeneralData_answer, Database::PrimaryIterator< T >::m_GeneralData_key, GeneralMaker::newData(), and TrDb::primaryDb().

00503   {
00504     m_GeneralData_key = dynamic_cast< T * >(GeneralMaker::newData( generalDataType ));
00505     m_GeneralData_answer = dynamic_cast< T * >(GeneralMaker::newData( generalDataType ));
00506     m_db = doc->findTrDb( generalDataType )->primaryDb();
00507     Q_CHECK_PTR(m_GeneralData_key);
00508     Q_CHECK_PTR(m_GeneralData_answer);
00509     m_db->cursor( txnid , &m_cursor, 0 );
00510   }

template<class T>
Database::PrimaryIterator< T >::~PrimaryIterator  ) 
 

Definition at line 513 of file generaldata.h.

References Database::PrimaryIterator< T >::m_cursor, Database::PrimaryIterator< T >::m_GeneralData_answer, and Database::PrimaryIterator< T >::m_GeneralData_key.

00514   {
00515     m_cursor->close();
00516     if ( m_GeneralData_key )
00517       {
00518         delete m_GeneralData_key;
00519         m_GeneralData_key = NULL;
00520       }
00521     if ( m_GeneralData_answer )
00522       {
00523         delete m_GeneralData_answer;
00524         m_GeneralData_answer = NULL;
00525       }
00526   }


Member Function Documentation

template<class T>
T* Database::PrimaryIterator< T >::answer  )  [inline]
 

Definition at line 486 of file generaldata.h.

References Database::PrimaryIterator< T >::m_GeneralData_answer.

Referenced by MAl::commit_feat_to_db(), MAl_Readonly::read_seq_from_db(), TrapperDoc::saveExport(), TrapperView::selectAll(), MoveAlgo::start(), FindMatesAlgo::start(), and TrapperView::writeSelected().

00486 { return m_GeneralData_answer; }

template<class T>
int Database::PrimaryIterator< T >::delCurrent  ) 
 

Definition at line 529 of file generaldata.h.

References Database::PrimaryIterator< T >::m_cursor, and Database::PrimaryIterator< T >::m_db.

00530   {
00531     int ret;
00532     if ((ret = m_cursor->del(0)) != 0)
00533       {
00534         m_db->err(ret, "get call in PrimaryIterator::get");
00535       }
00536     return ret;    
00537   }

template<class T>
void Database::PrimaryIterator< T >::fillSecondaryDataDbt Dbt &  secondaryKey,
const Dbt &  primaryData
[protected]
 

Not implemented... What's this for anyway??

template<class T>
int Database::PrimaryIterator< T >::first  ) 
 

Definition at line 540 of file generaldata.h.

References Database::PrimaryIterator< T >::get(), and Database::PrimaryIterator< T >::key().

Referenced by TrapperDoc::saveExport(), and TrapperView::selectAll().

00541   {
00542     Dbt key;
00543     return get( DB_FIRST, key );
00544   }

template<class T>
int Database::PrimaryIterator< T >::get u_int32_t  flags,
Dbt &  primary_key
 

Definition at line 547 of file generaldata.h.

References Database::PrimaryIterator< T >::m_cursor, Database::PrimaryIterator< T >::m_db, Database::PrimaryIterator< T >::m_GeneralData_answer, and Database::setFromDbt().

Referenced by Database::PrimaryIterator< T >::first(), Database::PrimaryIterator< T >::next(), and Database::PrimaryIterator< T >::setFromRecno().

00548   {
00549     Dbt primary_data;
00550     int ret;
00551     if ((ret = m_cursor->get
00552          (&primary_key, &primary_data, flags )) != 0)
00553       {
00554         if ( ret != DB_NOTFOUND )
00555           {
00556             m_db->err(ret, "get call in PrimaryIterator::get");
00557           }
00558         //  throw DbException(ret);
00559       }
00560     else
00561       {
00562         setFromDbt( &primary_data, m_GeneralData_answer );
00563         db_recno_t recno = * static_cast<db_recno_t *> ( primary_key.get_data() );
00564         m_GeneralData_answer->setRecno( recno );
00565       }
00566     return ret;
00567   }

template<class T>
T* Database::PrimaryIterator< T >::key  )  [inline]
 

Definition at line 485 of file generaldata.h.

References Database::PrimaryIterator< T >::m_GeneralData_key.

Referenced by Database::PrimaryIterator< T >::first(), Database::PrimaryIterator< T >::next(), and Database::PrimaryIterator< T >::setFromRecno().

00485 { return m_GeneralData_key; }

template<class T>
int Database::PrimaryIterator< T >::next  ) 
 

Definition at line 579 of file generaldata.h.

References Database::PrimaryIterator< T >::get(), and Database::PrimaryIterator< T >::key().

Referenced by TrapperDoc::saveExport(), and TrapperView::selectAll().

00580   {
00581     Dbt key;
00582     return get( DB_NEXT, key );
00583   }

template<class T>
int Database::PrimaryIterator< T >::setFromRecno db_recno_t  recno  ) 
 

Definition at line 570 of file generaldata.h.

References Database::PrimaryIterator< T >::get(), and Database::PrimaryIterator< T >::key().

Referenced by MAl::commit_feat_to_db(), MAl_Readonly::read_seq_from_db(), MoveAlgo::start(), FindMatesAlgo::start(), and TrapperView::writeSelected().

00571   {
00572     Dbt key;
00573     key.set_size( sizeof( db_recno_t ));
00574     key.set_data( &recno );
00575     return get( DB_SET, key);
00576   }


Member Data Documentation

template<class T>
Dbc* Database::PrimaryIterator< T >::m_cursor [protected]
 

Definition at line 495 of file generaldata.h.

Referenced by Database::PrimaryIterator< T >::delCurrent(), Database::PrimaryIterator< T >::get(), Database::PrimaryIterator< T >::PrimaryIterator(), and Database::PrimaryIterator< T >::~PrimaryIterator().

template<class T>
Db* Database::PrimaryIterator< T >::m_db [protected]
 

Definition at line 496 of file generaldata.h.

Referenced by Database::PrimaryIterator< T >::delCurrent(), Database::PrimaryIterator< T >::get(), and Database::PrimaryIterator< T >::PrimaryIterator().

template<class T>
T* Database::PrimaryIterator< T >::m_GeneralData_answer [protected]
 

Definition at line 494 of file generaldata.h.

Referenced by Database::PrimaryIterator< T >::answer(), Database::PrimaryIterator< T >::get(), Database::PrimaryIterator< T >::PrimaryIterator(), and Database::PrimaryIterator< T >::~PrimaryIterator().

template<class T>
T* Database::PrimaryIterator< T >::m_GeneralData_key [protected]
 

Definition at line 493 of file generaldata.h.

Referenced by Database::PrimaryIterator< T >::key(), Database::PrimaryIterator< T >::PrimaryIterator(), and Database::PrimaryIterator< T >::~PrimaryIterator().

template<class T>
std::string Database::PrimaryIterator< T >::name [protected]
 

Definition at line 497 of file generaldata.h.


The documentation for this class was generated from the following file:
Generated on Fri Mar 17 17:45:03 2006 for trapper by  doxygen 1.4.4