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

Private GIT Repository
finished testbench generation
[blast.git] / ConnectedInterface.h
index 7866a8fa957370169b8471e0a9cdf704f6e560a1..e3dbfd3d21b6dfe8c3c79447cf1407b990cd6708 100644 (file)
@@ -8,6 +8,8 @@
 
 #include "AbstractInterface.h"
 class ReferenceInterface;
 
 #include "AbstractInterface.h"
 class ReferenceInterface;
+#include "AbstractInputModifier.h"
+
 
 #include "Exception.h"
 
 
 #include "Exception.h"
 
@@ -23,29 +25,34 @@ class ConnectedInterface : public AbstractInterface {
 public :
 
   ConnectedInterface(AbstractBlock* _owner);
 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<ConnectedInterface*> getConnectedTo() { return connectedTo;}
   ~ConnectedInterface();
   
   // getters
   inline QList<ConnectedInterface*> getConnectedTo() { return connectedTo;}
-  inline ConnectedInterface* getConnectedFrom() { return connectedFrom;}
-  inline QList<char>* getOutputPattern() { return outputPattern; }  
+  inline ConnectedInterface* getConnectedFrom() { return connectedFrom;}  
+  inline QList<char>* getOutputPattern() { return outputPattern; }
+  inline AbstractInputModifier* getInputModifier() { return inputModifier; }
 
 
-  // setters
+  // setters  
   void setOutputPattern(QList<char>* pattern);
   void setOutputPattern(QList<char>* pattern);
+  inline void setInputModifier(AbstractInputModifier* mod) { inputModifier = mod; }
 
   // testers
   inline bool isConnectedTo(){return connectedTo.length() != 0;}
 
   // testers
   inline bool isConnectedTo(){return connectedTo.length() != 0;}
+  inline bool isConnectedToMany(){return connectedTo.length()>=2;}
   inline bool isConnectedFrom(){return connectedFrom != NULL;}
   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  
 
   // others  
+  void resetOutputPattern() { outputPattern = NULL; }
   void connectTo(ConnectedInterface* iface);
   void disconnectTo(ConnectedInterface* iface);
   //bool connectFrom(ConnectedInterface* iface);
   ConnectedInterface* getConnectionToParentGroup();
   ConnectedInterface* getConnectionFromParentGroup();
   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);
 
   virtual AbstractInterface *clone() = 0;  
   //void removeConnectedTo(ConnectedInterface *inter);
@@ -70,8 +77,9 @@ protected:
    * this interface. connecteFrom references such an interface if it exists.
    */
   ConnectedInterface* connectedFrom;  
    * this interface. connecteFrom references such an interface if it exists.
    */
   ConnectedInterface* connectedFrom;  
-  
-  // patterns  
+  AbstractInputModifier* inputModifier; // if needed, represent a block taht does not appear on screen but taht will modify the stream.
+
+  // patterns    
   QList<char>* outputPattern; //! only usefull for output interfaces
 };
 
   QList<char>* outputPattern; //! only usefull for output interfaces
 };