Rcpp Version 0.9.10
Rcpp::XPtr< T, Finalizer > Class Template Reference

#include <XPtr.h>

Inheritance diagram for Rcpp::XPtr< T, Finalizer >:
Collaboration diagram for Rcpp::XPtr< T, Finalizer >:

List of all members.

Classes

class  ProtectedProxy
class  TagProxy

Public Member Functions

 XPtr (SEXP m_sexp, SEXP tag=R_NilValue, SEXP prot=R_NilValue)
 XPtr (T *p, bool set_delete_finalizer=true, SEXP tag=R_NilValue, SEXP prot=R_NilValue)
 XPtr (const XPtr &other)
XPtroperator= (const XPtr &other)
T & operator* () const
T * operator-> () const
void setDeleteFinalizer ()
 operator T * ()
TagProxy tag ()
ProtectedProxy prot ()

Detailed Description

template<typename T, void Finalizer = standard_delete_finalizer<T>>
class Rcpp::XPtr< T, Finalizer >

Definition at line 51 of file XPtr.h.


Constructor & Destructor Documentation

template<typename T, void Finalizer = standard_delete_finalizer<T>>
Rcpp::XPtr< T, Finalizer >::XPtr ( SEXP  m_sexp,
SEXP  tag = R_NilValue,
SEXP  prot = R_NilValue 
) [inline, explicit]

constructs a XPtr wrapping the external pointer (EXTPTRSXP SEXP)

Parameters:
xpexternal pointer to wrap

Definition at line 59 of file XPtr.h.

References Rcpp::XPtr< T, Finalizer >::prot(), and Rcpp::XPtr< T, Finalizer >::tag().

Here is the call graph for this function:

template<typename T, void Finalizer = standard_delete_finalizer<T>>
Rcpp::XPtr< T, Finalizer >::XPtr ( T *  p,
bool  set_delete_finalizer = true,
SEXP  tag = R_NilValue,
SEXP  prot = R_NilValue 
) [inline, explicit]

creates a new external pointer wrapping the dumb pointer p.

Parameters:
pdumb pointer to some object
set_delete_finalizerif set to true, a finalizer will be registered for the external pointer. The finalizer is called when the xp is garbage collected. The finalizer is merely a call to the delete operator or the pointer so you need to make sure the pointer can be "delete" d this way (has to be a C++ object)

Definition at line 77 of file XPtr.h.

References Rcpp::XPtr< T, Finalizer >::prot(), Rcpp::XPtr< T, Finalizer >::setDeleteFinalizer(), Rcpp::RObject::setSEXP(), and Rcpp::XPtr< T, Finalizer >::tag().

Here is the call graph for this function:

template<typename T, void Finalizer = standard_delete_finalizer<T>>
Rcpp::XPtr< T, Finalizer >::XPtr ( const XPtr< T, Finalizer > &  other) [inline]

Definition at line 85 of file XPtr.h.


Member Function Documentation

template<typename T, void Finalizer = standard_delete_finalizer<T>>
Rcpp::XPtr< T, Finalizer >::operator T * ( ) [inline]

Definition at line 112 of file XPtr.h.

References Rcpp::RObject::m_sexp.

template<typename T, void Finalizer = standard_delete_finalizer<T>>
T& Rcpp::XPtr< T, Finalizer >::operator* ( ) const [inline]

Returns a reference to the object wrapped. This allows this object to look and feel like a dumb pointer to T

Definition at line 96 of file XPtr.h.

References Rcpp::RObject::m_sexp.

template<typename T, void Finalizer = standard_delete_finalizer<T>>
T* Rcpp::XPtr< T, Finalizer >::operator-> ( ) const [inline]

Returns the dumb pointer. This allows to call the -> operator on this as if it was the dumb pointer

Definition at line 104 of file XPtr.h.

References Rcpp::RObject::m_sexp.

template<typename T, void Finalizer = standard_delete_finalizer<T>>
XPtr& Rcpp::XPtr< T, Finalizer >::operator= ( const XPtr< T, Finalizer > &  other) [inline]

Definition at line 87 of file XPtr.h.

References Rcpp::RObject::asSexp(), and Rcpp::RObject::setSEXP().

Here is the call graph for this function:

template<typename T, void Finalizer = standard_delete_finalizer<T>>
ProtectedProxy Rcpp::XPtr< T, Finalizer >::prot ( ) [inline]

Definition at line 176 of file XPtr.h.

Referenced by Rcpp::XPtr< T, Finalizer >::XPtr().

template<typename T, void Finalizer = standard_delete_finalizer<T>>
void Rcpp::XPtr< T, Finalizer >::setDeleteFinalizer ( ) [inline]

Definition at line 108 of file XPtr.h.

References Rcpp::RObject::m_sexp.

Referenced by Rcpp::XPtr< T, Finalizer >::XPtr().

template<typename T, void Finalizer = standard_delete_finalizer<T>>
TagProxy Rcpp::XPtr< T, Finalizer >::tag ( ) [inline]

Definition at line 143 of file XPtr.h.

Referenced by Rcpp::XPtr< T, Finalizer >::XPtr().


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