class ReferenceBlock;
class FunctionalBlock;
class AbstractInterface;
-
+#include "Exception.h"
+class Exception;
using namespace std;
using namespace Qt;
// methods for group blocks
GroupBlock* createChildGroupBlock(GroupBlock* parent);
- bool removeGroupBlock(GroupBlock *group);
+ void removeGroupBlock(GroupBlock *group);
GroupBlock* getGroupBlockByName(QString name);
// methods for functional blocks
bool removeSourceBlock(FunctionalBlock* block);
// others
- QList<AbstractInterface *> getOutsideInterfaces();
-
+ QList<AbstractInterface *> getOutsideInterfaces();
+ QList<QString> getExternalResources(); // returns the list of all external files needed for VHDL generation
+
+ /*!
+ * \brief createPatterns
+ * createPatterns() crosses the graph and for each functional block, it computes
+ * the consumptionPattern, the productionPattern, the production counter and delta
+ * using the parameters fo the block.
+ */
+ void createPatterns() throw(Exception);
+ void resetPatternComputed();
+ void computeOutputPatterns(int nbExec) throw(Exception);
+ void generateVHDL(const QString& path) throw(Exception);
+
private:
GroupBlock* topGroup;
QList<GroupBlock *> groups; //! usefull to avoid recursive methods to find a particular group.