]> git.donarmstrong.com Git - mothur.git/blobdiff - fileoutput.h
broke up globaldata and moved error checking and help into commands
[mothur.git] / fileoutput.h
index 6eb5e8d708eca6f102c7a562507ac92e1553e336..209dd1b1772cc1f58e18cce4826ffcddd541d278 100644 (file)
@@ -1,15 +1,9 @@
 #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;
-
 /***********************************************************************/
 
 class FileOutput {
@@ -17,11 +11,18 @@ class FileOutput {
 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;
+
 };     
        
 /***********************************************************************/
@@ -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(getPathName(n) + ".temp") { };
        ~ThreeColumnFile();
        void initFile(string);
        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;
@@ -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(getPathName(n) + ".temp") {};
        ~OneColumnFile();
        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;
@@ -69,12 +78,16 @@ class SharedOneColumnFile : public FileOutput {
        
        
 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") {};
        ~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;
@@ -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(getPathName(n) + ".temp") {      };
        ~SharedThreeColumnFile();
        void initFile(string);
        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;
@@ -104,7 +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(getPathName(n) + ".temp") { 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;
+       string iters;
+};
 
+/***********************************************************************/
 
 #endif
-