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

Private GIT Repository
adding show/hide wb ifaces
[blast.git] / ConnectedInterface.h
index 968a00a60c7198836954ba6ab7549e5958cef8ec..3a1fb4f698b25bbf8141b0e4869c0c4de2f7090c 100644 (file)
@@ -14,13 +14,16 @@ class ReferenceInterface;
 using namespace std;
 using namespace Qt;
 
 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);
 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<ConnectedInterface*> getConnectedTo() { return connectedTo;}
   inline ConnectedInterface* getConnectedFrom() { return connectedFrom;}
   // getters
   inline QList<ConnectedInterface*> 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;
 
   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();
 
   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();
   void removeConnectedTo(ConnectedInterface *inter);
 
   virtual void clearConnectedTo();
@@ -49,9 +51,29 @@ public :
   //virtual void connectionsValidation(QStack<AbstractInterface*> *interfacetoValidate, QList<AbstractInterface*> *validatedInterfaces) throw(Exception) = 0;  
 
 protected:
   //virtual void connectionsValidation(QStack<AbstractInterface*> *interfacetoValidate, QList<AbstractInterface*> *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<ConnectedInterface*> connectedTo;
   QList<ConnectedInterface*> 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;
   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;
 };
 
 
 };