]> git.donarmstrong.com Git - mothur.git/blob - commandfactory.hpp
added pipeline commands which involved change to command factory and command class...
[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 \r
16 class Command;\r
17 \r
18 class CommandFactory {\r
19 public:\r
20         static CommandFactory* getInstance();\r
21         Command* getCommand(string, string, string);\r
22         Command* getCommand(string, string);\r
23         Command* getCommand(string);\r
24         //Command* getCommand();\r
25         bool isValidCommand(string);\r
26         bool isValidCommand(string, string);\r
27         void printCommands(ostream&);\r
28         void setOutputDirectory(string o)               {       outputDir = o;  m->setOutputDir(o);     }\r
29         void setInputDirectory(string i)                {       inputDir = i;           }\r
30         void setLogfileName(string n, bool a)   {       logFileName = n;  append = a;           }\r
31         string getLogfileName()                                 {       return logFileName;     }\r
32         bool getAppend()                                                {       return append;                  }\r
33         string getOutputDir()                                   {       return outputDir;               }\r
34         bool MPIEnabled(string);\r
35 \r
36 private:\r
37         Command* command;\r
38         Command* shellcommand;\r
39         Command* pipecommand;\r
40         MothurOut* m;\r
41         map<string, string> commands;\r
42         map<string, string>::iterator it;\r
43         string outputDir, inputDir, logFileName;\r
44         bool append;\r
45         \r
46         static CommandFactory* _uniqueInstance;\r
47         CommandFactory( const CommandFactory& ); // Disable copy constructor\r
48         void operator=( const CommandFactory& ); // Disable assignment operator\r
49         CommandFactory();\r
50         ~CommandFactory();\r
51 \r
52 };\r
53 \r
54 #endif\r