42 #ifndef EGS_INPUT_STRUCT_
43 #define EGS_INPUT_STRUCT_
69 EGS_SingleInput(
string inputTag,
bool isReq,
const string desc,
const vector<string> vals);
82 void addDependency(shared_ptr<EGS_SingleInput> inp,
string val =
"",
bool isAntiDependency =
false);
85 void addDependency(shared_ptr<EGS_BlockInput> block,
bool isAntiDependency =
false);
88 vector<shared_ptr<EGS_SingleInput>> getDependencyInp();
91 vector<string> getDependencyVal();
94 vector<bool> getDependencyAnti();
97 shared_ptr<EGS_BlockInput> getDependencyBlock();
100 bool getDependencyBlockAnti();
103 const vector<string> getValues();
106 void setValues(
const vector<string> vals);
109 string getDescription();
113 vector<string> requirements;
117 vector<string> values;
118 vector<shared_ptr<EGS_SingleInput>> dependencyInp;
119 vector<string> dependencyVal;
120 vector<bool> dependencyAnti;
121 shared_ptr<EGS_BlockInput> dependencyBlock;
122 bool dependencyBlockAnti;
132 :
public std::enable_shared_from_this<EGS_BlockInput> {
140 EGS_BlockInput(
string blockTit,
bool isReq =
false, shared_ptr<EGS_BlockInput> par =
nullptr);
144 void setTitle(
string blockTit);
150 void setAppName(
string appName);
156 shared_ptr<EGS_SingleInput> addSingleInput(
string inputTag,
bool isReq,
const string desc,
const vector<string> vals = vector<string>());
159 shared_ptr<EGS_BlockInput> addBlockInput(
string blockTit,
bool isReq =
false);
162 shared_ptr<EGS_BlockInput> addBlockInput(shared_ptr<EGS_BlockInput> block);
165 vector<shared_ptr<EGS_SingleInput>> getSingleInputs();
168 vector<shared_ptr<EGS_SingleInput>> getSingleInputs(
string title);
171 vector<shared_ptr<EGS_BlockInput>> getBlockInputs();
174 vector<shared_ptr<EGS_BlockInput>> getBlockInputs(
string title);
177 shared_ptr<EGS_SingleInput> getSingleInput(
string inputTag);
180 shared_ptr<EGS_SingleInput> getSingleInput(
string inputTag,
string title);
183 shared_ptr<EGS_BlockInput> getBlockInput(
string title);
186 void setParent(shared_ptr<EGS_BlockInput> par);
189 shared_ptr<EGS_BlockInput> getParent();
192 shared_ptr<EGS_BlockInput> getLibraryBlock(
string blockTitle,
string libraryName);
195 bool contains(
string inputTag);
198 void addDependency(shared_ptr<EGS_SingleInput> inp,
string val =
"",
bool isAntiDependency =
false);
201 void addDependency(shared_ptr<EGS_BlockInput> block,
bool isAntiDependency =
false);
204 vector<shared_ptr<EGS_SingleInput>> getDependencyInp();
207 vector<string> getDependencyVal();
210 vector<bool> getDependencyAnti();
213 shared_ptr<EGS_BlockInput> getDependencyBlock();
216 bool getDependencyBlockAnti();
221 vector<shared_ptr<EGS_SingleInput>> singleInputs;
222 vector<shared_ptr<EGS_BlockInput>> blockInputs;
223 shared_ptr<EGS_BlockInput> parent;
228 vector<shared_ptr<EGS_SingleInput>> dependencyInp;
229 vector<string> dependencyVal;
230 vector<bool> dependencyAnti;
231 shared_ptr<EGS_BlockInput> dependencyBlock;
232 bool dependencyBlockAnti;
276 shared_ptr<EGS_BlockInput> addBlockInput(
string blockTit,
bool isReq =
false);
279 shared_ptr<EGS_BlockInput> addBlockInput(shared_ptr<EGS_BlockInput> block);
282 void addBlockInputs(vector<shared_ptr<EGS_BlockInput>> blocks);
285 void removeBlockInput(
string blockTitle);
288 void removeBlockInputByApp(
string appName);
291 vector<shared_ptr<EGS_BlockInput>> getBlockInputs();
294 shared_ptr<EGS_BlockInput> getBlockInput(
string title,
string parentTitle =
"");
297 shared_ptr<EGS_BlockInput> getLibraryBlock(
string blockTitle,
string libraryName);
300 vector<string> getLibraryOptions(
string blockTitle);
304 vector<shared_ptr<EGS_BlockInput>> blockInputs;
305 vector<shared_ptr<EGS_BlockInput>> generalBlocks;
Defines the EGS_EXPORT and EGS_LOCAL macros.
#define EGS_EXPORT
Export symbols from the egspp library.