Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkObject.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 
00011 #ifndef __mitkObject_h
00012 #define __mitkObject_h
00013 
00014 #include "mitkGlobal.h"
00015 
00016 class mitkList;
00017 class mitkObserver;
00018 
00040 class MITK_COMMON_API mitkObject
00041 {
00042 public:
00048     virtual const char *GetClassname() const {return "mitkObject";}
00049 
00056     static int IsTypeOf(const char *name);
00057 
00064     virtual int IsA(const char *name);
00065 
00071     static mitkObject *SafeDownCast(mitkObject *o);
00072 
00076     virtual void DebugOn();
00077 
00081     virtual void DebugOff();
00082 
00087     unsigned char GetDebug();
00088 
00094     void SetDebug(unsigned char debugFlag);
00095 
00099     static void BreakOnError();
00100 
00105     void Print(ostream& os);
00106 
00111     virtual void PrintSelf(ostream& os);
00112 
00117     void AddObserver(mitkObserver *observer);
00118 
00123     void RemoveObserver(mitkObserver *observer);
00124 
00128     void RemoveAllObservers();
00129 
00134     void AddReference();
00135 
00140     void RemoveReference();
00141 
00147     int  GetReferenceCount()    {return m_ReferenceCount;}
00148     
00158     void Delete();
00159 
00160 protected:
00161     mitkObject();    
00162     virtual ~mitkObject();
00163 
00164     void _updateObservers();
00165 
00166     int m_Debug;     // Enable debug messages
00167     int m_ReferenceCount;
00168 
00169     mitkList *m_Observers;
00170 
00171 private:
00172 
00173     friend ostream& operator << (ostream& os, mitkObject& o);
00174     mitkObject(const mitkObject&);
00175     void operator = (const mitkObject&);
00176 };
00177 
00178  
00179 //#define DEFINED_mitkObject
00180 
00181 
00182 
00183 #endif
00184 
00185 

Generated on Tue Feb 25 15:00:37 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3