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

destroyer.cc

Go to the documentation of this file.
00001 #include "destroyer.h"
00002 #include "generaldata.h"
00003 #include "featuredata.h"
00004 #include "readdata.h"
00005 #include <iostream>
00006 
00007 using namespace std;
00008 
00009 Destroyer::Destroyer( TrapperDoc* doc_ ) 
00010   : doc(doc_)
00011 {
00012   types = GeneralMaker::listRegistered();
00013 }
00014 
00015 void Destroyer::destroy(db_recno_t recno)
00016 {
00017 //   cerr<<"Destroying read with recno "<<recno<<endl;
00018   //First, destroy all features
00019   for( list<string>::iterator type_it = types.begin(); type_it != types.end(); ++type_it ) {
00020     
00021     GeneralData * data = GeneralMaker::newData( *type_it );
00022     FeatureData * fdata = dynamic_cast<FeatureData *>( data );
00023     if (fdata) {
00024 //       Database::Creator<FeatureData> a_creator(doc, *type_it);
00025       Database::SecondaryIterator<FeatureData> featIt( "readRecno", doc, *type_it );
00026       
00027       //Set iterator key read recno
00028       featIt.key()->setReadRecno( recno );
00029       
00030       if ( featIt.set() == 0 ) {//Read has such feature
00031         int ret = featIt.delCurrentInclDups();
00032         assert( ret == 0 );
00033 //         do {
00034 //           //Destroy feature
00035 //           cerr<<"\tDestroying "<<*type_it<<endl;
00036 //           a_creator.data()->setRecno( featIt.answer()->getRecno() );
00037 //           cerr<<"Recno set"<<endl;
00038 //           a_creator.destroy();
00039 //           cerr<<"\tDone"<<endl;
00040           
00041 //         } while ((ret = featIt.nextdup())== 0);
00042         
00043       }
00044       
00045     }
00046     
00047     
00048     delete data;
00049   }
00050   
00051   //Destroy read itself
00052 //   cerr<<"\tDestroying Actual read"<<endl;
00053   Database::Creator<ReadData> a_creator(doc, "ReadData");
00054   a_creator.data()->setRecno( recno );  
00055   a_creator.destroy();
00056   
00057 }

Generated on Fri Mar 17 17:44:24 2006 for trapper by  doxygen 1.4.4