Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

Reference< DELEGATE > Class Template Reference

#include <Reference.hpp>

Inheritance diagram for Reference< DELEGATE >:

List of all members.

Public Types

typedef DELEGATE DELEGATE_T
typedef
::dds::core::smart_ptr_traits
< DELEGATE >::ref_type 
DELEGATE_REF_T
typedef
::dds::core::smart_ptr_traits
< DELEGATE >::weak_ref_type 
DELEGATE_WEAK_REF_T

Public Member Functions

 ~Reference ()
 operator DELEGATE_REF_T () const
template<typename R >
bool operator== (const R &ref) const
template<typename R >
bool operator!= (const R &ref) const
template<typename D >
Referenceoperator= (const Reference< D > &that)
template<typename R >
Referenceoperator= (const R &rhs)
Referenceoperator= (const null_type)
bool is_nil () const
bool operator== (const null_type) const
bool operator!= (const null_type nil) const
const DELEGATE_REF_Tdelegate () const
DELEGATE_REF_Tdelegate ()
DELEGATE * operator-> ()
const DELEGATE * operator-> () const

Protected Member Functions

 Reference ()
 Reference (const Reference &ref)
template<typename D >
 Reference (const Reference< D > &ref)
template<typename R >
 Reference (const R &that)
 Reference (DELEGATE_T *p)
 Reference (const DELEGATE_REF_T &ref)

Protected Attributes

DELEGATE_REF_T impl_

Detailed Description

template<typename DELEGATE>
class dds::core::Reference< DELEGATE >

The Reference class defines the abstract behavior for those type defined as "reference-type" in the DDS-PSM-CXX specification.

Definition at line 37 of file Reference.hpp.


Member Typedef Documentation

typedef ::dds::core::smart_ptr_traits< DELEGATE >::ref_type DELEGATE_REF_T
typedef DELEGATE DELEGATE_T
typedef ::dds::core::smart_ptr_traits< DELEGATE >::weak_ref_type DELEGATE_WEAK_REF_T

Constructor & Destructor Documentation

Reference (  )  [inline, protected]

Creates a "null" reference.

Definition at line 46 of file Reference.hpp.

Reference ( const Reference< DELEGATE > &  ref  )  [inline, protected]

Creates a reference from another.

Parameters:
ref the other reference

Definition at line 55 of file Reference.hpp.

Reference ( const Reference< D > &  ref  )  [inline, protected]

Enables safe assignment from other reference types.

Parameters:
ref the other reference

Definition at line 65 of file Reference.hpp.

Reference ( const R &  that  )  [inline, protected]

Definition at line 73 of file Reference.hpp.

Reference ( DELEGATE_T p  )  [inline, explicit, protected]

Definition at line 78 of file Reference.hpp.

Reference ( const DELEGATE_REF_T ref  )  [inline, protected]

Definition at line 82 of file Reference.hpp.

~Reference (  )  [inline]

Destroys a reference.

Definition at line 90 of file Reference.hpp.


Member Function Documentation

const DELEGATE_REF_T& delegate (  )  const [inline]

Returns a reference to the uderlying delegate. This can be used to invoke non-standard extensions provided by the DDS implementor.

Returns:
a reference to delegate.

Definition at line 210 of file Reference.hpp.

DELEGATE_REF_T& delegate (  )  [inline]

Returns a reference to the underlying delegate. This can be used to invoke non-standard extensions provided by the DDS implementor.

Returns:
a reference to delegate.

Definition at line 220 of file Reference.hpp.

bool is_nil (  )  const [inline]

Returns true if this reference object is nil, meaning pointing to null.

Definition at line 160 of file Reference.hpp.

operator DELEGATE_REF_T (  )  const [inline]

Definition at line 95 of file Reference.hpp.

bool operator!= ( const null_type  nil  )  const [inline]

Special operator!= used to check if this reference object does not equals the null reference. The non-null-check can be done like this: bool is_null = (r != dds::null); If r is a non-null reference the is_null variable will have the false value.

Returns:
true if this reference is null.

Definition at line 193 of file Reference.hpp.

bool operator!= ( const R &  ref  )  const [inline]

Compares two reference objects and returns true if they are not-equal. Inequality is based on the referential inequality of the object being pointed.

Parameters:
ref the other reference object

Definition at line 119 of file Reference.hpp.

const DELEGATE* operator-> (  )  const [inline]

The operator->() is provided to be able to directly invoke methods on the delegate. The choice to provide direct access to the delegate was motivated by the need for providing a way that was not invasive with respect to the CXXDDS API and yet would allow for Vendor Specific extension. Thus, vendor specific extensions can be invocked on the Reference and on all its subclasses as follows:

my_dds_entity.standard_method(); my_dds_entity->vendor_specific_extension();

Returns:
a reference to delegate.

Definition at line 260 of file Reference.hpp.

DELEGATE* operator-> (  )  [inline]

The operator->() is provided to be able to directly invoke methods on the delegate. The choice to provide direct access to the delegate was motivated by the need for providing a way that was not invasive with respect to the CXXDDS API and yet would allow for Vendor Specific extension. Thus, vendor specific extensions can be invoked on the Reference and on all its subclasses as follows:

my_dds_entity.standard_method(); my_dds_entity->vendor_specific_extension();

Returns:
a reference to delegate.

Definition at line 240 of file Reference.hpp.

Reference& operator= ( const Reference< D > &  that  )  [inline]

Definition at line 124 of file Reference.hpp.

Reference& operator= ( const R &  rhs  )  [inline]

Definition at line 133 of file Reference.hpp.

Reference& operator= ( const   null_type  )  [inline]

Special assignment operators that takes care of assigning null to this reference. When assigning null, there might be an associated garbage collection activity.

In essence this assignment operators takes care of allowing programmers to write: MyRefType my_ref = //... my_ref = dds::null;

Definition at line 151 of file Reference.hpp.

bool operator== ( const   null_type  )  const [inline]

Special operator== used to check if this reference object equals the null reference. The null-check can be done like this: bool is_null = (r == dds::null); If r is a null reference the is_null variable will have the true value.

Returns:
true if this reference is null.

Definition at line 177 of file Reference.hpp.

bool operator== ( const R &  ref  )  const [inline]

Compares two reference objects and returns true if they are equal. Equality is based on the referential equality of the object being pointed.

Parameters:
ref the other reference object

Definition at line 107 of file Reference.hpp.


Member Data Documentation

DELEGATE_REF_T impl_ [protected]

Definition at line 265 of file Reference.hpp.


The documentation for this class was generated from the following file: