Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

rovsoft::lib::Ptr Class Reference

An auto pointer class. More...

#include <Ptr.hh>

Inheritance diagram for rovsoft::lib::Ptr:

Inheritance graph
[legend]
Collaboration diagram for rovsoft::lib::Ptr:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Ptr (PtrTarget *ptr=0)
 Creates a new Ptr object initilized with ptr.
 Ptr (const Ptr &orig)
 Just copy this object, it's a cheap copy, the size of this object is only 4 byte.
Ptroperator= (const Ptr &orig)
 Copy a Ptr object.
Ptroperator= (PtrTarget *ptr)
 Set this pointer to a new target.
PtrTargetoperator * ()
 Gets the target.
const PtrTargetoperator * () const
 Gets the target- const version.
PtrTargetoperator-> ()
 Gets the object to which this pointer points to.
const PtrTargetoperator-> () const
 A Ptr object associates its self so much with the object it points to, that if you declare the Ptr object to be constant, you only get a const version of the target.
bool isNull () const
 Test if this is a null pointer.
bool operator== (const Ptr &op) const
 Compare two pointers with each other.
bool operator!= (const Ptr &op) const
 ~Ptr ()
 Destructor, deletes the target if this pointer was the last.

Protected Member Functions

void removeTarget ()
 This method is used for decrementing the reference counter of the target and is responsible for deleting the target if the reference counter reaches 0.

Protected Attributes

PtrTargettarget

Detailed Description

An auto pointer class.

If such a pointer is copied it increments its targets counter, if a ptr object gets destroyed it decrements its targets counter, if the counter reaches 0 the target gets destroyed. This class and all of its subclasses only work with classes derieved from PtrTarget.

See also:
PtrTarget for further descriptions.


Constructor & Destructor Documentation

rovsoft::lib::Ptr::Ptr PtrTarget ptr = 0  ) 
 

Creates a new Ptr object initilized with ptr.

Parameters:
ptr Points to an object which should be managed by this Ptr object.

rovsoft::lib::Ptr::Ptr const Ptr orig  ) 
 

Just copy this object, it's a cheap copy, the size of this object is only 4 byte.

Parameters:
orig The object being copied.

rovsoft::lib::Ptr::~Ptr  ) 
 

Destructor, deletes the target if this pointer was the last.

Here is the call graph for this function:


Member Function Documentation

bool rovsoft::lib::Ptr::isNull  )  const [inline]
 

Test if this is a null pointer.

const PtrTarget& rovsoft::lib::Ptr::operator *  )  const [inline]
 

Gets the target- const version.

Reimplemented in rovsoft::io::EndOfSegmentExceptionPtr, rovsoft::io::InvalidEncodingExceptionPtr, rovsoft::io::IOExceptionPtr, rovsoft::io::PrefixedDataExceptionPtr, rovsoft::io::ReadOnlyExceptionPtr, rovsoft::io::TargetUnreachableExceptionPtr, rovsoft::io::UnprefixedMetaDataExceptionPtr, rovsoft::io::WriteOnlyExceptionPtr, rovsoft::lib::ExceptionPtr, rovsoft::lib::NullPointerExceptionPtr, rovsoft::lib::OutOfRangeExceptionPtr, rovsoft::lib::ThrowablePtr, rovsoft::messages::BoolCommandMessagePtr, rovsoft::messages::ByteTypeMessagePtr, rovsoft::messages::FloatFloatTypeMessagePtr, rovsoft::messages::LowEnergyShutdownMessagePtr, rovsoft::messages::MessagePtr, rovsoft::messages::MotionCommandMessagePtr, rovsoft::messages::NBoolCommandMessagePtr, rovsoft::messages::NByteTypeMessagePtr, rovsoft::messages::NConfirmationMessagePtr, rovsoft::messages::NMotionCommandMessagePtr, rovsoft::messages::NShortTypeMessagePtr, rovsoft::messages::NUByteTypeMessagePtr, rovsoft::messages::NumberedMessagePtr, rovsoft::messages::ShortTypeMessagePtr, rovsoft::messages::TimedRebootMessagePtr, rovsoft::messages::TimeStampedMessagePtr, rovsoft::messages::TsFloatTypeMessagePtr, rovsoft::messages::TsUByteTypeMessagePtr, rovsoft::messages::UByteTypeMessagePtr, and rovsoft::messages::UShortTypeMessagePtr.

PtrTarget& rovsoft::lib::Ptr::operator *  )  [inline]
 

Gets the target.

Reimplemented in rovsoft::io::EndOfSegmentExceptionPtr, rovsoft::io::InvalidEncodingExceptionPtr, rovsoft::io::IOExceptionPtr, rovsoft::io::PrefixedDataExceptionPtr, rovsoft::io::ReadOnlyExceptionPtr, rovsoft::io::TargetUnreachableExceptionPtr, rovsoft::io::UnprefixedMetaDataExceptionPtr, rovsoft::io::WriteOnlyExceptionPtr, rovsoft::lib::ExceptionPtr, rovsoft::lib::NullPointerExceptionPtr, rovsoft::lib::OutOfRangeExceptionPtr, rovsoft::lib::ThrowablePtr, rovsoft::messages::BoolCommandMessagePtr, rovsoft::messages::ByteTypeMessagePtr, rovsoft::messages::FloatFloatTypeMessagePtr, rovsoft::messages::LowEnergyShutdownMessagePtr, rovsoft::messages::MessagePtr, rovsoft::messages::MotionCommandMessagePtr, rovsoft::messages::NBoolCommandMessagePtr, rovsoft::messages::NByteTypeMessagePtr, rovsoft::messages::NConfirmationMessagePtr, rovsoft::messages::NMotionCommandMessagePtr, rovsoft::messages::NShortTypeMessagePtr, rovsoft::messages::NUByteTypeMessagePtr, rovsoft::messages::NumberedMessagePtr, rovsoft::messages::ShortTypeMessagePtr, rovsoft::messages::TimedRebootMessagePtr, rovsoft::messages::TimeStampedMessagePtr, rovsoft::messages::TsFloatTypeMessagePtr, rovsoft::messages::TsUByteTypeMessagePtr, rovsoft::messages::UByteTypeMessagePtr, and rovsoft::messages::UShortTypeMessagePtr.

