#define FILEOUTPUT_H
#include "mothur.h"
-#include "globaldata.hpp"
-
-using namespace std;
+#include "mothurout.h"
/***********************************************************************/
class FileOutput {
public:
- FileOutput(){};
- ~FileOutput(){};
- virtual void output(int, vector<double>) = 0;
+ FileOutput(){ m = MothurOut::getInstance(); }
+ virtual ~FileOutput(){};
+
virtual void initFile(string) = 0;
- virtual void resetFile() = 0;
- virtual string getFileName() = 0;
virtual void initFile(string, vector<string>) = 0;
+ virtual void output(int, vector<double>) = 0;
virtual void output(vector<double>) = 0;
+ virtual void resetFile() = 0;
+ virtual string getFileName() = 0;
protected:
- GlobalData* globaldata;
int renameOk;
+ MothurOut* m;
};
class ThreeColumnFile : public FileOutput {
public:
- ThreeColumnFile(string n) : FileOutput(), inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) { };
+ ThreeColumnFile(string n) : FileOutput(), inName(n), counter(0), outName(n + ".temp") { };
~ThreeColumnFile();
void initFile(string);
void output(int, vector<double>);
void resetFile();
string getFileName() { return inName; };
- void initFile(string, vector<string>) {};
+ void initFile(string, vector<string>){};
void output(vector<double>) {};
private:
public:
- OneColumnFile(string n) : inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) {};
+ OneColumnFile(string n) : inName(n), counter(0), outName(n + ".temp") {};
~OneColumnFile();
void output(int, vector<double>);
void initFile(string);
public:
- SharedOneColumnFile(string n) : inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) {};
+ SharedOneColumnFile(string n) : inName(n), counter(0), outName(n + ".temp") {};
~SharedOneColumnFile();
void output(int, vector<double>);
void initFile(string);
class SharedThreeColumnFile : public FileOutput {
public:
- SharedThreeColumnFile(string n, string groups) : FileOutput(), groupLabel(groups), inName(n), counter(0), numGroup(1), outName(getPathName(n) + ".temp." + getSimpleName(n)) { };
+ SharedThreeColumnFile(string n, string groups) : FileOutput(), groupLabel(groups), inName(n), counter(0), numGroup(1), outName(n + ".temp") { };
~SharedThreeColumnFile();
void initFile(string);
void output(int, vector<double>);
};
/***********************************************************************/
-
-class ThreeColumnFile2 : public FileOutput {
+//used by parsimony, unifrac.weighted and unifrac.unweighted
+class ColumnFile : public FileOutput {
public:
- ThreeColumnFile2(string n) : FileOutput(), inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) { globaldata = GlobalData::getInstance(); };
- ~ThreeColumnFile2();
+ ColumnFile(string n, string i) : FileOutput(), iters(i), inName(n), counter(0), outName(n + ".temp") {};
+ ~ColumnFile();
//to make compatible with parent class
void output(int, vector<double>){};
ifstream inFile;
ofstream outFile;
int counter;
+ string iters;
};
-/***********************************************************************/
+
#endif