casa
$Rev:20696$
|
abstract base class for notice receptors More...
#include <Notice.h>
Public Member Functions | |
virtual | ~NoticeTarget () |
Destructs this NoticeTarget . | |
Bool | isValid () const |
Returns a boolean value telling whether this NoticeTarget is still "valid". | |
Bool | isAttached () const |
Returns a boolean value telling whether this NoticeTarget is still attached to a NoticeSource or not. | |
void | invalidate () |
Makes the current NoticeTarget "invalid". | |
virtual void | notify (const Notice &)=0 |
Hook through which NoticeTarget s are notified (by NoticeSource s). | |
Protected Member Functions | |
NoticeTarget () | |
Creates an unlinked, "invalid" NoticeTarget . | |
NoticeTarget (NoticeSource *v) | |
Creates a "valid" NoticeTarget linked to the specified NoticeSource . | |
NoticeTarget (NoticeSource &v) | |
NoticeTarget (NoticeTarget &other) | |
Creates a "valid" NoticeTarget linked to the same NoticeSource as the other NoticeTarget . | |
NoticeTarget (NoticeTarget *other) | |
void | unlink () |
Unlinks this NoticeTarget from its NoticeSource . | |
void | link (const NoticeTarget &other) |
Links this NoticeTarget to the same NoticeSource as the other NoticeTarget . | |
void | link (const NoticeTarget *other) |
Link< NoticeTarget * > * | next () |
Retrieves the next NoticeTarget in the target list of the associated NoticeSource . | |
const Link< NoticeTarget * > * | next () const |
void | attach (NoticeSource *v) |
Adds this NoticeTarget to the target list in the specified NoticeSource , so that it will receive all notices sent out by that NoticeSource . | |
void | attach (NoticeSource &v) |
Protected Attributes | |
Link< NoticeTarget * > * | ilink |
NoticeSource * | container |
Bool | valid |
Friends | |
class | NoticeSource |
abstract base class for notice receptors
Public interface
A NoticeTarget
receives the Notice
s from the NoticeSource
to which it is linked. A target can only be linked to one source.
Classes which are dependent upon a particular NoticeSource
should derive from this class.
ListIter and its parent class ConstListIter are the iterators or "dynamic" cursors in the linked List . They are derived from NoticeTarget
, and the notice system ensures that multiple cursors are updated as elements are added and removed from the list, according to the following scheme:
NoticeSource
List . virtual casa::NoticeTarget::~NoticeTarget | ( | ) | [virtual] |
Destructs this NoticeTarget
.
casa::NoticeTarget::NoticeTarget | ( | ) | [inline, protected] |
Creates an unlinked, "invalid" NoticeTarget
.
An invalid NoticeTarget
does not occur in the target list of any NoticeSource
.
casa::NoticeTarget::NoticeTarget | ( | NoticeSource * | v | ) | [inline, protected] |
Creates a "valid" NoticeTarget
linked to the specified NoticeSource
.
The NoticeTarget
will be added to the target list in that NoticeSource
.
Definition at line 189 of file Notice.h.
References attach().
casa::NoticeTarget::NoticeTarget | ( | NoticeSource & | v | ) | [inline, protected] |
casa::NoticeTarget::NoticeTarget | ( | NoticeTarget & | other | ) | [inline, protected] |
Creates a "valid" NoticeTarget
linked to the same NoticeSource
as the other NoticeTarget
.
So, both NoticeTarget
s will occur in the same target list.
casa::NoticeTarget::NoticeTarget | ( | NoticeTarget * | other | ) | [inline, protected] |
void casa::NoticeTarget::attach | ( | NoticeSource * | v | ) | [protected] |
Adds this NoticeTarget
to the target list in the specified NoticeSource
, so that it will receive all notices sent out by that NoticeSource
.
Referenced by NoticeTarget().
void casa::NoticeTarget::attach | ( | NoticeSource & | v | ) | [protected] |
void casa::NoticeTarget::invalidate | ( | ) | [inline] |
Makes the current NoticeTarget
"invalid".
Definition at line 168 of file Notice.h.
References casa::False, and valid.
Bool casa::NoticeTarget::isAttached | ( | ) | const [inline] |
Returns a boolean value telling whether this NoticeTarget
is still attached to a NoticeSource
or not.
Reimplemented in casa::RecordFieldPtr< T >, casa::RecordFieldPtr< Array< DComplex > >, casa::RecordFieldPtr< Float >, casa::RecordFieldPtr< recordType >, casa::RecordFieldPtr< Array< String > >, casa::RecordFieldPtr< Double >, casa::RecordFieldPtr< Short >, casa::RecordFieldPtr< uChar >, casa::RecordFieldPtr< String >, casa::RecordFieldPtr< Array< T > >, casa::RecordFieldPtr< Int >, casa::RecordFieldPtr< Array< uChar > >, casa::RecordFieldPtr< Array< Short > >, casa::RecordFieldPtr< DComplex >, casa::RecordFieldPtr< Array< Bool > >, casa::RecordFieldPtr< Bool >, casa::RecordFieldPtr< Array< Complex > >, casa::RecordFieldPtr< Complex >, casa::RecordFieldPtr< Array< recordType > >, casa::RecordFieldPtr< Array< Float > >, casa::RecordFieldPtr< outType >, casa::RecordFieldPtr< inType >, casa::RecordFieldPtr< Array< Int > >, and casa::RecordFieldPtr< Array< Double > >.
Definition at line 165 of file Notice.h.
References casa::False, ilink, and casa::True.
Bool casa::NoticeTarget::isValid | ( | ) | const [inline] |
Returns a boolean value telling whether this NoticeTarget
is still "valid".
Reimplemented in casa::OrderedMapIterRep< key, value >.
Definition at line 161 of file Notice.h.
References valid.
Referenced by casa::ListIter< WCMotionEH * >::addRight(), casa::ConstListIter< WCMotionEH * >::atEnd(), casa::ConstListIter< WCMotionEH * >::atStart(), casa::ConstListIter< WCMotionEH * >::getRight(), casa::ListIter< WCMotionEH * >::getRight(), casa::ConstListIter< WCMotionEH * >::len(), NoticeTarget(), casa::ConstListIter< WCMotionEH * >::operator++(), casa::ConstListIter< WCMotionEH * >::pos(), casa::ConstListIter< WCMotionEH * >::step(), casa::ConstListIter< WCMotionEH * >::toEnd(), and casa::ConstListIter< WCMotionEH * >::toStart().
void casa::NoticeTarget::link | ( | const NoticeTarget & | other | ) | [protected] |
Links this NoticeTarget
to the same NoticeSource
as the other NoticeTarget
.
Any previous link will be undone.
void casa::NoticeTarget::link | ( | const NoticeTarget * | other | ) | [protected] |
Link<NoticeTarget*>* casa::NoticeTarget::next | ( | ) | [inline, protected] |
Retrieves the next NoticeTarget
in the target list of the associated NoticeSource
.
Definition at line 219 of file Notice.h.
References ilink, and casa::Link< t >::next().
const Link<NoticeTarget*>* casa::NoticeTarget::next | ( | ) | const [inline, protected] |
Definition at line 222 of file Notice.h.
References ilink, and casa::Link< t >::next().
virtual void casa::NoticeTarget::notify | ( | const Notice & | ) | [pure virtual] |
Hook through which NoticeTarget
s are notified (by NoticeSource
s).
Implemented in casa::OrderedMapIterRep< key, value >, casa::ConstListIter< t >, casa::ConstListIter< WCPositionEH * >, casa::ConstListIter< WorldCanvas * >, casa::ConstListIter< OrderedPair< key, val > >, casa::ConstListIter< DisplayEH * >, casa::ConstListIter< void * >, casa::ConstListIter< WCMotionEH * >, casa::RecordFieldPtr< T >, casa::RecordFieldPtr< Array< DComplex > >, casa::RecordFieldPtr< Float >, casa::RecordFieldPtr< recordType >, casa::RecordFieldPtr< Array< String > >, casa::RecordFieldPtr< Double >, casa::RecordFieldPtr< Short >, casa::RecordFieldPtr< uChar >, casa::RecordFieldPtr< String >, casa::RecordFieldPtr< Array< T > >, casa::RecordFieldPtr< Int >, casa::RecordFieldPtr< Array< uChar > >, casa::RecordFieldPtr< Array< Short > >, casa::RecordFieldPtr< DComplex >, casa::RecordFieldPtr< Array< Bool > >, casa::RecordFieldPtr< Bool >, casa::RecordFieldPtr< Array< Complex > >, casa::RecordFieldPtr< Complex >, casa::RecordFieldPtr< Array< recordType > >, casa::RecordFieldPtr< Array< Float > >, casa::RecordFieldPtr< outType >, casa::RecordFieldPtr< inType >, casa::RecordFieldPtr< Array< Int > >, and casa::RecordFieldPtr< Array< Double > >.
void casa::NoticeTarget::unlink | ( | ) | [protected] |
Unlinks this NoticeTarget
from its NoticeSource
.
The NoticeTarget
will be removed from the target list.
friend class NoticeSource [friend] |
NoticeSource* casa::NoticeTarget::container [protected] |
Reimplemented in casa::OrderedMapIterRep< key, value >.
Definition at line 177 of file Notice.h.
Referenced by NoticeTarget().
Link<NoticeTarget*>* casa::NoticeTarget::ilink [protected] |
Definition at line 176 of file Notice.h.
Referenced by isAttached(), and next().
Bool casa::NoticeTarget::valid [protected] |
Definition at line 178 of file Notice.h.
Referenced by invalidate(), and isValid().