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

  Subject | const referencee

## Member Function Documentation

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

pure virtual

Add an observer for a specific event.

Parameters

  Event | the type of event interested in

Exceptions

  NullPointer | exception if event is null

virtual Iterator<ObserverPtr>* corelinux::Subject::createIterator | ( | void |  | ) |

pure virtual

Create a iterator for all observers.

Returns
  Iterator

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

pure virtual

Create a iterator for observers of this event.

Parameters

  Event | defines the event type predicate

Returns
  Iterator

Exceptions

  NullPointerException | if event null

virtual void corelinux::Subject::destroyIterator | ( | Iterator< ObserverPtr > * |  | ) |
throw | ( | NullPointerException
| ) |  |

pure virtual

Deletes the iterator instance.

Parameters

  Iterator |

Exceptions

  NullPointerException | if iterator null

void corelinux::Subject::notifyAllObservers | ( | Event< Identifier > * | anEvent | ) |
throw | ( | NullPointerException
| ) |  |

protected virtual

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

Parameters

  Event | key

Exceptions

  NullPointerException | if event is null

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

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

protected virtual

Performs the notification of observers for a specific event.

Parameters

  Event | key

Exceptions

  NullPointerException | if event is null

References corelinux::Observer::event(), 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

  Observer | to remove

Exceptions

  NullPointer | exception Observer is null

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

pure virtual

Remove an observer from specific event notifications.

Parameters

  Observer | to remove

Exceptions

  NullPointer | exception Observer or Event is null

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

- Subject.hpp
- Subject.cpp

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