X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/561d4f45e60504cc9e041370dd908b002fe776a5..HEAD:/ConnectedInterface.h diff --git a/ConnectedInterface.h b/ConnectedInterface.h index 3a1fb4f..e3dbfd3 100644 --- a/ConnectedInterface.h +++ b/ConnectedInterface.h @@ -8,6 +8,8 @@ #include "AbstractInterface.h" class ReferenceInterface; +#include "AbstractInputModifier.h" + #include "Exception.h" @@ -23,27 +25,37 @@ class ConnectedInterface : public AbstractInterface { public : ConnectedInterface(AbstractBlock* _owner); - ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose); + ConnectedInterface(AbstractBlock* _owner, const QString& _name, int _direction, int _purpose, const QString& _type, const QString& _width); + ~ConnectedInterface(); + // getters inline QList getConnectedTo() { return connectedTo;} - inline ConnectedInterface* getConnectedFrom() { return connectedFrom;} + inline ConnectedInterface* getConnectedFrom() { return connectedFrom;} + inline QList* getOutputPattern() { return outputPattern; } + inline AbstractInputModifier* getInputModifier() { return inputModifier; } - // setters + // setters + void setOutputPattern(QList* pattern); + inline void setInputModifier(AbstractInputModifier* mod) { inputModifier = mod; } // testers inline bool isConnectedTo(){return connectedTo.length() != 0;} + inline bool isConnectedToMany(){return connectedTo.length()>=2;} inline bool isConnectedFrom(){return connectedFrom != NULL;} - virtual bool canConnectTo(AbstractInterface* iface) = 0; - virtual bool canConnectFrom(AbstractInterface* iface) = 0; + virtual bool canConnectTo(AbstractInterface* iface, bool testClock) = 0; + virtual bool canConnectFrom(AbstractInterface* iface, bool testClock) = 0; // others - bool connectTo(ConnectedInterface* iface); - bool connectFrom(ConnectedInterface* iface); + void resetOutputPattern() { outputPattern = NULL; } + void connectTo(ConnectedInterface* iface); + void disconnectTo(ConnectedInterface* iface); + //bool connectFrom(ConnectedInterface* iface); ConnectedInterface* getConnectionToParentGroup(); ConnectedInterface* getConnectionFromParentGroup(); + void clearInputModifier(); virtual AbstractInterface *clone() = 0; - void removeConnectedTo(ConnectedInterface *inter); + //void removeConnectedTo(ConnectedInterface *inter); virtual void clearConnectedTo(); inline void clearConnectedFrom() { connectedFrom = NULL; } @@ -64,16 +76,11 @@ protected: * there may be a single interface owned by another block (functional or group) that is connected to * this interface. connecteFrom references such an interface if it exists. */ - ConnectedInterface* connectedFrom; - /*! - * \brief associatedIface the control (resp. data) interface that is bounded to this data (resp. control) interface - * If a reference block is designed to be fully integrated in Blast, nearly every data interface is bounded - * to a control interface that signals if the value presented on the interface is valid or not. associatedIface - * references this control interface if this is a data interface, and a data interface is this is a control interface. - * Note that the association is done by the call of setAssociatedIface() that must be done only for a control interface. - * (NB: a test is done in the method to prevent the other case). - */ - ConnectedInterface* associatedIface; + ConnectedInterface* connectedFrom; + AbstractInputModifier* inputModifier; // if needed, represent a block taht does not appear on screen but taht will modify the stream. + + // patterns + QList* outputPattern; //! only usefull for output interfaces };