]> git.donarmstrong.com Git - mothur.git/blobdiff - mothur.h
fixed splash page citation
[mothur.git] / mothur.h
index 5b519bb2111d27259d1969f81e41b805e4a33935..ba88f71fabffced9509deed545cecde7228b2b63 100644 (file)
--- a/mothur.h
+++ b/mothur.h
 #include <cerrno>
 #include <ctime>
 #include <limits>
-#include <unistd.h>
+
 
 #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
        #include <sys/wait.h>
+       #include <unistd.h>
 #endif
 
 using namespace std;
@@ -69,6 +70,9 @@ struct IntNode {
        int rcoef;
        IntNode* left;
        IntNode* right;
+       
+       IntNode(int lv, int rv, IntNode* l, IntNode* r) : lvalue(lv), rvalue(rv), left(l), right(r) {};
+       IntNode() {};
 };
 
 struct ThreadNode {
@@ -77,6 +81,14 @@ struct ThreadNode {
        IntNode* right;
 };
 
+/************************************************************/
+struct clusterNode {
+       int numSeq;
+       int parent;
+       int smallChild; //used to make linkTable work with list and rabund. represents bin number of this cluster node
+       clusterNode(int num, int par, int kid) : numSeq(num), parent(par), smallChild(kid) {};
+};
+
 /***********************************************************************/
 
 // snagged from http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.2
@@ -170,6 +182,16 @@ inline int openOutputFileAppend(string fileName, ofstream& fileHandle){
 }
 /***********************************************************************/
 
+inline void gobble(istream& f){
+       
+       char d;
+    while(isspace(d=f.get()))          {;}
+       f.putback(d);
+       
+}
+
+/***********************************************************************/
+
 inline string getline(ifstream& fileHandle) {
        try {
        
@@ -180,7 +202,7 @@ inline string getline(ifstream& fileHandle) {
                        char c = fileHandle.get(); 
                        
                        //are you at the end of the line
-                       if ((c == '\n') || (c == '\r') || (c == '\f')){   break;        }       
+                       if ((c == '\n') || (c == '\r') || (c == '\f')){  break; }       
                        else {          line += c;              }
                }
                
@@ -256,7 +278,7 @@ inline void errorOut(exception& e, string object, string function) {
        
                mothurOut("Error: ");
                mothurOut(toString(e.what()));
-               mothurOut(" has occurred in the " + object + " class function " + function + ". Please contact Pat Schloss at pschloss@microbio.umass.edu, and be sure to include the mothur.logFile with your inquiry.");
+               mothurOut(" has occurred in the " + object + " class function " + function + ". Please contact Pat Schloss at mothur.bugs@gmail.com, and be sure to include the mothur.logFile with your inquiry.");
                mothurOutEndLine();
        
 }
@@ -264,15 +286,6 @@ inline void errorOut(exception& e, string object, string function) {
 
 
 
-/***********************************************************************/
-
-inline void gobble(istream& f){
-       
-       char d;
-    while(isspace(d=f.get()))          {;}
-       f.putback(d);
-       
-}
 /***********************************************************************/
 
 inline bool isTrue(string f){
@@ -423,6 +436,10 @@ inline int openInputFile(string fileName, ifstream& fileHandle){
                return 1;
        }
        else {
+               //check for blank file
+               gobble(fileHandle);
+               if (fileHandle.eof()) { mothurOut(fileName + " is blank. Please correct."); mothurOutEndLine();  return 1;  }
+               
                return 0;
        }