00001 #ifndef CmdLineClient_h_seen
00002 #define CmdLineClient_h_seen
00003
00004
00005 #define DEFAULTPROCFILEPATH "processors"
00006
00007
00008 #define DEFAULTPORT 2023
00009
00010
00011
00012 #define CCAFE_SINGLE "ccafe-single"
00013 #define CCAFE_BATCH "ccafe-batch"
00014 #define CCAFE_CLIENT "ccafe-client"
00015
00017 enum runtype_ {
00019 CLIENT,
00021 INTERACTIVE,
00023 GUI_INTERACTIVE,
00025 HUMANCLIENT,
00028 ONE_PROC_INTERACTIVE,
00031 SERVER,
00034 BATCH
00035 };
00036
00037 typedef runtype_ runtype;
00038
00040 class MachWrapper;
00041 class CmdLineBuilderController2;
00042 class ClientServerSocket;
00043
00047 class CmdLineClient {
00048 private:
00049
00050 CmdLineBuilderController2* controller;
00051
00053 char* procFile;
00054
00056 MachWrapper * mWrap;
00057
00059 int myProcIndex;
00060
00062 char* myProcName;
00063
00065 runtype runType;
00066
00068 int rank;
00070 int size;
00071
00074 int port;
00075
00077 bool debug;
00078
00080 bool stp_initialized;
00081
00082 bool useMPI;
00083
00089 int64_t fortranMPIComm;
00090 bool hasComm;
00091
00092 public:
00093
00094 CmdLineClient();
00095 ~CmdLineClient();
00096 int parse();
00099 void mapIOToFile(const char* outName, const char* errName);
00101 void mapEverythingToTTY();
00105 void mapEverythingToFile(const char* outName, const char* errName);
00107 void remapIO();
00109 void parseArgsX(int argc, char** argv);
00111 void parseArgs(int argc, char** argv);
00112
00114 void dumpMachines();
00115 #ifdef CCAFE_SOCKETS
00116
00117 ClientServerSocket* setupSockets();
00118 #endif // CCAFE_SOCKETS
00119 int main(int argc, char** argv, StaticFactory *sf = 0);
00121 void setName(char *name);
00123 void setRank(int rank);
00125 void setSize(int size);
00127 void setComm(int64_t fComm);
00128
00129 void setInitRunType(runtype_ runType);
00130 void setUseMPI(bool b);
00131 bool getUseMPI();
00132 };
00133
00134
00135
00136
00137 #endif //CmdLineClient_h_seen