# gdcm::Subject Class Reference

Subject. More...

`#include <gdcmSubject.h>`

Inheritance diagram for gdcm::Subject:
[legend]
Collaboration diagram for gdcm::Subject:
[legend]

List of all members.

## Public Member Functions

| Subject ()
| ~Subject ()
unsigned long | AddObserver (const Event &event, Command *) const
unsigned long | AddObserver (const Event &event, Command *)
Command * | GetCommand (unsigned long tag)
bool | HasObserver (const Event &event) const
void | InvokeEvent (const Event &) const
void | InvokeEvent (const Event &)
void | RemoveAllObservers ()
void | RemoveObserver (unsigned long tag)

## Detailed Description

Subject.

See also:
  Command Event

## Constructor & Destructor Documentation

gdcm::Subject::Subject | ( |  | ) |

gdcm::Subject::~Subject | ( |  | ) |

## Member Function Documentation

unsigned long gdcm::Subject::AddObserver | ( | const Event & | event,
|  | Command * |
| ) |  |

Allow people to add/remove/invoke observers (callbacks) to any GDCM object. This is an implementation of the subject/observer design pattern. An observer is added by specifying an event to respond to and an gdcm::Command to execute. It returns an unsigned long tag which can be used later to remove the event or retrieve the command. The memory for the Command becomes the responsibility of this object, so don't pass the same instance of a command to two different objects

unsigned long gdcm::Subject::AddObserver | ( | const Event & | event,
|  | Command * |
| ) |  | const

Command* gdcm::Subject::GetCommand | ( | unsigned long | tag | ) |

Get the command associated with the given tag. NOTE: This returns a pointer to a Command, but it is safe to asign this to a Command::Pointer. Since Command inherits from LightObject, at this point in the code, only a pointer or a reference to the Command can be used.

bool gdcm::Subject::HasObserver | ( | const Event & | event | ) | const

Return true if an observer is registered for this event.

void gdcm::Subject::InvokeEvent | ( | const Event & |  | ) | const

Call Execute on all the Commands observing this event id. The actions triggered by this call doesn't modify this object.

void gdcm::Subject::InvokeEvent | ( | const Event & |  | ) |

Call Execute on all the Commands observing this event id.

void gdcm::Subject::RemoveAllObservers | ( |  | ) |

Remove all observers .

void gdcm::Subject::RemoveObserver | ( | unsigned long | tag | ) |

Remove the observer with this tag value.

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

- gdcmSubject.h