Phoenix
Object-oriented orthogonally persistent operating system
Public Member Functions
triton::Ptr< T > Class Template Reference

Class for storing pointers to Triton objects. More...

#include <ptr.h>

List of all members.

Public Member Functions

 Ptr ()
 Construct null-pointer.
 Ptr (T *objPtr)
 Construct pointer by pointer to an object.
 Ptr (T &obj)
 Construct pointer by a reference to an object.
 Ptr (Ptr< T > &ptr)
 Construct pointer from another pointer.
 Ptr (Ptr< T > &&ptr)
 Move object reference from another pointer to a newly constructed one.
 ~Ptr ()
 Destruct pointer and release reference to an object.
Ptr< T > & operator= (Ptr< T > &ptr)
 Assignment operator.
Ptr< T > & operator= (Ptr< T > &&ptr)
 Assignment operator with moving.
Ptr< T > & operator= (T *objPtr)
 Assignment operator for object pointer assignment.
Ptr< T > & operator= (T &obj)
 Assignment operator for object reference assignment.
bool operator== (const Ptr< T > &ptr) const
 Pointers comparison operator.
bool operator!= (const Ptr< T > &ptr) const
 Pointers comparison operator.
 operator bool () const
 Boolean casting operator.
T & operator* () const
 Dereference operator.
T * operator-> () const
 Member access operator.

Detailed Description

template<class T>
class triton::Ptr< T >

Class for storing pointers to Triton objects.

Whenever a pointer to an object is created, passed or stored it should be wrapped into this class.


Constructor & Destructor Documentation

template<class T>
triton::Ptr< T >::Ptr ( ) [inline]

Construct null-pointer.

template<class T>
triton::Ptr< T >::Ptr ( T *  objPtr) [inline]

Construct pointer by pointer to an object.

The object will be automatically deleted when last reference is released.

Parameters:
objPtrPointer to a referenced object.
template<class T>
triton::Ptr< T >::Ptr ( T &  obj) [inline]

Construct pointer by a reference to an object.

The object will not be automatically deleted upon last reference releasing but still will have proper reference counter kept.

Parameters:
objReference to an object.
template<class T>
triton::Ptr< T >::Ptr ( Ptr< T > &  ptr) [inline]

Construct pointer from another pointer.

Parameters:
ptrAnother pointer to get object from.
template<class T>
triton::Ptr< T >::Ptr ( Ptr< T > &&  ptr) [inline]

Move object reference from another pointer to a newly constructed one.

Parameters:
ptrPointer to move object reference from.
template<class T>
triton::Ptr< T >::~Ptr ( ) [inline]

Destruct pointer and release reference to an object.

Referenced object is deleted if last reference was released and object can be deleted.


Member Function Documentation

template<class T>
triton::Ptr< T >::operator bool ( ) const [inline]

Boolean casting operator.

Can be used for null-pointer checks.

template<class T>
bool triton::Ptr< T >::operator!= ( const Ptr< T > &  ptr) const [inline]

Pointers comparison operator.

Returns:
true if pointers are not equal.
template<class T>
T& triton::Ptr< T >::operator* ( ) const [inline]

Dereference operator.

Will throw NullPtrError if the pointer is currently storing null.

Returns:
Referenced object.
template<class T>
T* triton::Ptr< T >::operator-> ( ) const [inline]

Member access operator.

Will throw NullPtrError if the pointer is currently storing null.

Returns:
Pointer to referenced object.
template<class T>
Ptr<T>& triton::Ptr< T >::operator= ( T *  objPtr) [inline]

Assignment operator for object pointer assignment.

template<class T>
Ptr<T>& triton::Ptr< T >::operator= ( Ptr< T > &  ptr) [inline]

Assignment operator.

Parameters:
ptrPointer to assign object reference from.
Returns:
Reference to itself.
template<class T>
Ptr<T>& triton::Ptr< T >::operator= ( T &  obj) [inline]

Assignment operator for object reference assignment.

template<class T>
Ptr<T>& triton::Ptr< T >::operator= ( Ptr< T > &&  ptr) [inline]

Assignment operator with moving.

Parameters:
ptrPointer to move object reference from.
Returns:
Reference to itself.
template<class T>
bool triton::Ptr< T >::operator== ( const Ptr< T > &  ptr) const [inline]

Pointers comparison operator.

Returns:
true if both pointers are equal.

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines