]> AND Private Git Repository - blast.git/blobdiff - Graph.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
started adding delta comput
[blast.git] / Graph.cpp
index a4dd676142370731391ddb74333e256195e6ea90..d3fd276d6dc9e6191a5485863cb4e0aae6f0ac9d 100644 (file)
--- a/Graph.cpp
+++ b/Graph.cpp
@@ -107,3 +107,37 @@ bool Graph::removeSourceBlock(FunctionalBlock *block) {
   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);
+    }
+  }
+}