gdcmSimpleSubjectWatcher.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program: GDCM (Grassroots DICOM). A DICOM library
00004   Module:  $URL$
00005 
00006   Copyright (c) 2006-2010 Mathieu Malaterre
00007   All rights reserved.
00008   See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 #ifndef GDCMSIMPLESUBJECTWATCHER_H
00016 #define GDCMSIMPLESUBJECTWATCHER_H
00017 
00018 #include "gdcmSubject.h"
00019 #include "gdcmCommand.h"
00020 #include "gdcmSmartPointer.h"
00021 #include "gdcmAnonymizeEvent.h"
00022 
00023 namespace gdcm
00024 {
00025 //-----------------------------------------------------------------------------
00026 class Event;
00031 class GDCM_EXPORT SimpleSubjectWatcher
00032 {
00033 public:
00034   SimpleSubjectWatcher(Subject * s, const char *comment = "");
00035   virtual ~SimpleSubjectWatcher();
00036 
00037 protected:
00038   virtual void StartFilter();
00039   virtual void EndFilter();
00040   virtual void ShowProgress(Subject *caller, const Event &evt);
00041   virtual void ShowIteration();
00042   virtual void ShowAnonymization(Subject *caller, const Event &evt);
00043   virtual void ShowAbort();
00044 
00045 protected:
00046   // Custom API used for internal Testing do not use !
00047   void TestAbortOn();
00048   void TestAbortOff();
00049 
00050 private:
00051   SmartPointer<gdcm::Subject> m_Subject;
00052   std::string m_Comment;
00053 
00054   typedef SimpleMemberCommand<SimpleSubjectWatcher> SimpleCommandType;
00055   typedef MemberCommand<SimpleSubjectWatcher> CommandType;
00056 
00057   SmartPointer<SimpleCommandType> m_StartFilterCommand;
00058   SmartPointer<SimpleCommandType> m_EndFilterCommand;
00059   SmartPointer<CommandType> m_ProgressFilterCommand;
00060   SmartPointer<SimpleCommandType> m_IterationFilterCommand;
00061   SmartPointer<SimpleCommandType> m_AbortFilterCommand;
00062   SmartPointer<CommandType> m_AnonymizeFilterCommand;
00063 
00064   unsigned long m_StartTag;
00065   unsigned long m_EndTag;
00066   unsigned long m_ProgressTag;
00067   unsigned long m_IterationTag;
00068   unsigned long m_AbortTag;
00069   unsigned long m_AnonymizeTag;
00070 
00071   bool m_TestAbort;
00072 
00073   SimpleSubjectWatcher(const SimpleSubjectWatcher&);  // Not implemented.
00074   void operator=(const SimpleSubjectWatcher&);  // Not implemented.
00075 };
00076 } // end namespace gdcm
00077 //-----------------------------------------------------------------------------
00078 #endif //GDCMSIMPLESUBJECTWATCHER_H

Generated on Sat Dec 4 2010 08:58:47 for GDCM by doxygen 1.7.2
SourceForge.net Logo