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

Destroyer Class Reference

#include <destroyer.h>

Collaboration diagram for Destroyer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Destroyer (TrapperDoc *doc_)
void destroy (db_recno_t recno)

Private Attributes

TrapperDocdoc
std::list< std::string > types

Detailed Description

Definition at line 9 of file destroyer.h.


Constructor & Destructor Documentation

Destroyer::Destroyer TrapperDoc doc_  ) 
 

Definition at line 9 of file destroyer.cc.

References GeneralMaker::listRegistered(), and types.

00010   : doc(doc_)
00011 {
00012   types = GeneralMaker::listRegistered();
00013 }


Member Function Documentation

void Destroyer::destroy db_recno_t  recno  ) 
 

Definition at line 15 of file destroyer.cc.

References Database::Creator< T >::data(), Database::SecondaryIterator< T >::delCurrentInclDups(), Database::Creator< T >::destroy(), doc, Database::SecondaryIterator< T >::key(), GeneralMaker::newData(), Database::SecondaryIterator< T >::set(), FeatureData::setReadRecno(), GeneralData::setRecno(), and types.

Referenced by TrapperView::cut().

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 }


Member Data Documentation

TrapperDoc* Destroyer::doc [private]
 

Definition at line 17 of file destroyer.h.

Referenced by destroy().

std::list<std::string> Destroyer::types [private]
 

Definition at line 18 of file destroyer.h.

Referenced by destroy(), and Destroyer().


The documentation for this class was generated from the following files:
Generated on Fri Mar 17 17:44:57 2006 for trapper by  doxygen 1.4.4