The Vish Visualization Shell 0.3
Vish
MemCore::SelfPtr< ObjectBase > Class Template Reference

The kind of pointer used within a ReferenceBase as part of the reference-counted object itself. More...

#include <elementary/memcore/RefPtr.hpp>

Inheritance diagram for MemCore::SelfPtr< ObjectBase >:
MemCore::WeakPtr< ObjectBase, ObjectBase > MemCore::DynPtr< ObjectBase, ObjectBase >

Additional Inherited Members

Public Types inherited from MemCore::WeakPtr< ObjectBase, ObjectBase >
typedef ObjectBase object_t
 Exporting the type of the derived class.
typedef ObjectBase ObjectBase_t
 Exporting the type of the base class.
typedef RefPtrTypeTrait< ObjectBase, ObjectBase >::ReferencePointerType pointer_t
 The result type of the pointer operator, may be changed with the RefPtrTypeTrait<> class.
typedef RefPtrTypeTrait< ObjectBase, ObjectBase >::ReferenceValueType refvalue_t
 The result of the dereferencing operator, may be changed with the RefPtrTypeTrait<> class.
Public Types inherited from MemCore::DynPtr< ObjectBase, ObjectBase >
template<typename Object>
using DerivedDynPtr = DynPtr<Object, ObjectBase>
 Template member referring to derived DynPtrs.
typedef DynPtr< ObjectBase, ObjectBase > DynPtr_t
 Base class pointer.
typedef ObjectBase object_t
 Type of the associated object.
using ObjectBase_t = ObjectBase
 Base class from which pointer hierarchy starts.
pointer_t getPtrValue () const
 The pointer value, checked for null.
pointer_t operator-> () const
 The pointer operator.
refvalue_toperator* () const
 The dereferencing *-operator.
size_t operator~ () const
 Convenience operator to easily retrieve the object count ID of the referenced object, a unique number for each instance.
 WeakPtr ()
 Default constructor, makes a NULL pointer.
 WeakPtr (const std::nullptr_t &)
 Explicitely construct NULL pointer.
 WeakPtr (const ReferenceBase< ObjectBase > *Obj)
 Weak pointer from reference base of object.
 WeakPtr (const ReferenceBase< ObjectBase > *Obj, const NotNullPtr &)
 Weak pointer from reference base of object which must not be null.
 WeakPtr (const WeakPtr< AnyObject, ObjectBase > &Other)
 Weak pointer from pointer to another class.
 WeakPtr (const WeakPtr &Other)
 Copy constructor.
 ~WeakPtr ()
 Default destructor, removes weak references to the object, the last one cleans up the referrer proxy object.
WeakPtrassignWeak (const WeakPtr &other)
 Assign a weak pointer (explicit function call, same as assignment operator for weak pointers).
WeakPtroperator= (const WeakPtr &other)
 Assignment operator (same as assignWeak() ).
Public Member Functions inherited from MemCore::DynPtr< ObjectBase, ObjectBase >
void deleteReferer ()
 Explicitely delete the intermediate referer and invalidate the internal pointer.
 DynPtr (const DynPtr &D)
 Copy constructor.
 DynPtr (const std::nullptr_t &)
 Construct from NullPtr.
 DynPtr (ObjectBase *Obj, const NotNullPtr &)
 Non=null constructor.
 DynPtr (ObjectBase *Obj, const SelfInitialize &)
 Internal constructor.
 DynPtr (Referer_t *SomeReferer)
 Construct from referer object.
bool expired () const noexcept
 check whether the current pointer is valid
bool force_destroy () const
 Delete the associated object unconditionally and mark this pointer as invalid.
const auto & getPointerID () const
 To be used as substitute for the address in memory as this one provides a more deterministic value to enhance reproducibility.
const type_info & getType () const noexcept
 Return type info of associated object,.
bool isAssignable (const DynPtr< ObjectBase, ObjectBase > &Other) const noexcept
 Check whether a given pointer to a base class may be assigned to a pointer of the derived class.
DynPtr & operator= (const DynPtr &P) noexcept
 Assignment operator, just copies the Referer pointer.
ObjectBase * rawptr () const
 return pointer to referenced object, if valid pointer, otherwise NULL.
void ref () const
 Increment the reference count.
void unref () const
 Decrement the reference count.
bool valid () const noexcept
 check whether the current pointer is valid
void wref () const noexcept
 increment the weak reference count
void wunref () noexcept
 Decrement the weak reference count and remove the referer if it reaches zero.
 ~DynPtr ()
 Destructor of the dynamic pointer.
 operator void * () const noexcept
 Check if the pointer is valid.
bool operator! () const noexcept
 Check if the pointer is null.
refcount_t strong_refs () const noexcept
 Return the strong reference count, ie.
refcount_t weak_refs () const noexcept
 Return the weak reference count, ie.
size_t hash_value () const noexcept
 Return an integer value which is suitable for hashing.
const void * value () const noexcept
 Return an void* value for debug output. Must not be used otherwise!
std::string addrstr () const noexcept
 make a string containing hex numbers from the object's adress.
std::string to_string () const
 Convert information about this pointer to a human-readable form.
void speak (const char *s, const char *prefix="") const noexcept
 Print some debug messages to the console via printf().
void Speak (const char *s, const char *prefix="") const
 Print some debug messages to the console via printf(); this is a higher-level version of speak() which demangles the type names.
bool operator!= (const std::nullptr_t &) const noexcept
 inequality operator
bool operator!= (const DynPtr &other) const noexcept
 inequality operator
bool operator== (const DynPtr &other) const noexcept
 Equality operator.
bool operator< (const DynPtr &other) const noexcept
 lesser than operator
bool operator<= (const DynPtr &other) const noexcept
 lesser equal than operator
bool operator> (const DynPtr &other) const noexcept
 greater than operator
bool operator>= (const DynPtr &other) const noexcept
 greater than operator
Public Attributes inherited from MemCore::DynPtr< ObjectBase, ObjectBase >
Memcore_DynPtr_pointer_ID_class_access : PointerID_t myPointerID = -1
 The intermediate referer object for indirect referencing.
Protected Member Functions inherited from MemCore::WeakPtr< ObjectBase, ObjectBase >
 WeakPtr (ObjectBase *that, const SelfInitialize &)
 Internal constructor used when initializing an object with its own self-reference.
Protected Member Functions inherited from MemCore::DynPtr< ObjectBase, ObjectBase >
void assignReferer (const DynPtr &P) noexcept
 Assignment, copies the Referer pointer, used within derived classes.

Detailed Description

template<class ObjectBase>
class MemCore::SelfPtr< ObjectBase >

The kind of pointer used within a ReferenceBase as part of the reference-counted object itself.

It will set the myReferer object reference on zero during destruction, indicating that this object has vanished to all weak and strong pointers.