StateVar - state variable subject base class
SYNOPSIS
#include <Unidraw/statevar.h>
DESCRIPTION
StateVar is the base class for state variable subjects.
State variables provide a standard way to represent and
access state that can be modified by the user or through
dataflow. State variable subjects store the state, while
state variable views provide a graphical interface for
examining and potentially modifying the state in their
subject. The StateVar class defines the protocol for
state variable subjects. It is an abstract class and thus
cannot be instantiated.
PUBLIC OPERATIONS
Connector* GetBinding()
Return the connector to which the state variable is
bound to support dataflow. Data flows through con-
nected connectors with bound state variables: the
library automatically assigns one bound state vari-
able's state to another's. The direction of this
assignment depends on the participating connectors.
See Connector(3U) for details on how to bind state
variables to connectors and how to specify the
direction of flow.
virtual void Attach(StateVarView*)
virtual void Detach(StateVarView*)
Attach associates the subject with a view, repre-
sented by an instance of a StateVarView subclass.
Detach dissociates a previously attached view.
These operations do not ensure that the argument is
an appropriate view of the subject.
virtual void Notify()
Notify iterates through the views, calling each
one's Update operation to notify the view that the
subject has potentially changed. Notify is usually
called by the subject's state-modifying operations.
virtual StateVar& operator = (StateVar&)
The assignment operation should be redefined to
carry out subclass-specific assignment semantics.
Typically this operator calls the parent classes'
assignment operator and then performs additional
assignments of its own. This operator is used dur-
ing dataflow to transfer state variable values.
virtual StateVar* Copy()
Return a copy of the state variable. Subclasses
virtual void Read(istream&)
virtual void Write(ostream&)
Read and write the state variable's contents to a
stream to support catalog operations. Read and
write typically call first the corresponding opera-
tions defined by their parent class, and then they
read or write their class-specific state. Note
that you must ensure that the objects are read in
the same order they are written.
virtual ClassId GetClassId()
virtual boolean IsA(ClassId)
GetClassId returns the unique class identifier for
the StateVar subclass, while IsA returns whether
the instance is of a class or subclass correspond-
ing to the given identifier. IsA typically checks
the given identifier against the instance's own (as
defined by its GetClassId operation) and, failing
that, calls its parent classes' IsA operation. All
subclasses must redefine GetClassId and IsA to
ensure that their identifiers are unique and that
instances are written and read properly.
PROTECTED OPERATIONS
StateVar()
The constructor is protected to prevent instantia-
tion.
SEE ALSO
Catalog(3U), Connector(3U), Creator(3U), StateVarView(3U),
classes(3U), istream(3C++), ostream(3C++)
Man(1) output converted with
man2html