00001 #ifndef TRAPPER_DNPSORT_H 00002 #define TRAPPER_DNPSORT_H 00003 00004 #include <map> 00005 #include <set> 00006 #include <vector> 00007 #include "RW_algo.h" 00008 00009 class DnpSortAlgo : public RWAlgo 00010 { 00011 public: 00012 DnpSortAlgo(TrapperDoc * pDoc_, std::set< db_recno_t >& recnoList, AlgoParam* param) : 00013 RWAlgo(pDoc_, recnoList, param) {} 00014 00015 void start(); 00016 void init(); 00017 bool dnpDone( int dnp_id ); 00018 00019 private: 00020 typedef std::map<int, std::set<size_t> > MapSet; 00021 MapSet dnpID_to_readID; 00022 00023 typedef std::vector<std::set<int> > VectorSet; 00024 VectorSet readID_to_dnpID; 00025 00026 vector<bool> used_reads; 00027 00028 }; 00029 00030 #endif //TRAPPER_DNPSORT_H 00031