18 #ifndef __itkLightObject_h
19 #define __itkLightObject_h
32 #elif defined( __APPLE__ )
34 #include <AvailabilityMacros.h>
70 virtual Pointer CreateAnother()
const;
77 virtual void Delete();
82 virtual const char * GetNameOfClass()
const
83 {
return "LightObject"; }
87 void *
operator new(size_t);
89 void *
operator new[](size_t);
91 void operator delete(
void *);
93 void operator delete[](
void *, size_t);
98 void Print(std::ostream & os,
Indent indent = 0)
const;
102 static void BreakOnError();
105 virtual void Register()
const;
108 virtual void UnRegister()
const;
111 virtual int GetReferenceCount()
const
112 {
return static_cast< int >( m_ReferenceCount ); }
116 virtual void SetReferenceCount(
int);
126 virtual void PrintSelf(std::ostream & os,
Indent indent)
const;
128 virtual void PrintHeader(std::ostream & os,
Indent indent)
const;
130 virtual void PrintTrailer(std::ostream & os,
Indent indent)
const;
140 #if ( defined( WIN32 ) || defined( _WIN32 ) )
141 typedef LONG InternalReferenceCountType;
142 #elif defined( __APPLE__ ) && ( MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 )
143 #if defined ( __LP64__ ) && __LP64__
144 typedef volatile int64_t InternalReferenceCountType;
146 typedef volatile int32_t InternalReferenceCountType;
148 #elif defined( __GLIBCPP__ ) || defined( __GLIBCXX__ )
149 typedef _Atomic_word InternalReferenceCountType;
162 void operator=(
const Self &);