forked from Conedy/Conedy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
commandLineArguments.h
141 lines (102 loc) · 2.3 KB
/
commandLineArguments.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#ifndef commanLineArguments_h
#define commanLineArguments_h commanLineArguments_h
#include <vector>
#include <string>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
using namespace std;
//! Klasse, die die Kommandozeilen-Argumente, mit denen Conedy aufgerufen wurde speichert.
class commandLineArguments
{
public:
static vector <string> arg;
public:
static void initialize ( int argc,char **argv )
{
string dummy;
for (int i = 0; i< argc; i++)
{
dummy = argv[i];
arg.push_back(dummy);
}
if (argc == 1)
arg.push_back("noFilename");
}
static string getStringArg(unsigned int argNum)
{
if (argNum < arg.size())
return arg[argNum];
else
{
cerr << "FEHLER: Argumentennummer zu groß! [0:" << arg.size() << ")" << endl;
return "";
}
}
static double getDoubleArg(unsigned int argNum)
{
istringstream isstr;
if (argNum < arg.size())
{
isstr.str(arg[argNum]);
double temp;
isstr >> temp;
return temp;
}
else
{
cerr << "FEHLER: Argumentennummer zu groß! [0:" << arg.size() << ")" << endl;
return 0.0;
}
}
};
//! Klasse, die für Neurocondor eine eindeutige Jobnummer generiert. Die Zahl ist im Homeverzeichnis in der Datei .conedy gespeichert.
class uniqueNumber
{
public:
static int number;
static void initialize()
{
/*std::stringstream ssCommand;
string homePath;
homePath = getenv("HOME");
ssCommand << "scp redwood2:/home/condor/.conedy " << homePath << "/.conedy";
if (system(ssCommand.str().c_str()))
{
cout << "scp redwood2 to home failed! (for unique number.)" << endl;
exit (1);
}
ssCommand.clear();
*/
stringstream ss;
ss << getenv("HOME")<< "/.conedy";
ifstream in(ss.str().c_str());
if (!in.is_open())
{
number = 0;
}
else
{
in >> number;
number++;
in.close();
}
ofstream out(ss.str().c_str());
out << number;
out.close();
/*if (system("scp $HOME/.conedy redwood2:/home/condor/.conedy"))
{
cout << "scp home to redwood2 failed! (for unique number.)" << endl;
exit (1);
}
if (system("ssh redwood2 chmod 666 /home/condor/.conedy"))
{
cout << "ssh redwood2:chmod failed! (for unique number)";
exit(1);
}
*/
}
};
#endif