Connector, ConnectorView - base classes for connector subjects and views
Contents
Connector Protected Operations
Connector(Graphic*=nil)
Initialize the connector instance, optionally with a graphic whose center defines the connector's
position.
virtualvoidConnectMe(Connector*)virtualvoidDisconnectMe(Connector*)
Connectors maintain a list of the connectors to which they are connected. The Connect and
Disconnect operations update this connector's list, while the ConnectMe and DisconnectMe
operations inform their argument to update their lists.
voidRetransmit(Path*)voidRetransmit(Connector*peer,Path*)booleanTransferable(Connector*peer)
The Transmit operation uses these operations to propagate state variable values. The first
Retransmit function calls the second one on each of the connector's peers (i.e., the connectors to
which it is connected) if the path records that this connector has not already been visited
(otherwise propagation ceases). The first Retransmit copies the path if necessary to avoid
accumulating visit information from multiple branches. The second Retransmit calls Transferable,
which returns whether the value of this connector's state variable can be transferred to the given
peer's state variable based on the two connectors' transmission methods. If the values are
transferable, then the Transferable operation carries out the assignment to the peer's state
variable as a side-effect. The second Retransmit also enables further propagation by evaluating
the transfer function of the peer's parent and by calling the first Retransmit operation on the
peer.
Connector Public Operations
virtualvoidInterpret(Command*)virtualvoidUninterpret(Command*)
In addition to (un)interpreting the commands GraphicComp (un)interprets, connectors also
(un)interpret DeleteCmd and CutCmd to sever and restore any connections to them.
virtualvoidConnect(Connector*,CGlue*=nil);
Connect this connector to the given one, optionally with a piece of CGlue interposed. This
operation allows redundant connections by default.
virtualvoidDisconnect(Connector*)voidDisconnectAll()
Disconnect the given connector from this one, if they are connected. DisconnectAll calls
Disconnect on all connected connectors until no connections remain.
virtualbooleanConnectedTo(Connector*)
Return whether this connector is connected to the given one.
virtualvoidGetCenter(float&,float&)
Return the coordinates of the connector's center, which defines its position.
virtualvoidSetBinding(StateVar*)virtualStateVar*GetBinding()
Assign and return the state variable bound to the connector, if any. Only one state variable can
be bound to a connector at a time.
virtualvoidSetTransMethod(TransMethod)virtualTransMethodGetTransMethod()
Assign and return the connector's transmission method.
virtualvoidTransmit(Path*=nil)
Initiate dataflow originating from this connector, optionally based on information supplied in the
given path object. Other Unidraw or application objects call this operation whenever data
modifications should be propagated.
Connectorview Protected Operations
ConnectorView(Connector*=nil)
The constructor takes a subject as an optional argument. The view will attach itself to the
subject if one is specified.
Connectorview Public Operations
Connector*GetConnector()
Return the view's subject, if any.
Description
Connector is an abstract base class for graphical component subjects that enforce different connectivity
semantics depending on the particular connector subclass. ConnectorView is the abstract base class for
views of connector subjects. A connector can be connected to one or more other connectors. Once
connected, two connectors can affect each other's position in specific ways as defined by the semantics
of the connection.
Connectors also participate in the propagation of state variable values during dataflow. Two connected
connectors with bound state variables will assign the value of one state variable to other, and the
direction of transfer depends on the connectors' transmission method. For example, if the transmission
method of connector C1 with bound state variable S1 is In, and if the transmission method of connector C2
with bound state variable S2 is Out, and if C1 and C2 are connected, then S1 will be assigned the value
of S2 during dataflow.
Name
Connector, ConnectorView - base classes for connector subjects and views
See Also
CGlue(3U), GraphicComp(3U), GraphicView(3U), Path(3U), StateVar(3U), edit(3U0, globals(3U) Unidraw 20 August 1990 Connector(3U)
Synopsis
#include<Unidraw/Components/connector.h>
