#include <generaldata.h>
Collaboration diagram for Database::Creator< T >:
Public Member Functions | |
Creator (TrapperDoc *doc, std::string dataType) | |
constructor | |
~Creator () | |
db_recno_t | create (bool useRecno, DbTxn *txnid=NULL) |
create a new record in the berkeley db | |
void | destroy (DbTxn *txnid=NULL) |
Removes a record from the DB. | |
T * | data () |
returns a pointer to the data | |
Protected Attributes | |
T * | m_data |
Db * | m_db |
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 169 of file generaldata.h.
|
constructor
Definition at line 199 of file generaldata.h. References TrapperDoc::findTrDb(), Database::Creator< T >::m_data, Database::Creator< T >::m_db, GeneralMaker::newData(), and TrDb::primaryDb(). 00200 { 00201 m_data = dynamic_cast< T * >(GeneralMaker::newData( dataType )); 00202 Q_CHECK_PTR( m_data ); 00203 std::string datatype = m_data->uniqueName(); 00204 m_db = doc->findTrDb( datatype )->primaryDb(); 00205 // cerr<<"In Creator(), doc: "<<doc<<endl; 00206 }
|
|
Definition at line 209 of file generaldata.h. References Database::Creator< T >::m_data.
|
|
create a new record in the berkeley db
Definition at line 216 of file generaldata.h. References Database::Creator< T >::data(), Database::Creator< T >::m_data, and Database::Creator< T >::m_db. Referenced by MAl::commit_feat_to_db(), MAl::commit_seq_to_db(), TrapperDoc::import(), TrapperDoc::importChromat(), TrapperDoc::importMates(), TrapperDoc::importPhd(), TrapperView::readSelected(), MoveAlgo::start(), and TrapperParser::startElement(). 00217 { 00218 // std::cerr<<"In "<<std::endl; 00219 // std::cerr<<"txnid: "<<txnid<<std::endl; 00220 QByteArray ar; 00221 QDataStream stream( ar, IO_WriteOnly ); 00222 // std::cerr<<"Check1 "<<std::endl; 00223 m_data->writeStream( stream ); 00224 // std::cerr<<"Check2 "<<std::endl; 00225 00226 Dbt data( ar.data(), ar.size() ); 00227 // std::cerr<<"Check3 "<<std::endl; 00228 Dbt key; 00229 00230 // db_recno_t recno; 00231 db_recno_t the_recno(0);//EA 00232 u_int32_t flags = 0; 00233 if ( useRecno ) 00234 { 00235 // std::cerr<<"Check4:1 "<<std::endl; 00236 the_recno = m_data->getRecno(); 00237 key.set_data( &the_recno ); 00238 key.set_size( sizeof( the_recno ) ); 00239 } 00240 else 00241 { 00242 // std::cerr<<"Check4:2 "<<std::endl; 00243 flags |= DB_APPEND; 00244 assert( flags == DB_APPEND ); 00245 } 00246 // std::cerr<<"Check5 "<<std::endl; 00247 // std::cerr<<"Db: "<<m_db<<std::endl; 00248 // m_data->print_debug_info(); 00249 // std::cerr<<"Back from debug "<<endl; 00250 00251 int ret; 00252 if ((ret = m_db->put(txnid, &key, &data, flags )) != 0) 00253 { 00254 // std::cerr<<"Check5:1 "<<std::endl; 00255 m_db->err(ret, "error in create"); 00256 // std::cerr<<"Check5:2 "<<std::endl; 00257 exit( 1 ); 00258 } 00259 // std::cerr<<"Check6 "<<std::endl; 00260 db_recno_t recnoRet = * static_cast< db_recno_t * >( key.get_data() ); 00261 // std::cerr<<"Out "<<std::endl; 00262 return recnoRet; 00263 }
|
|
returns a pointer to the data
Definition at line 192 of file generaldata.h. References Database::Creator< T >::m_data. Referenced by MAl::commit_feat_to_db(), MAl::commit_seq_to_db(), Database::Creator< T >::create(), Destroyer::destroy(), TrapperDoc::import(), TrapperDoc::importChromat(), TrapperDoc::importMates(), TrapperDoc::importPhd(), TrapperView::readSelected(), MoveAlgo::start(), and TrapperParser::startElement(). 00192 { return m_data; }
|
|
Removes a record from the DB.
Definition at line 265 of file generaldata.h. References Database::Creator< T >::m_data, and Database::Creator< T >::m_db. Referenced by MAl::commit_feat_to_db(), and Destroyer::destroy(). 00266 { 00267 Dbt key; 00268 00269 db_recno_t the_recno(0); 00270 u_int32_t flags = 0; 00271 the_recno = m_data->getRecno(); 00272 key.set_data( &the_recno ); 00273 key.set_size( sizeof( the_recno ) ); 00274 00275 int ret; 00276 if ((ret = m_db->del(txnid, &key, flags )) != 0) 00277 { 00278 m_db->err(ret, "error in Creator::destroy"); 00279 exit( 1 ); 00280 } 00281 }
|
|
Definition at line 194 of file generaldata.h. Referenced by Database::Creator< T >::create(), Database::Creator< T >::Creator(), Database::Creator< T >::data(), Database::Creator< T >::destroy(), and Database::Creator< T >::~Creator(). |
|
Definition at line 195 of file generaldata.h. Referenced by Database::Creator< T >::create(), Database::Creator< T >::Creator(), and Database::Creator< T >::destroy(). |