#include <generaldata.h>
Inheritance diagram for Database::SecondaryIterator< T >:
Public Member Functions | |
SecondaryIterator (string secondaryIndexStr, TrapperDoc *doc, string generalDataType, DbTxn *txnid=NULL) | |
constructor | |
~SecondaryIterator () | |
std::string | name () |
int | set () |
int | setRange () |
int | nextdup () |
int | next () |
int | first () |
int | last () |
int | delCurrentInclDups () |
int | pget (Dbt &key, u_int32_t flags) |
T * | key () |
T * | answer () |
void | closeCursor () |
Protected Member Functions | |
void | fillSecondaryDataDbt (Dbt &secondaryKey, const Dbt &primaryData) |
Protected Attributes | |
T * | m_GeneralData_key |
T * | m_GeneralData_answer |
Dbc * | m_cursor |
TrDb::Index | index |
std::string | m_name |
DbTxn * | txn |
T | the derived GeneralData class that the pointer data() points to. By having this template argument we avoid the need of dynamic_cast by the users of this class. |
Definition at line 288 of file generaldata.h.
|
constructor
Definition at line 324 of file generaldata.h. References TrDb::Index::db, TrapperDoc::findTrDb(), Database::SecondaryIterator< T >::index, Database::SecondaryIterator< T >::m_cursor, Database::SecondaryIterator< T >::m_GeneralData_answer, Database::SecondaryIterator< T >::m_GeneralData_key, Database::SecondaryIterator< T >::m_name, GeneralMaker::newData(), TrDb::secondaryIndex(), and Database::SecondaryIterator< T >::txn. 00325 { 00326 assert( doc!= 0 ); 00327 00328 m_name = generalDataType; 00329 m_GeneralData_key = dynamic_cast< T * >(GeneralMaker::newData( generalDataType )); 00330 m_GeneralData_answer = dynamic_cast< T * >(GeneralMaker::newData( generalDataType )); 00331 index = doc->findTrDb( generalDataType )->secondaryIndex( secondaryIndexStr ); 00332 Q_CHECK_PTR(m_GeneralData_key); 00333 Q_CHECK_PTR(m_GeneralData_answer); 00334 00335 index.db->cursor( txnid , &m_cursor, 0 ); 00336 00337 txn = txnid; 00338 }
|
|
Definition at line 341 of file generaldata.h. References Database::SecondaryIterator< T >::m_cursor, Database::SecondaryIterator< T >::m_GeneralData_answer, and Database::SecondaryIterator< T >::m_GeneralData_key. 00342 { 00343 if ( m_cursor ) { 00344 m_cursor->close(); 00345 } 00346 if ( m_GeneralData_key ) { 00347 delete m_GeneralData_key; 00348 m_GeneralData_key = NULL; 00349 } 00350 if ( m_GeneralData_answer ) { 00351 delete m_GeneralData_answer; 00352 m_GeneralData_answer = NULL; 00353 } 00354 }
|
|
|
Definition at line 356 of file generaldata.h. References Database::SecondaryIterator< T >::m_cursor. Referenced by TrapperView::paintFeatures().
|
|
Definition at line 378 of file generaldata.h. References TrDb::Index::db, Database::SecondaryIterator< T >::fillSecondaryDataDbt(), Database::SecondaryIterator< T >::index, Database::SecondaryIterator< T >::m_GeneralData_key, and Database::SecondaryIterator< T >::txn. Referenced by Destroyer::destroy(). 00379 { 00380 Dbt secondaryKey; 00381 QByteArray ar; 00382 QDataStream stream( ar, IO_WriteOnly ); 00383 m_GeneralData_key->writeStream( stream ); 00384 Dbt primaryData( ar.data(), ar.size() ); 00385 fillSecondaryDataDbt( secondaryKey, primaryData ); 00386 00387 int ret; 00388 if ( (ret = index.db->del(txn, &secondaryKey, 0)) != 0 ){ 00389 if ( ret != DB_NOTFOUND ) 00390 { 00391 index.db->err(ret, "del() call in SecondaryIterator::delCurrentInclDups()"); 00392 } 00393 00394 } 00395 return ret; 00396 }
|
|
Definition at line 412 of file generaldata.h. References TrDb::Index::associate_func, TrDb::Index::db, and Database::SecondaryIterator< T >::index. Referenced by Database::SecondaryIterator< T >::delCurrentInclDups(), Database::SecondaryIterator< T >::set(), and Database::SecondaryIterator< T >::setRange(). 00413 { 00414 Dbt primaryKey; 00415 index.associate_func( index.db , &primaryKey, &primaryData, &secondaryKey); 00416 return; 00417 }
|
|
Definition at line 461 of file generaldata.h. References Database::SecondaryIterator< T >::pget(). Referenced by TrapperDoc::all_readnames(), and TrapperApp::map_reads_to_docs(). 00462 { 00463 Dbt secondaryKey; 00464 return pget( secondaryKey, DB_FIRST ); 00465 }
|
|
Definition at line 310 of file generaldata.h. Referenced by Destroyer::destroy(), ReadsInRect::find(), TrapperView::findRead(), TrapperView::getInfo(), TrapperDoc::importChromat(), TrapperDoc::importMates(), TrapperDoc::importPhd(), TrapperView::paintFeatures(), MAl_Readonly::read_feat_from_db(), TrapperDoc::saveExport(), TrapperView::selectBetween(), FindMatesAlgo::start(), and TrapperView::writeSelected(). 00310 { return m_GeneralData_key; }
|
|
Definition at line 468 of file generaldata.h. References Database::SecondaryIterator< T >::pget(). Referenced by TrapperView::fitContentsizeToData(). 00469 { 00470 Dbt secondaryKey; 00471 return pget( secondaryKey, DB_LAST ); 00472 }
|
|
Definition at line 301 of file generaldata.h. Referenced by TrapperView::paintFeatures(). 00301 { return m_name; }
|
|
Definition at line 454 of file generaldata.h. References Database::SecondaryIterator< T >::pget(). Referenced by TrapperDoc::all_readnames(), ReadsInRect::find(), TrapperApp::map_reads_to_docs(), and TrapperView::selectBetween(). 00455 { 00456 Dbt secondaryKey; 00457 return pget( secondaryKey, DB_NEXT ); 00458 }
|
|
Definition at line 447 of file generaldata.h. References Database::SecondaryIterator< T >::pget(). Referenced by TrapperView::getInfo(), TrapperView::paintFeatures(), MAl_Readonly::read_feat_from_db(), TrapperDoc::saveExport(), and TrapperView::writeSelected(). 00448 { 00449 Dbt secondaryKey; 00450 return pget( secondaryKey, DB_NEXT_DUP ); 00451 }
|
|
Definition at line 420 of file generaldata.h. References TrDb::Index::db, Database::SecondaryIterator< T >::index, Database::SecondaryIterator< T >::m_cursor, Database::SecondaryIterator< T >::m_GeneralData_answer, Database::setFromDbt(), and Database::SecondaryIterator< T >::txn. Referenced by Database::SecondaryIterator< T >::first(), Database::SecondaryIterator< T >::last(), Database::SecondaryIterator< T >::next(), Database::SecondaryIterator< T >::nextdup(), Database::SecondaryIterator< T >::set(), and Database::SecondaryIterator< T >::setRange(). 00421 { 00422 if ( !m_cursor ) 00423 index.db->cursor( txn , &m_cursor, 0 ); 00424 00425 00426 Dbt primary_key; 00427 Dbt primary_data; 00428 int ret; 00429 if ((ret = m_cursor->pget(&key, &primary_key, &primary_data, flags )) != 0) 00430 { 00431 if ( ret != DB_NOTFOUND ) 00432 { 00433 index.db->err(ret, "pget call in SecondaryIterator::pget"); 00434 } 00435 // throw DbException(ret); 00436 } 00437 else 00438 { 00439 Database::setFromDbt( &primary_data, m_GeneralData_answer ); 00440 db_recno_t recno = * static_cast<db_recno_t *> ( primary_key.get_data() ); 00441 m_GeneralData_answer->setRecno( recno ); 00442 } 00443 return ret; 00444 }
|
|
Definition at line 365 of file generaldata.h. References Database::SecondaryIterator< T >::fillSecondaryDataDbt(), Database::SecondaryIterator< T >::m_GeneralData_key, and Database::SecondaryIterator< T >::pget(). Referenced by Destroyer::destroy(), TrapperView::findRead(), TrapperView::getInfo(), TrapperDoc::importChromat(), TrapperDoc::importMates(), TrapperDoc::importPhd(), TrapperView::paintFeatures(), MAl_Readonly::read_feat_from_db(), TrapperDoc::saveExport(), FindMatesAlgo::start(), and TrapperView::writeSelected(). 00366 { 00367 00368 Dbt secondaryKey; 00369 QByteArray ar; 00370 QDataStream stream( ar, IO_WriteOnly ); 00371 m_GeneralData_key->writeStream( stream ); 00372 Dbt primaryData( ar.data(), ar.size() ); 00373 fillSecondaryDataDbt( secondaryKey, primaryData ); 00374 return pget( secondaryKey, DB_SET ); 00375 }
|
|
Definition at line 400 of file generaldata.h. References Database::SecondaryIterator< T >::fillSecondaryDataDbt(), Database::SecondaryIterator< T >::m_GeneralData_key, and Database::SecondaryIterator< T >::pget(). Referenced by ReadsInRect::find(), and TrapperView::selectBetween(). 00401 { 00402 Dbt secondaryKey; 00403 QByteArray ar; 00404 QDataStream stream( ar, IO_WriteOnly ); 00405 m_GeneralData_key->writeStream( stream ); 00406 Dbt primaryData( ar.data(), ar.size() ); 00407 fillSecondaryDataDbt( secondaryKey, primaryData ); 00408 return pget( secondaryKey, DB_SET_RANGE ); 00409 }
|
|
Definition at line 318 of file generaldata.h. Referenced by Database::SecondaryIterator< T >::delCurrentInclDups(), Database::SecondaryIterator< T >::fillSecondaryDataDbt(), Database::SecondaryIterator< T >::pget(), and Database::SecondaryIterator< T >::SecondaryIterator(). |
|
Definition at line 317 of file generaldata.h. Referenced by Database::SecondaryIterator< T >::closeCursor(), Database::SecondaryIterator< T >::pget(), Database::SecondaryIterator< T >::SecondaryIterator(), and Database::SecondaryIterator< T >::~SecondaryIterator(). |
|
Definition at line 316 of file generaldata.h. Referenced by Database::SecondaryIterator< ReadData >::answer(), Database::SecondaryIterator< T >::pget(), Database::SecondaryIterator< T >::SecondaryIterator(), and Database::SecondaryIterator< T >::~SecondaryIterator(). |
|
|
Definition at line 319 of file generaldata.h. Referenced by Database::SecondaryIterator< ReadData >::name(), and Database::SecondaryIterator< T >::SecondaryIterator(). |
|
Definition at line 320 of file generaldata.h. Referenced by Database::SecondaryIterator< T >::delCurrentInclDups(), Database::SecondaryIterator< T >::pget(), and Database::SecondaryIterator< T >::SecondaryIterator(). |