X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/abbc64cf04a35ab3549d5c516f44c7c5921baa63..1df76ccc8673a2760af17b88ebfba4bfd7f5c11d:/ConnectedInterface.h diff --git a/ConnectedInterface.h b/ConnectedInterface.h index 968a00a..3a1fb4f 100644 --- a/ConnectedInterface.h +++ b/ConnectedInterface.h @@ -14,13 +14,16 @@ class ReferenceInterface; using namespace std; using namespace Qt; - +/*! + * \brief The ConnectedInterface class represents an interface of block (functional or group) that may be connected from/to other interfaces + * A ConnectedInterface is used to establish connection between blocks. + */ class ConnectedInterface : public AbstractInterface { public : ConnectedInterface(AbstractBlock* _owner); - ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level); + ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose); // getters inline QList getConnectedTo() { return connectedTo;} inline ConnectedInterface* getConnectedFrom() { return connectedFrom;} @@ -33,14 +36,13 @@ public : virtual bool canConnectTo(AbstractInterface* iface) = 0; virtual bool canConnectFrom(AbstractInterface* iface) = 0; - // others + // others bool connectTo(ConnectedInterface* iface); bool connectFrom(ConnectedInterface* iface); ConnectedInterface* getConnectionToParentGroup(); ConnectedInterface* getConnectionFromParentGroup(); - virtual AbstractInterface *clone() = 0; - + virtual AbstractInterface *clone() = 0; void removeConnectedTo(ConnectedInterface *inter); virtual void clearConnectedTo(); @@ -49,9 +51,29 @@ public : //virtual void connectionsValidation(QStack *interfacetoValidate, QList *validatedInterfaces) throw(Exception) = 0; protected: + /*! + * \brief connectedTo lists of connections to interfaces owned by other blocks (functional or group) + * Since the graph is oriented, and taking into account it modles a FPGA desing, + * this interface may be connected to several interfaces owned by other blocks (functional or group). + * connectedTo references such interfaces if they exist. + */ QList connectedTo; + /*! + * \brief connectedFrom connection from an interface owned by another blocks (functional or group) + * Since the graph is oriented, and taking into account it modles a FPGA desing, + * 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; };