CoreLinux++  0.4.32
Public Member Functions | Protected Member Functions | List of all members
corelinux::Subject Class Referenceabstract

Subject knows its Observer objects, communicates with its observers through event notification. More...

#include <Subject.hpp>

Public Member Functions

 Subject (void)
 Default constructor.
 
 Subject (SubjectCref)
 Copy constructor. More...
 
virtual ~Subject (void)
 Virtual destructor.
 
SubjectRef operator= (SubjectCref)
 Assignment operator.
 
bool operator== (SubjectCref) const
 Equality operator.
 
bool operator!= (SubjectCref) const
 In-Equality operator.
 
virtual void addObserver (ObserverPtr, Event< Identifier > *)=0 throw ( NullPointerException )
 Add an observer for a specific event. More...
 
virtual void removeObserver (ObserverPtr)=0 throw ( NullPointerException )
 Remove an observer from all event notifications. More...
 
virtual void removeObserver (ObserverPtr, Event< Identifier > *)=0 throw ( NullPointerException )
 Remove an observer from specific event notifications. More...
 
virtual Iterator< ObserverPtr > * createIterator (void)=0
 Create a iterator for all observers. More...
 
virtual Iterator< ObserverPtr > * createIterator (Event< Identifier > *)=0 throw ( NullPointerException )
 Create a iterator for observers of this event. More...
 
virtual void destroyIterator (Iterator< ObserverPtr > *)=0 throw ( NullPointerException )
 Deletes the iterator instance. More...
 

Protected Member Functions

virtual void notifyObservers (Event< Identifier > *) throw ( NullPointerException )
 Performs the notification of observers for a specific event. More...
 
virtual void notifyAllObservers (Event< Identifier > *) throw ( NullPointerException )
 Performs the notification of ALL observers for a with a specific event. More...
 

Detailed Description

Subject knows its Observer objects, communicates with its observers through event notification.

Constructor & Destructor Documentation

corelinux::Subject::Subject ( SubjectCref  )

Copy constructor.

Parameters
Subjectconst referencee

Member Function Documentation

virtual void corelinux::Subject::addObserver ( ObserverPtr  ,
Event< Identifier > *   
)
throw (NullPointerException
)
pure virtual

Add an observer for a specific event.

Parameters
Eventthe type of event interested in
Exceptions
NullPointerexception if event is null
virtual Iterator<ObserverPtr>* corelinux::Subject::createIterator ( void  )
pure virtual

Create a iterator for all observers.

Returns
Iterator

Referenced by notifyAllObservers(), and notifyObservers().

virtual Iterator<ObserverPtr>* corelinux::Subject::createIterator ( Event< Identifier > *  )
throw (NullPointerException
)
pure virtual

Create a iterator for observers of this event.

Parameters
Eventdefines the event type predicate
Returns
Iterator
Exceptions
NullPointerExceptionif event null
virtual void corelinux::Subject::destroyIterator ( Iterator< ObserverPtr > *  )
throw (NullPointerException
)
pure virtual

Deletes the iterator instance.

Parameters
Iterator
Exceptions
NullPointerExceptionif iterator null
void corelinux::Subject::notifyAllObservers ( Event< Identifier > *  anEvent)
throw (NullPointerException
)
protectedvirtual

Performs the notification of ALL observers for a with a specific event.

Parameters
Eventkey
Exceptions
NullPointerExceptionif event is null

References createIterator(), corelinux::Iterator< ElementType >::getElement(), corelinux::Iterator< ElementType >::isValid(), and corelinux::Iterator< ElementType >::setNext().

void corelinux::Subject::notifyObservers ( Event< Identifier > *  anEvent)
throw (NullPointerException
)
protectedvirtual

Performs the notification of observers for a specific event.

Parameters
Eventkey
Exceptions
NullPointerExceptionif event is null

References createIterator(), corelinux::Iterator< ElementType >::getElement(), corelinux::Iterator< ElementType >::isValid(), and corelinux::Iterator< ElementType >::setNext().

virtual void corelinux::Subject::removeObserver ( ObserverPtr  )
throw (NullPointerException
)
pure virtual

Remove an observer from all event notifications.

Parameters
Observerto remove
Exceptions
NullPointerexception Observer is null
virtual void corelinux::Subject::removeObserver ( ObserverPtr  ,
Event< Identifier > *   
)
throw (NullPointerException
)
pure virtual

Remove an observer from specific event notifications.

Parameters
Observerto remove
Exceptions
NullPointerexception Observer or Event is null

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

This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium