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 482 of file generaldata.h.


Constructor & Destructor Documentation

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

Definition at line 507 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().

00508   {
00509     m_GeneralData_key = dynamic_cast< T * >(GeneralMaker::newData( generalDataType ));
00510     m_GeneralData_answer = dynamic_cast< T * >(GeneralMaker::newData( generalDataType ));
00511     m_db = doc->findTrDb( generalDataType )->primaryDb();
00512     Q_CHECK_PTR(m_GeneralData_key);
00513     Q_CHECK_PTR(m_GeneralData_answer);
00514     m_db->cursor( txnid , &m_cursor, 0 );
00515   }

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

Definition at line 518 of file generaldata.h.

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

00519   {
00520     m_cursor->close();
00521     if ( m_GeneralData_key )
00522       {
00523         delete m_GeneralData_key;
00524         m_GeneralData_key = NULL;
00525       }
00526     if ( m_GeneralData_answer )
00527       {
00528         delete m_GeneralData_answer;
00529         m_GeneralData_answer = NULL;
00530       }
00531   }


Member Function Documentation

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

Definition at line 545 of file generaldata.h.

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

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

00546   {
00547     Dbt key;
00548     return get( DB_FIRST, key );
00549   }

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

Definition at line 584 of file generaldata.h.

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

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

00585   {
00586     Dbt key;
00587     return get( DB_NEXT, key );
00588   }

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

Definition at line 552 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().

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

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

Definition at line 490 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().

00490 { return m_GeneralData_key; }

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

Definition at line 491 of file generaldata.h.

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

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

00491 { return m_GeneralData_answer; }

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

Definition at line 534 of file generaldata.h.

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

00535   {
00536     int ret;
00537     if ((ret = m_cursor->del(0)) != 0)
00538       {
00539         m_db->err(ret, "get call in PrimaryIterator::get");
00540       }
00541     return ret;    
00542   }

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

Definition at line 575 of file generaldata.h.

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

Referenced by MAl_Readonly::read_seq_from_db(), and TrapperView::writeSelected().

00576   {
00577     Dbt key;
00578     key.set_size( sizeof( db_recno_t ));
00579     key.set_data( &recno );
00580     return get( DB_SET, key);
00581   }

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

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


Member Data Documentation

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

Definition at line 498 of file generaldata.h.

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

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

Definition at line 499 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>
Dbc* Database::PrimaryIterator< T >::m_cursor [protected]

Definition at line 500 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 501 of file generaldata.h.

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

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

Definition at line 502 of file generaldata.h.


The documentation for this class was generated from the following file:
Generated on Fri Jul 17 20:19:57 2009 for ngsview by  doxygen 1.5.1