]> git.donarmstrong.com Git - mothur.git/blobdiff - commandfactory.hpp
Revert to previous commit
[mothur.git] / commandfactory.hpp
diff --git a/commandfactory.hpp b/commandfactory.hpp
new file mode 100644 (file)
index 0000000..e95db80
--- /dev/null
@@ -0,0 +1,61 @@
+#ifndef COMMANDFACTORY_HPP\r
+#define COMMANDFACTORY_HPP\r
+\r
+/*\r
+ *  commandfactory.h\r
+ *  \r
+ *\r
+ *  Created by Pat Schloss on 10/25/08.\r
+ *  Copyright 2008 Patrick D. Schloss. All rights reserved.\r
+ *\r
+ */\r
+\r
+#include "mothur.h"\r
+#include "mothurout.h"\r
+#include "currentfile.h"\r
+\r
+class Command;\r
+\r
+class CommandFactory {\r
+public:\r
+       static CommandFactory* getInstance();\r
+       Command* getCommand(string, string, string);\r
+       Command* getCommand(string, string);\r
+       Command* getCommand(string);\r
+       //Command* getCommand();\r
+       bool isValidCommand(string);\r
+       bool isValidCommand(string, string);\r
+       void printCommands(ostream&);\r
+       void setOutputDirectory(string o)               {       outputDir = o;  m->setOutputDir(o);     }\r
+       void setInputDirectory(string i)                {       inputDir = i;           }\r
+       void setLogfileName(string n, bool a)   {       logFileName = n;  append = a;           }\r
+       string getLogfileName()                                 {       return logFileName;     }\r
+       bool getAppend()                                                {       return append;                  }\r
+       string getOutputDir()                                   {       return outputDir;               }\r
+       bool MPIEnabled(string);\r
+       map<string, string> getListCommands()   {       return commands;                }\r
+       \r
+private:\r
+       Command* command;\r
+       Command* shellcommand;\r
+       Command* pipecommand;\r
+       \r
+       MothurOut* m;\r
+       CurrentFile* currentFile;\r
+       \r
+       map<string, string> commands;\r
+       map<string, string>::iterator it;\r
+       string outputDir, inputDir, logFileName;\r
+       bool append;\r
+       \r
+    int checkForRedirects(string);\r
+    \r
+       static CommandFactory* _uniqueInstance;\r
+       CommandFactory( const CommandFactory& ); // Disable copy constructor\r
+       void operator=( const CommandFactory& ); // Disable assignment operator\r
+       CommandFactory();\r
+       ~CommandFactory();\r
+\r
+};\r
+\r
+#endif\r