1 #ifndef __GROUPINTERFACE_H__
2 #define __GROUPINTERFACE_H__
9 #include "ConnectedInterface.h"
10 #include "Exception.h"
18 - A GroupInterface instance can be obtained by linking it to an interface of an inner block, via a
19 contextual menu that appears when right clicking on the inner interface item.
20 Thus, it is impossible to create a "bypass": an input group interface, directly linked to an output
22 - the direction (in/out/bi) of this interface is the same as that of the inner interface.
23 - except for the top group, a correct design will always have group interfaces that have
24 both connectedTo and connectedFrom containings something. Indeed, a group interface must be seen
25 as a tunnel to communicate data from outside the group to blocks within the group.
26 Thus, an input group interface has connectedFrom refering to an output interface of a block outside the group
27 and connectedTo listing input interfaces of blocks within the group.
28 An output group interface has connectedFrom refering to an output interface of a bock within the group,
29 and connectedTo listing input interface of blocks outside the group.
34 class GroupInterface : public ConnectedInterface {
37 GroupInterface(AbstractBlock* _owner, const QString& _name, int _direction, int _level = AbstractInterface::Basic) throw (Exception);
44 bool isGroupInterface();
45 bool canConnectTo(AbstractInterface* iface);
46 bool canConnectFrom(AbstractInterface* iface);
49 AbstractInterface *clone();
50 void connectionsValidation(QStack<AbstractInterface *> *interfacetoValidate, QList<AbstractInterface *> *validatedInterfaces) throw(Exception);
54 #endif // __GROUPINTERFACE_H__