]> git.donarmstrong.com Git - mothur.git/blob - fileoutput.h
added mothur.h and fixed includes in many files
[mothur.git] / fileoutput.h
1 #ifndef FILEOUTPUT_H
2 #define FILEOUTPUT_H
3
4 #include "mothur.h"
5 #include "utilities.hpp"
6 #include "globaldata.hpp"
7
8 using namespace std;
9
10 /***********************************************************************/
11
12 class FileOutput {
13         
14 public:
15         FileOutput(){};
16         ~FileOutput(){};
17         virtual void output(int, vector<double>) = 0;
18         virtual void initFile(string) = 0;
19         virtual void resetFile() = 0;
20         virtual string getFileName() = 0;
21
22 };      
23         
24 /***********************************************************************/
25
26 class ThreeColumnFile : public FileOutput {
27         
28 public:
29         ThreeColumnFile(string n) : FileOutput(), inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) { };
30         ~ThreeColumnFile();
31         void initFile(string);
32         void output(int, vector<double>);
33         void resetFile();
34         string getFileName()    { return inName;        };
35 private:
36         string inName;
37         string outName;
38         ifstream inFile;
39         ofstream outFile;
40         int counter;
41 };
42
43
44 /***********************************************************************/
45 class OneColumnFile : public FileOutput {
46         
47         
48 public:
49         OneColumnFile(string n) : inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) {};
50         ~OneColumnFile();
51         void output(int, vector<double>);
52         void initFile(string);
53         void resetFile();
54         string getFileName()    { return inName;        };
55
56 private:
57         string outName;
58         ifstream inFile;
59         string inName;
60         ofstream outFile;
61         int counter;
62 };
63
64 /***********************************************************************/
65 class SharedOneColumnFile : public FileOutput {
66         
67         
68 public:
69         SharedOneColumnFile(string n) : inName(n), counter(0), outName(getPathName(n) + ".temp." + getSimpleName(n)) {};
70         ~SharedOneColumnFile();
71         void output(int, vector<double>);
72         void initFile(string);
73         void resetFile();
74         string getFileName()    { return inName;        };
75
76 private:
77         string outName;
78         ifstream inFile;
79         string inName;
80         ofstream outFile;
81         int counter;
82                 
83 };
84
85 /***********************************************************************/
86
87 class SharedThreeColumnFile : public FileOutput {
88         
89 public:
90         SharedThreeColumnFile(string n, string groups) : FileOutput(), groupLabel(groups), inName(n), counter(0), numGroup(1), outName(getPathName(n) + ".temp." + getSimpleName(n)) {  };
91         ~SharedThreeColumnFile();
92         void initFile(string);
93         void output(int, vector<double>);
94         void resetFile();
95         string getFileName()    { return inName;        };
96 private:
97         string inName, groupLabel;
98         string outName;
99         ifstream inFile;
100         ofstream outFile;
101         int counter, numGroup;
102 };
103
104
105
106 #endif