transfns(3U) | InterViews Reference Manual | transfns(3U) |
NAME¶
TF_2Port, TF_Direct - transfer function subclasses
SYNOPSIS¶
#include <Unidraw/transfns.h>
DESCRIPTION¶
The TransferFunct abstract base class defines the transfer functionprotocol. The library predefines two subclasses. TF_2Port is asubclass that acts as an abstract base class for transfer functionshaving two sets of state variables, ``input'' and ``output'', withoutput variables always dependent on input variables. TF_Direct is asubclass of TF_2Port that defines a one-to-one assignment relationshipbetween an input and an output state variable.
TF_2PORTPUBLICOPERATIONS¶
- void Evaluate(Path* = nil)
- Evaluate first carries out information transfer between dependentstate variables by calling the Transfer operation (described below).Then it iterates through its output state variables; those that havechanged (according to the ChangedOutput operation, described below)get Transmit called on the connector they're bound to. Subclassesneedn't redefine this operation if they implement Transfer andChangedOutput appropriately.
- virtual StateVar* GetInput(int index)
- virtual StateVar* GetOutput(int index)
- virtual void SetInput(StateVar*, int index)
- virtual void SetOutput(StateVar*, int index)
- Retrieve and assign the TF_2Port's input and output state variables,identified serially. These operations do nothing by default;subclasses must allocate the storage they require.
- virtual int Inputs()
- virtual int Outputs()
- Return the number of input and output state variables. Theseoperations return zero by default.
TF_2PORTPROTECTEDOPERATIONS¶
- TF_2Port()
- The constructor is protected to prevent instantiation.
- virtual void Transfer()
- Enforce the subclass-specific dependencies between the TF_2Port'sstate variables. This operation does nothing by default.
- virtual boolean ChangedOutput(int index = 0)
- Return whether the output state variable with the given index haschanged its value since the last call to Transfer. Subclassesredefine this operation according to the semantics of their Transferoperation.
TF_DIRECTPUBLICOPERATIONS¶
- TF_Direct(StateVar* input = nil, StateVar* output = nil)
- Instantiate a new object, optionally specifying the input statevariable and its dependent output state variable.
- virtual StateVar* GetInput(int index = 0)
- virtual StateVar* GetOutput(int index = 0)
- virtual void SetInput(StateVar*, int index = 0)
- virtual void SetOutput(StateVar*, int index = 0)
- Retrieve and assign the TF_Direct's input and output state variables.Specifying an index greater than zero does nothing, since TF_Directdefines a dependency between one input and one output state variable.
- virtual int Inputs()
- virtual int Outputs()
- Return the number of input and output state variables. Theseoperations return zero by default.
- virtual int Inputs()
- virtual int Outputs()
- These operations return 1.
TF_DIRECTPROTECTEDOPERATIONS¶
- virtual void Transfer()
- Assign the input state variable to the output state variable, settinga flag indicating that the output value has changed.
- virtual boolean ChangedOutput(int index = 0)
- Return the status of the flag set by Transfer. The flag is reset as aside-effect of this operation.
SEEALSO¶
TransferFunct(3U)
6 August 1990 | Unidraw |