42 EGS_InputStruct::EGS_InputStruct() {}
44 EGS_InputStruct::~EGS_InputStruct() {}
47 blockInputs.push_back(make_shared<EGS_BlockInput>(blockTit, isReq,
nullptr));
49 return blockInputs.back();
53 blockInputs.push_back(block);
55 return blockInputs.back();
59 blockInputs.insert(blockInputs.end(), blocks.begin(), blocks.end());
63 auto it = blockInputs.begin();
64 while (it != blockInputs.end()) {
65 if ((*it)->getTitle() == title) {
66 it = blockInputs.erase(it);
74 auto it = blockInputs.begin();
75 while (it != blockInputs.end()) {
76 if ((*it)->getAppName() == appName) {
77 it = blockInputs.erase(it);
90 for (
auto &block: blockInputs) {
91 if (egsEquivStr(block->getTitle(), title)) {
97 for (
auto &block: blockInputs) {
99 if ((egsEquivStr(title,
"planar scoring") || egsEquivStr(title,
"spectrum")) && !egsEquivStr(block->getTitle(), parentTitle.c_str())) {
103 auto foundBlock = block->getBlockInput(title);
115 auto libraryBlock = make_shared<EGS_BlockInput>();
116 for (
auto &block : blockInputs) {
117 libraryBlock = block->getLibraryBlock(blockTitle, libraryName);
129 vector<string> libOptions;
130 for (
auto &block : blockInputs) {
134 for (
auto &block2 : block->getBlockInputs()) {
135 if (block2 && (block2->getTitle() == blockTitle)) {
136 vector<string> libAr = block2->getSingleInput(
"library")->getValues();
137 for (
auto &lib : libAr) {
138 if (lib.size() > 0) {
139 libOptions.push_back(lib);
148 if (libOptions.size() < 1) {
149 for (
auto &block : blockInputs) {
151 if (block && (block->getTitle() == blockTitle ||
153 (egsEquivStr(block->getTitle(),
"shape") && (egsEquivStr(blockTitle,
"target shape") || egsEquivStr(blockTitle,
"source shape"))))) {
154 vector<string> libAr = block->getSingleInput(
"library")->getValues();
155 for (
auto &lib : libAr) {
156 if (lib.size() > 0) {
157 libOptions.push_back(lib);
168 EGS_BlockInput::EGS_BlockInput() {}
170 EGS_BlockInput::EGS_BlockInput(
string blockTit,
bool isReq, shared_ptr<EGS_BlockInput> par) {
171 blockTitle = blockTit;
177 EGS_BlockInput::~EGS_BlockInput() {}
180 blockTitle = blockTit;
188 application = appName;
199 std::remove_if(singleInputs.begin(), singleInputs.end(),
200 [&](
const std::shared_ptr<EGS_SingleInput> &inp) {
201 return inp && egsEquivStr(inp->getTag(), inputTag);
205 singleInputs.push_back(make_shared<EGS_SingleInput>(inputTag, isReq, desc, vals));
206 return singleInputs.back();
210 blockInputs.push_back(make_shared<EGS_BlockInput>(blockTit, isReq, shared_from_this()));
212 return blockInputs.back();
216 block->setParent(shared_from_this());
217 blockInputs.push_back(block);
219 return blockInputs.back();
227 if (egsEquivStr(blockTitle, title) || (parent !=
nullptr && egsEquivStr(parent->getTitle(),
"media definition") && egsEquivStr(blockTitle,
"pegsless")) ||
229 (egsEquivStr(blockTitle,
"shape") && (egsEquivStr(title,
"target shape") || egsEquivStr(title,
"source shape"))) ||
231 (egsEquivStr(blockTitle,
"myMediumName"))
236 for (
auto &block: blockInputs) {
237 auto inp = block->getSingleInputs(title);
238 if (inp.size() > 0) {
243 for (
auto &block: blockInputs) {
244 auto result = block->getBlockInputs(title);
245 if(result.size() > 0) {
246 auto inp = block->getSingleInputs(title);
260 if (egsEquivStr(blockTitle, title) || (parent !=
nullptr && egsEquivStr(parent->getTitle(),
"media definition") && egsEquivStr(blockTitle,
"pegsless")) ||
262 (egsEquivStr(blockTitle,
"shape") && (egsEquivStr(title,
"target shape") || egsEquivStr(title,
"source shape")))) {
266 for (
auto &block: blockInputs) {
267 if (egsEquivStr(block->getTitle(), title)) {
268 return block->getBlockInputs();
277 for (
auto &inp : singleInputs) {
279 if (inp && egsEquivStr(inp->getTag(), inputTag)) {
285 for (
auto &block: blockInputs) {
286 auto inp = block->getSingleInput(inputTag);
297 if (egsEquivStr(blockTitle, title) || (parent !=
nullptr && egsEquivStr(parent->getTitle(),
"media definition") && egsEquivStr(blockTitle,
"pegsless")) ||
299 (egsEquivStr(blockTitle,
"shape") && (egsEquivStr(title,
"target shape") || egsEquivStr(title,
"source shape"))) ||
301 (egsEquivStr(blockTitle,
"myMediumName"))
303 for (
auto &inp: singleInputs) {
305 if (inp && egsEquivStr(inp->getTag(), inputTag)) {
313 auto inp = block->getSingleInput(inputTag);
324 if (egsEquivStr(blockTitle, title)) {
325 return shared_from_this();
328 for (
auto &block: blockInputs) {
329 if (egsEquivStr(block->getTitle(), title)) {
332 else if (egsEquivStr(block->getTitle(),
"shape") && (egsEquivStr(title,
"source shape") || egsEquivStr(title,
"target shape"))) {
338 auto foundBlock = block->getBlockInput(title);
346 if(parent !=
nullptr && egsEquivStr(parent->getTitle(),
"media definition") && egsEquivStr(blockTitle,
"pegsless")) {
347 return shared_from_this();
365 for (
auto &inp: singleInputs) {
369 if (egsEquivStr(inp->getTag(),
"library")) {
370 if (inp->getValues().size() && egsEquivStr(inp->getValues().front(), libraryName)) {
371 return shared_from_this();
380 for (
auto &block: blockInputs) {
381 auto libraryBlock = block->getLibraryBlock(blockTitle, libraryName);
390 for (
auto &inp: singleInputs) {
394 if (egsEquivStr(inp->getTag(), inputTag)) {
402 dependencyInp.push_back(inp);
403 dependencyVal.push_back(val);
404 dependencyAnti.push_back(isAntiDependency);
408 dependencyBlock = block;
409 dependencyBlockAnti = isAntiDependency;
413 return dependencyInp;
417 return dependencyVal;
421 return dependencyAnti;
425 return dependencyBlock;
429 return dependencyBlockAnti;
432 EGS_SingleInput::EGS_SingleInput() {}
434 EGS_SingleInput::EGS_SingleInput(
string inputTag,
bool isReq,
const string desc,
const vector<string> vals) {
441 EGS_SingleInput::~EGS_SingleInput() {}
444 dependencyInp.push_back(inp);
445 dependencyVal.push_back(val);
446 dependencyAnti.push_back(isAntiDependency);
450 dependencyBlock = block;
451 dependencyBlockAnti = isAntiDependency;
455 return dependencyInp;
459 return dependencyVal;
463 return dependencyAnti;
467 return dependencyBlock;
471 return dependencyBlockAnti;
Global egspp functions header file.