#ifndef FILEOUTPUT_H
#define FILEOUTPUT_H
-#include <iostream>
-#include <fstream>
-#include <iomanip>
-#include <vector>
-#include "utilities.hpp"
+#include "mothur.h"
#include "globaldata.hpp"
using namespace std;
public:
FileOutput(){};
~FileOutput(){};
- virtual void output(int, vector<double>) = 0;
+
virtual void initFile(string) = 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;
+
};
/***********************************************************************/
void output(int, vector<double>);
void resetFile();
string getFileName() { return inName; };
+
+ void initFile(string, vector<string>){};
+ void output(vector<double>) {};
+
private:
string inName;
string outName;
void initFile(string);
void resetFile();
string getFileName() { return inName; };
+
+ void initFile(string, vector<string>) {};
+ void output(vector<double>) {};
+
private:
string outName;
public:
- SharedOneColumnFile(string n, vector<string> g) : inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) {};
+ SharedOneColumnFile(string n) : inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) {};
~SharedOneColumnFile();
void output(int, vector<double>);
void initFile(string);
void resetFile();
string getFileName() { return inName; };
+
+ void initFile(string, vector<string>) {};
+ void output(vector<double>) {};
+
private:
string outName;
void output(int, vector<double>);
void resetFile();
string getFileName() { return inName; };
+
+
+ void initFile(string, vector<string>) {};
+ void output(vector<double>) {};
+
private:
string inName, groupLabel;
string outName;
int counter, numGroup;
};
+/***********************************************************************/
+
+class ColumnFile : public FileOutput {
+
+public:
+ ColumnFile(string n) : FileOutput(), inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) { globaldata = GlobalData::getInstance(); };
+ ~ColumnFile();
+
+ //to make compatible with parent class
+ void output(int, vector<double>){};
+ void initFile(string){};
+
+ void initFile(string, vector<string>);
+ void output(vector<double>);
+ void resetFile();
+ string getFileName() { return inName; };
+private:
+ string inName;
+ string outName;
+ ifstream inFile;
+ ofstream outFile;
+ int counter;
+};
+/***********************************************************************/
#endif
-