bool rovsoft::lib::Ptr::operator!= const Ptr op  )  const [inline]
 

const PtrTarget* rovsoft::lib::Ptr::operator->  )  const [inline]
 

A Ptr object associates its self so much with the object it points to, that if you declare the Ptr object to be constant, you only get a const version of the target.

Reimplemented in rovsoft::io::EndOfSegmentExceptionPtr, rovsoft::io::InvalidEncodingExceptionPtr, rovsoft::io::IOExceptionPtr, rovsoft::io::PrefixedDataExceptionPtr, rovsoft::io::ReadOnlyExceptionPtr, rovsoft::io::TargetUnreachableExceptionPtr, rovsoft::io::UnprefixedMetaDataExceptionPtr, rovsoft::io::WriteOnlyExceptionPtr, rovsoft::lib::ExceptionPtr, rovsoft::lib::NullPointerExceptionPtr, rovsoft::lib::OutOfRangeExceptionPtr, rovsoft::lib::ThrowablePtr, rovsoft::messages::BoolCommandMessagePtr, rovsoft::messages::ByteTypeMessagePtr, rovsoft::messages::FloatFloatTypeMessagePtr, rovsoft::messages::LowEnergyShutdownMessagePtr, rovsoft::messages::MessagePtr, rovsoft::messages::MotionCommandMessagePtr, rovsoft::messages::NBoolCommandMessagePtr, rovsoft::messages::NByteTypeMessagePtr, rovsoft::messages::NConfirmationMessagePtr, rovsoft::messages::NMotionCommandMessagePtr, rovsoft::messages::NShortTypeMessagePtr, rovsoft::messages::NUByteTypeMessagePtr, rovsoft::messages::NumberedMessagePtr, rovsoft::messages::ShortTypeMessagePtr, rovsoft::messages::TimedRebootMessagePtr, rovsoft::messages::TimeStampedMessagePtr, rovsoft::messages::TsFloatTypeMessagePtr, rovsoft::messages::TsUByteTypeMessagePtr, rovsoft::messages::UByteTypeMessagePtr, and rovsoft::messages::UShortTypeMessagePtr.

PtrTarget* rovsoft::lib::Ptr::operator->  )  [inline]
 

Gets the object to which this pointer points to.

Reimplemented in rovsoft::io::EndOfSegmentExceptionPtr, rovsoft::io::InvalidEncodingExceptionPtr, rovsoft::io::IOExceptionPtr, rovsoft::io::PrefixedDataExceptionPtr, rovsoft::io::ReadOnlyExceptionPtr, rovsoft::io::TargetUnreachableExceptionPtr, rovsoft::io::UnprefixedMetaDataExceptionPtr, rovsoft::io::WriteOnlyExceptionPtr, rovsoft::lib::ExceptionPtr, rovsoft::lib::NullPointerExceptionPtr, rovsoft::lib::OutOfRangeExceptionPtr, rovsoft::lib::ThrowablePtr, rovsoft::messages::BoolCommandMessagePtr, rovsoft::messages::ByteTypeMessagePtr, rovsoft::messages::FloatFloatTypeMessagePtr, rovsoft::messages::LowEnergyShutdownMessagePtr, rovsoft::messages::MessagePtr, rovsoft::messages::MotionCommandMessagePtr, rovsoft::messages::NBoolCommandMessagePtr, rovsoft::messages::NByteTypeMessagePtr, rovsoft::messages::NConfirmationMessagePtr, rovsoft::messages::NMotionCommandMessagePtr, rovsoft::messages::NShortTypeMessagePtr, rovsoft::messages::NUByteTypeMessagePtr, rovsoft::messages::NumberedMessagePtr, rovsoft::messages::ShortTypeMessagePtr, rovsoft::messages::TimedRebootMessagePtr, rovsoft::messages::TimeStampedMessagePtr, rovsoft::messages::TsFloatTypeMessagePtr, rovsoft::messages::TsUByteTypeMessagePtr, rovsoft::messages::UByteTypeMessagePtr, and rovsoft::messages::UShortTypeMessagePtr.

Ptr & rovsoft::lib::Ptr::operator= PtrTarget ptr  ) 
 

Set this pointer to a new target.

Here is the call graph for this function:

Ptr & rovsoft::lib::Ptr::operator= const Ptr orig  ) 
 

Copy a Ptr object.

Here is the call graph for this function:

bool rovsoft::lib::Ptr::operator== const Ptr op  )  const [inline]
 

Compare two pointers with each other.

(Is their target the same?)

void rovsoft::lib::Ptr::removeTarget  )  [protected]
 

This method is used for decrementing the reference counter of the target and is responsible for deleting the target if the reference counter reaches 0.

It does this by calling the function refered by the targets deleteFunction pointer. For further information please see the PtrTarget class.


Member Data Documentation

PtrTarget* rovsoft::lib::Ptr::target [protected]
 


The documentation for this class was generated from the following files:
Generated on Tue May 31 14:19:51 2005 for Rovsoft by  doxygen 1.4.3