\r
// testers\r
bool isFunctionalBlock();\r
- bool isSourceBlock(); //! a source block has no parent\r
+ bool isSourceBlock(); //! a source block has no parent and has no data inputs\r
\r
// others\r
\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
+ // 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