X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=fileoutput.h;h=170ee68a8151e9252788364c13a09de58b192815;hp=3f90cd59a8225f94d94aee928fd5c24fa289e108;hb=cf9987b67aa49777a4c91c2d21f96e58bf17aa82;hpb=58cf1d08fee8c64334979075fa57bcafb035a2ed diff --git a/fileoutput.h b/fileoutput.h index 3f90cd5..170ee68 100644 --- a/fileoutput.h +++ b/fileoutput.h @@ -1,27 +1,28 @@ #ifndef FILEOUTPUT_H #define FILEOUTPUT_H -#include -#include -#include -#include -#include "utilities.hpp" -#include "globaldata.hpp" - -using namespace std; +#include "mothur.h" +#include "mothurout.h" /***********************************************************************/ class FileOutput { public: - FileOutput(){}; - ~FileOutput(){}; - virtual void output(int, vector) = 0; + FileOutput(){ m = MothurOut::getInstance(); } + virtual ~FileOutput(){}; + virtual void initFile(string) = 0; + virtual void initFile(string, vector) = 0; + virtual void output(int, vector) = 0; + virtual void output(vector) = 0; virtual void resetFile() = 0; virtual string getFileName() = 0; +protected: + int renameOk; + MothurOut* m; + }; /***********************************************************************/ @@ -29,12 +30,16 @@ public: 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); void resetFile(); string getFileName() { return inName; }; + + void initFile(string, vector){}; + void output(vector) {}; + private: string inName; string outName; @@ -49,12 +54,16 @@ class OneColumnFile : public FileOutput { 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); void initFile(string); void resetFile(); string getFileName() { return inName; }; + + void initFile(string, vector) {}; + void output(vector) {}; + private: string outName; @@ -69,12 +78,16 @@ class SharedOneColumnFile : public FileOutput { 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); void initFile(string); void resetFile(); string getFileName() { return inName; }; + + void initFile(string, vector) {}; + void output(vector) {}; + private: string outName; @@ -90,12 +103,17 @@ private: 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); void resetFile(); string getFileName() { return inName; }; + + + void initFile(string, vector) {}; + void output(vector) {}; + private: string inName, groupLabel; string outName; @@ -104,6 +122,31 @@ private: int counter, numGroup; }; +/***********************************************************************/ +//used by parsimony, unifrac.weighted and unifrac.unweighted +class ColumnFile : public FileOutput { + +public: + 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){}; + void initFile(string){}; + + void initFile(string, vector); + void output(vector); + void resetFile(); + string getFileName() { return inName; }; +private: + string inName; + string outName; + ifstream inFile; + ofstream outFile; + int counter; + string iters; +}; + #endif