]> git.donarmstrong.com Git - mothur.git/blob - commandfactory.hpp
Revert to previous commit
[mothur.git] / commandfactory.hpp
1 #ifndef COMMANDFACTORY_HPP\r
2 #define COMMANDFACTORY_HPP\r
3 \r
4 /*\r
5  *  commandfactory.h\r
6  *  \r
7  *\r
8  *  Created by Pat Schloss on 10/25/08.\r
9  *  Copyright 2008 Patrick D. Schloss. All rights reserved.\r
10  *\r
11  */\r
12 \r
13 #include "mothur.h"\r
14 #include "mothurout.h"\r
15 #include "currentfile.h"\r
16 \r
17 class Command;\r
18 \r
19 class CommandFactory {\r
20 public:\r
21         static CommandFactory* getInstance();\r
22         Command* getCommand(string, string, string);\r
23         Command* getCommand(string, string);\r
24         Command* getCommand(string);\r
25         //Command* getCommand();\r
26         bool isValidCommand(string);\r
27         bool isValidCommand(string, string);\r
28         void printCommands(ostream&);\r
29         void setOutputDirectory(string o)               {       outputDir = o;  m->setOutputDir(o);     }\r
30         void setInputDirectory(string i)                {       inputDir = i;           }\r
31         void setLogfileName(string n, bool a)   {       logFileName = n;  append = a;           }\r
32         string getLogfileName()                                 {       return logFileName;     }\r
33         bool getAppend()                                                {       return append;                  }\r
34         string getOutputDir()                                   {       return outputDir;               }\r
35         bool MPIEnabled(string);\r
36         map<string, string> getListCommands()   {       return commands;                }\r
37         \r
38 private:\r
39         Command* command;\r
40         Command* shellcommand;\r
41         Command* pipecommand;\r
42         \r
43         MothurOut* m;\r
44         CurrentFile* currentFile;\r
45         \r
46         map<string, string> commands;\r
47         map<string, string>::iterator it;\r
48         string outputDir, inputDir, logFileName;\r
49         bool append;\r
50         \r
51     int checkForRedirects(string);\r
52     \r
53         static CommandFactory* _uniqueInstance;\r
54         CommandFactory( const CommandFactory& ); // Disable copy constructor\r
55         void operator=( const CommandFactory& ); // Disable assignment operator\r
56         CommandFactory();\r
57         ~CommandFactory();\r
58 \r
59 };\r
60 \r
61 #endif\r