---
name: "SubjectObserver"
section: "3"
platform: "linux"
package: "libcorelinux-dev"
version: "0.4.32-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/SubjectObserver"
---

# SubjectObserver(3)

SubjectObserver maintains the observer list and definitions for subject.

## NAME

SubjectObserver - SubjectObserver maintains the observer list and definitions for subject.

## SYNOPSIS

`#include <SubjectObserver.hpp>`

Inherits **corelinux::Subject**, and **corelinux::Observer**.

Inherited by **Edit**, **Lister**, and **Select**.

### Public Member Functions

**SubjectObserver** (void)\
 *Default constructor.*  virtual **~SubjectObserver** (void)\
 *Virtual destructor.*  bool **operator=** (**SubjectObserverCref**) const \
 *Equality operator.*  virtual void **addObserver** (**corelinux::ObserverPtr**, **corelinux::Event**\< **corelinux::Identifier** \> \*)  throw ( corelinux::NullPointerException  )\
 *Add an observer for a specific event.*  virtual void **removeObserver** (**corelinux::ObserverPtr**)  throw ( corelinux::NullPointerException  )\
 *Remove an observer from all event notifications.*  virtual void **removeObserver** (**corelinux::ObserverPtr**, **corelinux::Event**\< **corelinux::Identifier** \> \*)  throw ( corelinux::NullPointerException  )\
 *Remove an observer from specific event notifications.*  virtual **corelinux::Iterator**\< **corelinux::ObserverPtr** \> \* **createIterator** (void)\
 *Create a iterator for all observers.*  virtual **corelinux::Iterator**\< **corelinux::ObserverPtr** \> \* **createIterator** (**corelinux::Event**\< **corelinux::Identifier** \> \*)  throw ( corelinux::NullPointerException  )\
 *Create a iterator for observers of this event.*  virtual void **destroyIterator** (**corelinux::Iterator**\< **corelinux::ObserverPtr** \> \*)  throw ( corelinux::NullPointerException  )\
 *Deletes the iterator instance.*

### Protected Member Functions

**SubjectObserver** (**SubjectObserverCref**)  throw ( corelinux::Assertion  )\
 *Copy constructor.*  **SubjectObserverRef** **operator=** (**SubjectObserverCref**)  throw ( corelinux::Assertion  )\
 *Assignment operator.*

## Detailed Description

SubjectObserver maintains the observer list and definitions for subject.

Because we have the need for all of our subjects to also be observers, this factors the behavior as well.

## Member Function Documentation

### void SubjectObserver::addObserver (corelinux::ObserverPtr, corelinux::Event\< corelinux::Identifier \> \*) throw ( corelinux::NullPointerException )` [virtual]`

Add an observer for a specific event. **Parameters:**

*Event* the type of event interested in

**Exceptions:**

*NullPointer* exception if event is null

### Iterator\< ObserverPtr \> \* SubjectObserver::createIterator (corelinux::Event\< corelinux::Identifier \> \*) throw ( corelinux::NullPointerException )` [virtual]`

Create a iterator for observers of this event. **Parameters:**

*Event* defines the event type predicate

**Returns:**

Iterator

**Exceptions:**

*NullPointerException* if event null

### Iterator\< ObserverPtr \> \* SubjectObserver::createIterator (void)` [virtual]`

Create a iterator for all observers. **Returns:**

Iterator

Implements **corelinux::Subject**.

### void SubjectObserver::destroyIterator (corelinux::Iterator\< corelinux::ObserverPtr \> \*) throw ( corelinux::NullPointerException )` [virtual]`

Deletes the iterator instance. **Parameters:**

*Iterator* .RE

**Exceptions:**

*NullPointerException* if iterator null

### void SubjectObserver::removeObserver (corelinux::ObserverPtr, corelinux::Event\< corelinux::Identifier \> \*) throw ( corelinux::NullPointerException )` [virtual]`

Remove an observer from specific event notifications. **Parameters:**

*Observer* to remove

**Exceptions:**

*NullPointer* exception Observer or Event is null

### void SubjectObserver::removeObserver (corelinux::ObserverPtr) throw ( corelinux::NullPointerException )` [virtual]`

Remove an observer from all event notifications. **Parameters:**

*Observer* to remove

**Exceptions:**

*NullPointer* exception Observer is null

Implements **corelinux::Subject**.

## Author

Generated automatically by Doxygen for CoreLinux++ from the source code.
