X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothurout.h;h=e1c8222ae1938e8b63422cc9ee6567d309b668f5;hb=57b3c96832667c1b70d4d526331f52e3d49e8237;hp=6654455063c37b56030a89c09c8d6ee71dcdf4be;hpb=ca9ac1d80c62f57270b0dcd49410ebe08a8aecd6;p=mothur.git diff --git a/mothurout.h b/mothurout.h index 6654455..e1c8222 100644 --- a/mothurout.h +++ b/mothurout.h @@ -12,7 +12,22 @@ #include "mothur.h" - +/***********************************************/ +struct logger { + + logger() {} + ~logger() {} + + template< class T > + logger& operator <<( const T& o ) { + cout << o; return *this; + } + + logger& operator<<(ostream& (*m)(ostream&) ) { + cout << m; return *this; + } + +}; /***********************************************/ class MothurOut { @@ -21,8 +36,10 @@ class MothurOut { static MothurOut* getInstance(); void setFileName(string); - void mothurOut(string); - void mothurOutEndLine(); + void mothurOut(string); //writes to cout and the logfile + void mothurOutEndLine(); //writes to cout and the logfile + void mothurOut(string, ofstream&); //writes to the ofstream, cout and the logfile + void mothurOutEndLine(ofstream&); //writes to the ofstream, cout and the logfile void mothurOutJustToLog(string); void errorOut(exception&, string, string); void closeLog(); @@ -35,19 +52,33 @@ class MothurOut { void setReleaseDate(string r) { releaseDate = r; } string getVersion() { return version; } void setVersion(string r) { version = r; } - vector Groups; + + void addGroup(string g) { Groups.push_back(g); } + void setGroups(vector& g) { sort(g.begin(), g.end()); Groups = g; } + void clearGroups() { Groups.clear(); } + int getNumGroups() { return Groups.size(); } + vector getGroups() { sort(Groups.begin(), Groups.end()); return Groups; } + void addAllGroup(string g) { namesOfGroups.push_back(g); } + void setAllGroups(vector& g) { sort(g.begin(), g.end()); namesOfGroups = g; } + void clearAllGroups() { namesOfGroups.clear(); } + int getNumAllGroups() { return namesOfGroups.size(); } + + vector getAllGroups() { sort(namesOfGroups.begin(), namesOfGroups.end()); return namesOfGroups; } vector Treenames; map names; - vector namesOfGroups; - string saveNextLabel, argv; + vector binLabelsInFile; + vector currentBinLabels; + string saveNextLabel, argv, sharedHeaderMode; + bool printedHeaders, commandInputsConvertError; //functions from mothur.h //file operations - vector divideFile(string, int&); - vector setFilePosEachLine(string, int&); - vector setFilePosFasta(string, int&); + vector divideFile(string, int&); + int divideFile(string, int&, vector&); + vector setFilePosEachLine(string, int&); + vector setFilePosFasta(string, int&); string sortFile(string, string); - void appendFiles(string, string); + int appendFiles(string, string); int renameFile(string, string); //oldname, newname string getFullPathName(string); string hasPath(string); @@ -65,6 +96,14 @@ class MothurOut { void gobble(istream&); void gobble(istringstream&); map readNames(string); + int readNames(string, map&); + int readNames(string, map >&); + int readNames(string, vector&, map&); + int mothurRemove(string); + bool mothurConvert(string, int&); //use for converting user inputs. Sets commandInputsConvertError to true if error occurs. Engines check this. + bool mothurConvert(string, float&); //use for converting user inputs. Sets commandInputsConvertError to true if error occurs. Engines check this. + bool mothurConvert(string, double&); //use for converting user inputs. Sets commandInputsConvertError to true if error occurs. Engines check this. + //searchs and checks bool checkReleaseVersion(ifstream&, string); @@ -74,7 +113,10 @@ class MothurOut { void getNumSeqs(ifstream&, int&); int getNumSeqs(ifstream&); int getNumNames(string); + int getNumChar(string, char); bool isTrue(string); + bool isContainingOnlyDigits(string); + bool isNumeric1(string); //string manipulation @@ -85,6 +127,7 @@ class MothurOut { void splitAtDash(string&, set&); void splitAtDash(string&, vector&); void splitAtChar(string&, vector&, char); + int removeConfidences(string&); //math operation int factorial(int num); @@ -92,9 +135,10 @@ class MothurOut { float ceilDist(float, int); float roundDist(float, int); unsigned int fromBase36(string); + int getRandomIndex(int); //highest int control_pressed; - bool executing, runParse, jumble; + bool executing, runParse, jumble, gui, mothurCalling; //current files - if you add a new type you must edit optionParser->getParameters, get.current command and mothurOut->printCurrentFiles/clearCurrentFiles. string getPhylipFile() { return phylipfile; } @@ -116,6 +160,7 @@ class MothurOut { string getOligosFile() { return oligosfile; } string getAccnosFile() { return accnosfile; } string getTaxonomyFile() { return taxonomyfile; } + string getFlowFile() { return flowfile; } string getProcessors() { return processors; } void setListFile(string f) { listfile = getFullPathName(f); } @@ -137,9 +182,11 @@ class MothurOut { void setOligosFile(string f) { oligosfile = getFullPathName(f); } void setAccnosFile(string f) { accnosfile = getFullPathName(f); } void setTaxonomyFile(string f) { taxonomyfile = getFullPathName(f); } + void setFlowFile(string f) { flowfile = getFullPathName(f); } void setProcessors(string p) { processors = p; } void printCurrentFiles(); + bool hasCurrentFiles(); void clearCurrentFiles(); private: @@ -168,7 +215,13 @@ class MothurOut { accnosfile = ""; taxonomyfile = ""; processors = "1"; - }; + flowfile = ""; + gui = false; + printedHeaders = false; + commandInputsConvertError = false; + mothurCalling = false; + sharedHeaderMode = ""; + } ~MothurOut(); string logFileName; @@ -176,9 +229,10 @@ class MothurOut { string releaseDate, version; string accnosfile, phylipfile, columnfile, listfile, rabundfile, sabundfile, namefile, groupfile, designfile, taxonomyfile; - string orderfile, treefile, sharedfile, ordergroupfile, relabundfile, fastafile, qualfile, sfffile, oligosfile, processors; + string orderfile, treefile, sharedfile, ordergroupfile, relabundfile, fastafile, qualfile, sfffile, oligosfile, processors, flowfile; - + vector Groups; + vector namesOfGroups; ofstream out; int mem_usage(double&, double&);