#include "AbstractInterface.h"
class ReferenceInterface;
+#include "AbstractInputModifier.h"
+
#include "Exception.h"
// 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);
+ 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
+ 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);
* 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
};