00001 #ifndef MACSIMPARSER_H 00002 #define MACSIMPARSER_H 00003 00004 #include <qxml.h> 00005 #include <qstringlist.h> 00006 #include <db_cxx.h> 00007 #include "qmap.h" 00008 #include <vector> 00009 #include <qstring.h> 00010 00011 class TrapperDoc; 00012 00013 00014 class MacsimParser : public QXmlDefaultHandler 00015 { 00016 00017 public: 00018 MacsimParser(DbEnv* dbenv, QString projectDir); 00019 00020 bool startElement( const QString & namespaceURI, const QString & localName, 00021 const QString & qName, const QXmlAttributes & attributes); 00022 bool endElement( const QString & namespaceURI, const QString & localName, 00023 const QString & qName); 00024 00025 bool characters ( const QString & ch ); 00026 00027 00028 00029 private: 00030 00031 QStringList contigNamesInProjectDir(); 00032 00033 00034 DbEnv* env; 00035 QString projDir; 00036 00037 TrapperDoc* current_doc; 00038 db_recno_t current_read_recno; 00039 bool format_ok; 00040 QMap<QString, QMap<QString, QString> > att_map; 00041 QMap<QString,QString> att_trans; 00042 QString curr_data; 00043 int curr_row; 00044 int curr_al_num; 00045 00046 std::vector<std::vector<QString> > tags; 00047 }; 00048 00049 #endif //MACSIMPARSER_H