GDCM: gdcm::Subject Class Reference

GDCM 3.2.6

Public Member Functions | List of all members
gdcm::Subject Class Reference

Subject. More...

`#include <gdcmSubject.h>`

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

## Public Member Functions
| Subject ()
| ~Subject () override
unsigned long | AddObserver (const Event &event, Command *)
unsigned long | AddObserver (const Event &event, Command *) const
Command * | GetCommand (unsigned long tag)
bool | HasObserver (const Event &event) const
void | InvokeEvent (const Event &)
void | InvokeEvent (const Event &) const
void | RemoveAllObservers ()
void | RemoveObserver (unsigned long tag)
Public Member Functions inherited from gdcm::Object
| Object ()
| Object (const Object &)
| Special requirement for copy/cstor, assignment operator.
virtual | ~Object ()
void | operator= (const Object &)
virtual void | Print (std::ostream &) const

## Additional Inherited Members
Protected Member Functions inherited from gdcm::Object
void | Register ()
void | UnRegister ()

## Detailed Description

Subject.

See also
  Command Event

Examples
  BasicAnonymizer.cs, Cleaner.cs, ClinicalTrialIdentificationWorkflow.cs, ScanDirectory.cs, and SimpleScanner.cxx.

## Constructor & Destructor Documentation

## ◆ Subject()

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

Referenced by gdcm::Command::Execute(), and gdcm::Command::Execute().

## ◆ ~Subject()

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

## Member Function Documentation

## ◆ AddObserver() [1/2]

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

## ◆ AddObserver() [2/2]

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

## ◆ GetCommand()

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 assign 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.

## ◆ HasObserver()

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

Return true if an observer is registered for this event.

## ◆ InvokeEvent() [1/2]

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

Call Execute on all the Commands observing this event id.

## ◆ InvokeEvent() [2/2]

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.

## ◆ RemoveAllObservers()

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

Remove all observers .

## ◆ RemoveObserver()

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