sources.removeAll(block);
return true;
}
+
+bool Graph::createPatterns() {
+ bool ok = true;
+ foreach(AbstractBlock* block, sources) {
+ FunctionalBlock* funBlock = AB_TO_FUN(block);
+ ok = funBlock->createPatterns();
+ if (!ok) return false;
+ }
+
+ foreach(AbstractBlock* block, groups) {
+ GroupBlock* group = AB_TO_GRP(block);
+ foreach(AbstractBlock* inBlock, group->getBlocks()) {
+ if (inBlock->isFunctionalBlock()) {
+ FunctionalBlock* funBlock = AB_TO_FUN(inBlock);
+ ok = funBlock->createPatterns();
+ if (!ok) return false;
+ }
+ }
+ }
+ return true;
+}
+
+void Graph::resetPatternComputed() {
+ foreach(AbstractBlock* block, sources) {
+ block->setPatternComputed(false);
+ }
+ foreach(AbstractBlock* block, groups) {
+ GroupBlock* group = AB_TO_GRP(block);
+ group->setPatternComputed(false);
+ foreach(AbstractBlock* inBlock, group->getBlocks()) {
+ inBlock->setPatternComputed(false);
+ }
+ }
+}