// testers
bool isGroupBlock();
+ bool isTopGroupBlock();
inline bool isTop() { return topGroup; }
// others
inline void addBlock(AbstractBlock* block) { blocks.append(block); }
void removeBlock(AbstractBlock* block);
+ AbstractBlock* getFunctionalBlockByName(QString name);
+
void removeAllBlocks();
void parametersValidation(QList<AbstractBlock *> *checkedBlocks, QList<AbstractBlock*>* blocksToConfigure);
void addGenericParameter(QString name, QString type, QString value);
// public attributes
static int counter;
-private:
+ bool computeOutputPattern(int nbExec = -1);
+
+private:
+ // patterns
+ /*!
+ * \brief initInputPattern
+ * Since input GroupInterface are just tunnels to input interfaces of inner blocks, they must
+ * have an output pattern that can be provided to inner interfaces. That outpu pattern is just
+ * found by taking the output pattern of the connectedFrom interface.
+ */
+ void initInputPattern();
+
+
bool topGroup;
QList<AbstractBlock*> blocks; // contains instances of FunctionalBlock or GroupBlock that are children of this group