13 #ifndef BERRYOBJECT_H_
14 #define BERRYOBJECT_H_
30 #pragma warning( disable : 4250 4275 )
47 Indent(
int ind = 0) { m_Indent=ind; }
137 return m_ReferenceCount.loadRelaxed();
145 { m_DestroyMessage += delegate; }
147 { m_DestroyMessage -= delegate; }
156 #ifdef BLUEBERRY_DEBUG_SMARTPOINTER
157 unsigned int GetTraceId()
const;
159 unsigned int m_TraceId;
160 unsigned int& GetTraceIdCounter()
const;
190 void operator=(
const Self&);
204 if (obj ==
nullptr)
return;
Q_DECLARE_METATYPE(mitk::ProcessExecutor::Pointer)
org_blueberry_core_runtime_EXPORT QDebug operator<<(QDebug os, const berry::Object &o)
org_blueberry_core_runtime_EXPORT uint qHash(const berry::Object &o)
friend org_blueberry_core_runtime_EXPORT QDebug operator<<(QDebug os, const Indent &o)
Event/message/notification class.
Light weight base class for most BlueBerry classes.
virtual QDebug PrintHeader(QDebug os, Indent indent) const
berry::WeakPointer< const Self > ConstWeakPtr
virtual Reflection::TypeInfo GetTypeInfo() const
berry::SmartPointer< const Self > ConstPointer
berry::WeakPointer< Self > WeakPtr
virtual QDebug PrintSelf(QDebug os, Indent indent) const
virtual uint HashCode() const
QMutex m_ReferenceCountLock
QAtomicInt m_ReferenceCount
void SetReferenceCount(int)
virtual QList< Reflection::TypeInfo > GetSuperclasses() const
berry::SmartPointer< Self > Pointer
virtual bool operator==(const Object *) const
QDebug Print(QDebug os, Indent Indent=0) const
virtual bool operator<(const Object *) const
void UnRegister(bool del=true) const
static Reflection::TypeInfo GetStaticTypeInfo()
virtual QString GetClassName() const
static const char * GetStaticClassName()
virtual QDebug PrintTrailer(QDebug os, Indent indent) const
void RemoveDestroyListener(const MessageAbstractDelegate<> &delegate) const
int GetReferenceCount() const
static QList< Reflection::TypeInfo > GetStaticSuperclasses()
virtual QString ToString() const
void AddDestroyListener(const MessageAbstractDelegate<> &delegate) const
Implements transparent reference counting.
implements a WeakPointer class to deal with circular reference problems.
org_blueberry_core_runtime_EXPORT QDebug operator<<(QDebug os, const berry::Indent &o)
#define org_blueberry_core_runtime_EXPORT
static void cleanup(Object *obj)