Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

igtlObject.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Open IGT Link Library
00004   Module:    $HeadURL: http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink/Source/igtlObject.h $
00005   Language:  C++
00006   Date:      $Date: 2008-12-22 19:05:42 -0500 (Mon, 22 Dec 2008) $
00007   Version:   $Revision: 3460 $
00008 
00009   Copyright (c) Insight Software Consortium. All rights reserved.
00010 
00011   This software is distributed WITHOUT ANY WARRANTY; without even
00012   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00013   PURPOSE.  See the above copyright notices for more information.
00014 
00015 =========================================================================*/
00016 /*=========================================================================
00017 
00018   Program:   Insight Segmentation & Registration Toolkit
00019   Module:    $RCSfile: itkObject.h,v $
00020   Language:  C++
00021   Date:      $Date: 2008-12-22 19:05:42 -0500 (Mon, 22 Dec 2008) $
00022   Version:   $Revision: 3460 $
00023 
00024   Copyright (c) Insight Software Consortium. All rights reserved.
00025   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00026 
00027   Portions of this code are covered under the VTK copyright.
00028   See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details.
00029 
00030      This software is distributed WITHOUT ANY WARRANTY; without even 
00031      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00032      PURPOSE.  See the above copyright notices for more information.
00033 
00034 =========================================================================*/
00035 #ifndef __igtlObject_h
00036 #define __igtlObject_h
00037 
00038 #include "igtlLightObject.h"
00039 //#include "igtlTimeStamp.h"
00040 //#include "igtlEventObject.h"
00041 //#include "igtlMetaDataDictionary.h"
00042 
00043 #include "igtlConfigure.h"
00044 
00045 namespace igtl
00046 {
00047   //class SubjectImplementation;
00048   //class Command;
00049 
00062 class IGTLCommon_EXPORT Object: public LightObject
00063 {
00064 public:
00066   typedef Object              Self;
00067   typedef LightObject         Superclass;
00068   typedef SmartPointer<Self>  Pointer;
00069   typedef SmartPointer<const Self>  ConstPointer;
00070 
00072   static Pointer New();
00073 
00079   virtual LightObject::Pointer CreateAnother() const;
00080 
00082   igtlTypeMacro(Object, LightObject);
00083 
00085   virtual void DebugOn() const;
00086 
00088   virtual void DebugOff() const;
00089 
00091   bool GetDebug() const;
00092 
00094   void SetDebug(bool debugFlag) const;
00095 
00097   //  virtual unsigned long GetMTime() const;
00098 
00101   //  virtual void Modified() const;
00102 
00104   virtual void Register() const;
00105 
00107   virtual void UnRegister() const;
00108 
00110   virtual void SetReferenceCount(int);
00111 
00114   static void SetGlobalWarningDisplay(bool flag);
00115   static bool GetGlobalWarningDisplay();
00116   static void GlobalWarningDisplayOn()
00117     { Object::SetGlobalWarningDisplay(true); }
00118   static void GlobalWarningDisplayOff()
00119     { Object::SetGlobalWarningDisplay(false); }
00121 
00130 //  unsigned long AddObserver(const EventObject & event, Command *);
00131 //  unsigned long AddObserver(const EventObject & event, Command *) const;
00133 
00139   //Command* GetCommand(unsigned long tag);
00140 
00142   //void InvokeEvent( const EventObject & );
00143 
00146   //void InvokeEvent( const EventObject & ) const;
00147 
00149   //void RemoveObserver(unsigned long tag);
00150 
00152   //void RemoveAllObservers();
00153 
00155   //bool HasObserver( const EventObject & event ) const;
00156 
00161   //MetaDataDictionary & GetMetaDataDictionary(void);
00162 
00166   //const MetaDataDictionary & GetMetaDataDictionary(void) const;
00167 
00171   //void SetMetaDataDictionary(const MetaDataDictionary & rhs);
00172 
00173 
00174 protected:
00175   Object(); 
00176   virtual ~Object(); 
00177 
00182   virtual void PrintSelf(std::ostream& os) const;
00183 
00184   //bool PrintObservers(std::ostream& os) const;
00185 
00186 private:
00187   Object(const Self&); //purposely not implemented
00188   void operator=(const Self&); //purposely not implemented
00189 
00191   mutable bool m_Debug;
00192 
00194   //  mutable TimeStamp m_MTime;
00195 
00197   static bool m_GlobalWarningDisplay;
00198 
00201   //SubjectImplementation* m_SubjectImplementation;
00202 
00210   //mutable MetaDataDictionary * m_MetaDataDictionary;
00211 };
00212 
00213 } // end namespace igtl
00214 
00215 #endif
00216 
00217 

Generated at Sat Apr 17 12:12:15 2010 for OpenIGTLink by doxygen 1.6.3 written by Dimitri van Heesch, © 1997-2000