00001 #ifndef TRAPPERPARSER_H 00002 #define TRAPPERPARSER_H 00003 00004 #include <qxml.h> 00005 #include <qstringlist.h> 00006 #include <db_cxx.h> 00007 #include <set> 00008 00009 class TrapperDoc; 00010 00011 00012 class TrapperParser : public QXmlDefaultHandler 00013 { 00014 00015 public: 00016 TrapperParser(DbEnv* dbenv, QString projectDir) : 00017 env(dbenv), projDir(projectDir), current_doc(0), format_ok(false) {} 00018 00019 bool startElement( const QString & namespaceURI, const QString & localName, 00020 const QString & qName, const QXmlAttributes & attributes); 00021 bool endElement( const QString & namespaceURI, const QString & localName, 00022 const QString & qName); 00023 00024 00025 00026 00027 private: 00028 00029 QStringList contigNamesInProjectDir(); 00030 00031 00032 DbEnv* env; 00033 QString projDir; 00034 00035 TrapperDoc* current_doc; 00036 db_recno_t current_read_recno; 00037 bool format_ok; 00038 int curr_start_row; 00039 std::set<db_recno_t> curr_set; 00040 }; 00041 00042 #endif //TRAPPERPARSER_H