X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/f311fbc3e1436bf248c54225f0743cfa671c4bd7..cfe8322b50c9ef08ffbc3e52b0849bca4cd1d0bf:/GroupBlock.cpp diff --git a/GroupBlock.cpp b/GroupBlock.cpp index 74ec197..716cea6 100644 --- a/GroupBlock.cpp +++ b/GroupBlock.cpp @@ -34,12 +34,17 @@ bool GroupBlock::isGroupBlock() { return true; } +bool GroupBlock::isTopGroupBlock() { + return topGroup; +} + void GroupBlock::setParent(AbstractBlock *_parent) { parent = _parent; if (parent != NULL) { topGroup = false; } } + void GroupBlock::removeAllBlocks() { foreach(AbstractBlock* block, blocks) { if (block->isGroupBlock()) { @@ -58,6 +63,15 @@ void GroupBlock::removeBlock(AbstractBlock* block) { delete block; } +AbstractBlock *GroupBlock::getFunctionalBlockByName(QString name) { + foreach(AbstractBlock* block, blocks) { + if (block->isFunctionalBlock()) { + if (block->getName() == name) return block; + } + } + return NULL; +} + void GroupBlock::parametersValidation(QList *checkedBlocks, QList *blocksToConfigure) { /* @@ -89,3 +103,20 @@ void GroupBlock::removeGenericParameter(QString name) { BlockParameter* p = getParameterFromName(name); if (p != NULL) params.removeAll(p); } + +void GroupBlock::initInputPattern() { + foreach(AbstractInterface* iface, getControlInputs()) { + iface->setOutputPattern(iface->getConnectedFrom()->getOutputPattern()); + } +} + +void GroupBlock::computeOutputPattern(int nbExec) { + + // get the input pattern on each inputs + initInputPattern(); + // find blocks that are connected to that inputs + + foreach(AbstractInterface* iface, getControlOutputs()) { + iface->setOutputPattern(iface->getConnectedFrom()->getOutputPattern()); + } +}