casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
casacore::NoticeTarget Class Referenceabstract

abstract base class for notice receptors More...

#include <Notice.h>

Inheritance diagram for casacore::NoticeTarget:
casacore::ConstListIter< t > casacore::OrderedMapIterRep< t, v > casacore::RecordFieldPtr< T > casacore::ConstListIter< casacore::OrderedPair< key, val > > casacore::RecordFieldPtr< Bool > casacore::RecordFieldPtr< casacore::Array< Bool > > casacore::RecordFieldPtr< casacore::Array< casacore::String > > casacore::RecordFieldPtr< casacore::Array< Complex > > casacore::RecordFieldPtr< casacore::Array< DComplex > > casacore::RecordFieldPtr< casacore::Array< Double > > casacore::RecordFieldPtr< casacore::Array< Float > > casacore::RecordFieldPtr< casacore::Array< Int > > casacore::RecordFieldPtr< casacore::Array< recordType > > casacore::RecordFieldPtr< casacore::Array< Short > > casacore::RecordFieldPtr< casacore::Array< T > > casacore::RecordFieldPtr< casacore::Array< uChar > > casacore::RecordFieldPtr< casacore::String > casacore::RecordFieldPtr< Complex > casacore::RecordFieldPtr< DComplex > casacore::RecordFieldPtr< Double > casacore::RecordFieldPtr< Float > casacore::RecordFieldPtr< Int > casacore::RecordFieldPtr< inType > casacore::RecordFieldPtr< outType > casacore::RecordFieldPtr< recordType > casacore::RecordFieldPtr< Short > casacore::RecordFieldPtr< uChar >

Public Member Functions

virtual ~NoticeTarget ()
 Destructs this NoticeTarget. More...
 
Bool isValid () const
 Returns a boolean value telling whether this NoticeTarget is still "valid". More...
 
Bool isAttached () const
 Returns a boolean value telling whether this NoticeTarget is still attached to a NoticeSource or not. More...
 
void invalidate ()
 Makes the current NoticeTarget "invalid". More...
 
virtual void notify (const Notice &)=0
 Hook through which NoticeTargets are notified (by NoticeSources). More...
 

Protected Member Functions

 NoticeTarget ()
 Creates an unlinked, "invalid" NoticeTarget. More...
 
 NoticeTarget (NoticeSource *v)
 Creates a "valid" NoticeTarget linked to the specified NoticeSource. More...
 
 NoticeTarget (NoticeSource &v)
 
 NoticeTarget (NoticeTarget &other)
 Creates a "valid" NoticeTarget linked to the same NoticeSource as the other NoticeTarget. More...
 
 NoticeTarget (NoticeTarget *other)
 
void unlink ()
 Unlinks this NoticeTarget from its NoticeSource. More...
 
void link (const NoticeTarget &other)
 Links this NoticeTarget to the same NoticeSource as the other NoticeTarget. More...
 
void link (const NoticeTarget *other)
 
Link< NoticeTarget * > * next ()
 Retrieves the next NoticeTarget in the target list of the associated NoticeSource. More...
 
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. More...
 
void attach (NoticeSource &v)
 

Protected Attributes

Link< NoticeTarget * > * ilink
 
NoticeSourcecontainer
 
Bool valid
 

Friends

class NoticeSource
 

Detailed Description

abstract base class for notice receptors

Intended use:

Public interface

Review Status

Reviewed By:
Friso Olnon
Date Reviewed:
1995/03/16

Synopsis

A NoticeTarget receives the Notices 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.

Example

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:

  1. An iterator changes something to the underlying list.
  2. The iterator creates a ListNotice containing all the necessary information about the change.
  3. The iterator passes the notice to the NoticeSource List.
  4. The list relays the notice to all other iterators operating on the list (kept in the "target list").
  5. Every iterator catches the notice and changes its state accordingly.

Definition at line 150 of file Notice.h.

Constructor & Destructor Documentation

virtual casacore::NoticeTarget::~NoticeTarget ( )
virtual

Destructs this NoticeTarget.

casacore::NoticeTarget::NoticeTarget ( )
inlineprotected

Creates an unlinked, "invalid" NoticeTarget.

An invalid NoticeTarget does not occur in the target list of any NoticeSource.

Definition at line 181 of file Notice.h.

casacore::NoticeTarget::NoticeTarget ( NoticeSource v)
inlineprotected

Creates a "valid" NoticeTarget linked to the specified NoticeSource.

The NoticeTarget will be added to the target list in that NoticeSource.

Definition at line 187 of file Notice.h.

References attach().

casacore::NoticeTarget::NoticeTarget ( NoticeSource v)
inlineprotected

Definition at line 188 of file Notice.h.

References attach().

casacore::NoticeTarget::NoticeTarget ( NoticeTarget other)
inlineprotected

Creates a "valid" NoticeTarget linked to the same NoticeSource as the other NoticeTarget.

So, both NoticeTargets will occur in the same target list.

Definition at line 196 of file Notice.h.

References attach(), container, and isValid().

casacore::NoticeTarget::NoticeTarget ( NoticeTarget other)
inlineprotected

Definition at line 198 of file Notice.h.

References attach(), and isValid().

Member Function Documentation

void casacore::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 casacore::NoticeTarget::attach ( NoticeSource v)
protected
void casacore::NoticeTarget::invalidate ( )
inline

Makes the current NoticeTarget "invalid".

Definition at line 166 of file Notice.h.

References casacore::False, and valid.

Bool casacore::NoticeTarget::isAttached ( ) const
inline

Returns a boolean value telling whether this NoticeTarget is still attached to a NoticeSource or not.

Definition at line 163 of file Notice.h.

References casacore::False, ilink, and casacore::True.

Referenced by casacore::RecordFieldPtr< casacore::String >::isAttached().

Bool casacore::NoticeTarget::isValid ( ) const
inline
void casacore::NoticeTarget::link ( const NoticeTarget other)
protected

Links this NoticeTarget to the same NoticeSource as the other NoticeTarget.

Any previous link will be undone.

void casacore::NoticeTarget::link ( const NoticeTarget other)
protected
Link<NoticeTarget*>* casacore::NoticeTarget::next ( )
inlineprotected

Retrieves the next NoticeTarget in the target list of the associated NoticeSource.

Definition at line 217 of file Notice.h.

References ilink.

const Link<NoticeTarget*>* casacore::NoticeTarget::next ( ) const
inlineprotected

Definition at line 220 of file Notice.h.

References ilink.

virtual void casacore::NoticeTarget::notify ( const Notice )
pure virtual
void casacore::NoticeTarget::unlink ( )
protected

Unlinks this NoticeTarget from its NoticeSource.

The NoticeTarget will be removed from the target list.

Friends And Related Function Documentation

friend class NoticeSource
friend

Definition at line 152 of file Notice.h.

Member Data Documentation

NoticeSource* casacore::NoticeTarget::container
protected

Definition at line 175 of file Notice.h.

Referenced by NoticeTarget().

Link<NoticeTarget*>* casacore::NoticeTarget::ilink
protected

Definition at line 174 of file Notice.h.

Referenced by isAttached(), and next().

Bool casacore::NoticeTarget::valid
protected

Definition at line 176 of file Notice.h.

Referenced by invalidate(), and isValid().


The documentation for this class was generated from the following file: