readmetadata.h

Go to the documentation of this file.
00001 //Copyright (C) 2007 Erik Arner, erik.arner@gmail.com
00002  
00003 #ifndef READMETADATA_H
00004 #define READMETADATA_H
00005 
00006 #include <db_cxx.h>
00007 
00008 // #include <qcstring.h>
00009 // #include <qvaluelist.h>
00010 #include "generaldata.h"
00011 
00012 #include "trappertypes.h"
00013 #include "trdb.h"
00014 // #include "featuregui.h"
00015 #include "trappervector.h"
00016 // #include <vector>
00017 #include "featureinfo.h"
00018 // #include <iosfwd>
00019 
00020 class QDataStream;
00021 class QString;
00022 
00023 /** \brief Provides non-spatial attributes to a read. 
00024   * Holds its corresponding read index (recno).
00025   */ 
00026 
00027 class ReadMetaData : public FeatureData
00028 {
00029 public:
00030   ReadMetaData( db_recno_t rec = 0) : FeatureData(rec), beginGood_(0), endGood_(0) {}
00031   ReadMetaData( const ReadMetaData& other );
00032   virtual ~ReadMetaData();
00033 
00034   virtual void print_debug_info();
00035 
00036   virtual void readStream( QDataStream & str );
00037   virtual void writeStream( QDataStream & str );
00038 
00039   virtual void readAttributes( const QXmlAttributes& attr );
00040   virtual void writeXml( ostream& stream );
00041 
00042   TrDb::IndexMap getIndexMap();
00043   //Associate functions for secondary indices
00044   static int getName(Db *dbp, const Dbt *pkey, const Dbt *pdata, Dbt *skey);
00045   //Compare functions for secondary indices
00046   static int bt_compare_name( DB * db, const DBT *dbt1, const DBT *dbt2);
00047 
00048 //   FeatureInfo* info();
00049   std::string uniqueName() { return std::string("ReadMetaData"); }
00050 
00051   void setName( const std::string& n ) { name_ = n; }
00052   void setMate( const std::string& m ) { mate_ = m; }
00053   void setMateLength( const std::size_t& l ) { matelen_ = l; }
00054   void setStrand( const std::string& m ) { strand_ = m; }
00055   void setBeginGood( TR_DNA index ) { beginGood_ = index; }
00056   void setEndGood( TR_DNA index ) { endGood_ = index; }
00057 
00058   std::string name() { return name_; }
00059   std::string mate() { return mate_; }
00060   std::size_t mateLength() { return matelen_; }
00061   std::string strand() { return strand_; }
00062   TR_DNA beginGood() { return beginGood_; }
00063   TR_DNA endGood() { return endGood_; }
00064 
00065 
00066 
00067 
00068 protected:
00069 //   virtual FeatureInfo* makeInfo();
00070   
00071   db_recno_t readRecno;
00072   
00073   FeatureInfo* m_info;
00074   std::string name_;
00075   std::string mate_;
00076   std::size_t matelen_;
00077   std::string strand_;
00078   TR_DNA beginGood_;
00079   TR_DNA endGood_;
00080 public:
00081   TrapperVector<double> tc_vec;
00082   
00083 };
00084 #endif READMETADATA_H

Generated on Fri Jul 17 20:19:29 2009 for ngsview by  doxygen 1.5.1