]> git.donarmstrong.com Git - mothur.git/blob - datavector.hpp
adding labels to list file.
[mothur.git] / datavector.hpp
1 #ifndef datavector_h
2 #define datavector_h
3
4
5 #include "mothur.h"
6 #include "mothurout.h"
7
8 /* This class is parent to listvector, ordervector, rabundvector, sabundvector, sharedordervector, sharedrabundvector, sharedsabundvector. 
9         The child classes all contain OTU information in different forms. */
10         
11
12 class RAbundVector;
13 class SAbundVector;
14 class OrderVector;
15 class SharedListVector;
16 class SharedOrderVector;
17 class SharedSAbundVector;
18 class SharedRAbundVector;
19 class SharedRAbundFloatVector;
20 class GroupMap;
21
22 class DataVector {
23         
24 public:
25         DataVector(){ m = MothurOut::getInstance(); }// : maxRank(0), numBins(0), numSeqs(0){};
26         DataVector(string l) : label(l) { m = MothurOut::getInstance();};
27         DataVector(const DataVector& dv) : label(dv.label){ m = MothurOut::getInstance();};//, maxRank(dv.maxRank), numBins(dv.numBins), numSeqs(dv.numSeqs) {};
28         DataVector(ifstream&) {m = MothurOut::getInstance();}
29         DataVector(ifstream&, GroupMap*){m = MothurOut::getInstance();}
30         virtual ~DataVector(){};
31         
32 //      virtual int getNumBins()        {       return numBins;         }
33 //      virtual int getNumSeqs()        {       return numSeqs;         }
34 //      virtual int getMaxRank()        {       return maxRank;         }
35         
36         virtual void resize(int) = 0;
37         virtual int size()      = 0;
38         virtual void print(ostream&) = 0;
39         virtual void printHeaders(ostream&) {};
40         virtual void clear() = 0;
41         
42         void setLabel(string l)         {       label = l;                      }
43         string getLabel()                       {       return label;           }
44
45         virtual RAbundVector getRAbundVector() = 0;
46         virtual SAbundVector getSAbundVector() = 0;
47         virtual OrderVector getOrderVector(map<string,int>* hold = NULL) = 0;
48         
49 protected:
50         string label;
51         MothurOut* m;
52 //      int maxRank;
53 //      int numBins;
54 //      int numSeqs;    
55 };
56
57 /***********************************************************************/
58
59 #endif