-
Notifications
You must be signed in to change notification settings - Fork 4
/
ProgramOptions.hpp
137 lines (106 loc) · 2.46 KB
/
ProgramOptions.hpp
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
/**
* @file ProgramOptions.hpp
* @brief Declaration of functionality for parsing command line options.
* @author Ankit Srivastava <[email protected]>
*
* Copyright 2020 Georgia Institute of Technology
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef PROGRAMOPTIONS_HPP_
#define PROGRAMOPTIONS_HPP_
#include <string>
#include <boost/program_options.hpp>
namespace po = boost::program_options;
/**
* Utility class for parsing command line arguments.
*/
class ProgramOptions {
public:
ProgramOptions();
void
parse(int, char**);
uint32_t
numVars() const;
uint32_t
numObs() const;
const std::string&
dataFile() const;
bool
parallelRead() const;
bool
colObs() const;
bool
varNames() const;
bool
obsIndices() const;
char
separator() const;
const std::string&
algoName() const;
const std::string&
targetVar() const;
bool
discoverMB() const;
bool
learnNetwork() const;
const std::string&
outputFile() const;
bool
directEdges() const;
double
alpha() const;
uint32_t
maxConditioning() const;
double
imbalanceThreshold() const;
const std::string&
counterType() const;
bool
forceParallel() const;
bool
hostNames() const;
bool
warmupMPI() const;
const std::string&
logLevel() const;
const std::string&
logFile() const;
~ProgramOptions();
private:
po::options_description m_desc;
std::string m_logLevel;
std::string m_logFile;
std::string m_dataFile;
std::string m_algoName;
std::string m_targetVar;
std::string m_outputFile;
std::string m_counterType;
double m_alpha;
double m_imbalanceThreshold;
uint32_t m_numVars;
uint32_t m_numObs;
uint32_t m_maxConditioning;
char m_separator;
bool m_parallelRead;
bool m_colObs;
bool m_varNames;
bool m_obsIndices;
bool m_discoverMB;
bool m_learnNetwork;
bool m_directEdges;
bool m_forceParallel;
bool m_hostNames;
bool m_warmupMPI;
}; // class ProgramOptions
#endif // PROGRAMOPTIONS_HPP_