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