Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef GDCMSUBJECT_H
00016 #define GDCMSUBJECT_H
00017
00018 #include "gdcmObject.h"
00019
00020 namespace gdcm
00021 {
00022 class Event;
00023 class Command;
00024 class SubjectInternals;
00029 class GDCM_EXPORT Subject : public Object
00030 {
00031 public:
00032 Subject();
00033 ~Subject();
00034
00043 unsigned long AddObserver(const Event & event, Command *);
00044 unsigned long AddObserver(const Event & event, Command *) const;
00045
00051 Command* GetCommand(unsigned long tag);
00052
00054 void InvokeEvent( const Event & );
00055
00058 void InvokeEvent( const Event & ) const;
00059
00061 void RemoveObserver(unsigned long tag);
00062
00064 void RemoveAllObservers();
00065
00067 bool HasObserver( const Event & event ) const;
00068
00069 protected:
00070
00071 private:
00072 SubjectInternals *Internals;
00073 private:
00074 };
00075
00076 }
00077
00078 #endif //GDCMSUBJECT_H
00079