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

Private GIT Repository
started to include patterns in implementation
[blast.git] / FunctionalBlock.h
index 13602444071017cfaf07698ff89cb74cb1224cd0..9852eb7b33e25c89f94733316066b6e39cc3f1c1 100644 (file)
@@ -32,6 +32,7 @@ public:
 \r
   // testers\r
   bool isFunctionalBlock();\r
 \r
   // testers\r
   bool isFunctionalBlock();\r
+  bool isSourceBlock(); //! a source block has no parent and has no data inputs\r
 \r
   // others\r
 \r
 \r
   // others\r
 \r
@@ -40,8 +41,37 @@ public:
 \r
   QString getReferenceXmlFile();\r
   QString getReferenceHashMd5();\r
 \r
   QString getReferenceXmlFile();\r
   QString getReferenceHashMd5();\r
-\r
+  \r
+  // patterns\r
+  void initConsumptionPattern(); // initialize a char** from patterns defined for each interface\r
+  void initProductionPattern(); // initialize a char** from patterns defined for each interface\r
+  void clearConsumptionPattern();\r
+  void clearProductionPattern();\r
+  \r
 private:  \r
 private:  \r
+  // patterns\r
+  void computeOutputPattern(int nbExec = -1);\r
+  bool isValidDataGroup(char** pattern, int nbPorts, int clock);\r
+  /*!\r
+   * \brief combinePatterns\r
+   * \param patternSrc the pattern that must be combined with patternDest (patternDest = patternDest OR patternSrc)  \r
+   * \param srcCol the column index within patternSrc\r
+   * \param patternDest the pattern that is modified by the combination (patternDest = patternDest OR patternSrc)\r
+   * \param destClock the column index within patternDest\r
+   * \param nbCols the numer of columns to combine\r
+   * \param nbPorts the number of rows in both patterns\r
+   * BEWARE: no check is done if nbCols is consistent with the real length of both patterns, thus an access outside\r
+   * the patterns is possible.\r
+   */\r
+  void combinePatterns(char** patternSrc, int srcCol, char** patternDest, int destCol, int nbCols, int nbPorts );\r
+\r
+  char** consumptionPattern;\r
+  int nbConsumingPorts;\r
+  int lengthCP;\r
+  char** productionPattern;\r
+  int nbProducingPorts;\r
+  int lengthPP;\r
+  \r
   ReferenceBlock* reference;\r
 \r
 };\r
   ReferenceBlock* reference;\r
 \r
 };\r