]> git.donarmstrong.com Git - mothur.git/blob - datavector.hpp
426a75728cf615bc9baf8e257b3dcb8bea0ec15c
[mothur.git] / datavector.hpp
1 #ifndef datavector_h
2 #define datavector_h
3
4 using namespace std;
5
6 #include <iostream>
7 #include <string>
8 #include <vector>
9 #include <map>
10
11 /* This class is parent to listvector, ordervector, rabundvector, sabundvector, sharedordervector, sharedrabundvector, sharedsabundvector. 
12         The child classes all contain OTU information in different forms. */
13         
14
15 class RAbundVector;
16 class SAbundVector;
17 class OrderVector;
18 class SharedListVector;
19 class SharedOrderVector;
20 class SharedSAbundVector;
21 class SharedRAbundVector;
22
23 class DataVector {
24         
25 public:
26         DataVector(){};// : maxRank(0), numBins(0), numSeqs(0){};
27         DataVector(string l) : label(l) {};
28         DataVector(const DataVector& dv) : label(dv.label){};//, maxRank(dv.maxRank), numBins(dv.numBins), numSeqs(dv.numSeqs) {};
29         DataVector(ifstream&);
30         ~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         
40         void setLabel(string l)         {       label = l;                      }
41         string getLabel()                       {       return label;           }
42
43         //virtual RAbundVector getRAbundVector() = 0;
44         virtual SAbundVector getSAbundVector() = 0;
45         virtual OrderVector getOrderVector(map<string,int>* hold = NULL) = 0;
46         
47 protected:
48         string label;
49 //      int maxRank;
50 //      int numBins;
51 //      int numSeqs;    
52 };
53
54 /***********************************************************************/
55
56 #endif