42#ifndef TEUCHOS_HANDLE_HPP
43#define TEUCHOS_HANDLE_HPP
78 template <
typename Po
interType>
99 {
ptr_=rcp_const_cast<const PointerType>(ptr);}
105 {
return rcp_const_cast<PointerType>(
ptr_);}
134 template <
typename Po
interType>
179#define TEUCHOS_HANDLE_CTORS(handle, contents) \
180handle() : Teuchos::Handle<contents >() {;} \
181handle(Teuchos::Handleable<contents >* rawPtr) : Teuchos::Handle<contents >(rawPtr) {;} \
182handle(const Teuchos::RCP<contents >& smartPtr) : Teuchos::Handle<contents >(smartPtr){;}
195#define TEUCHOS_CONST_HANDLE_CTORS(handle, contents) \
196handle( Teuchos::ENull _null = Teuchos::null ) : Teuchos::ConstHandle<contents >() {;} \
197handle(const Teuchos::ConstHandleable<contents >* rawPtr) : Teuchos::ConstHandle<contents >(rawPtr) {;} \
198handle(const Teuchos::RCP<const contents >& smartPtr) : Teuchos::ConstHandle<contents >(smartPtr){;}
Teuchos header file which uses auto-configuration information to include necessary C++ headers.
Reference-counted pointer class and non-member templated function implementations.
Templated handle class with strong const protection.
void setRcp(const RCP< PointerType > &ptr)
This function is needed in Handle ctors.
ConstHandle(const ConstHandleable< PointerType > *ptr)
Construct with a raw pointer to a ConstHandleable. This will make a call to rcp(),...
const PointerType *const rawPtr()
Access to raw pointer.
RCP< PointerType > nonConstPtr() const
Protected non-const access to the underlying smart pointer.
RCP< const PointerType > ptr_
const RCP< const PointerType > & constPtr() const
Read-only access to the underlying smart pointer.
ConstHandle(const RCP< const PointerType > &ptr)
Construct with an existing RCP.
ConstHandle()
The empty ctor will only be called by Handle ctors.
Class ConstHandleable provides an abstract interface for polymorphic conversion from raw pointers to ...
Base class for all objects that can describe themselves.
Generic templated handle class.
RCP< PointerType > ptr() const
Read/write access to the underlying smart pointer.
Handle(const RCP< PointerType > &smartPtr)
Construct with an existing RCP.
PointerType * rawPtr() const
Access to non-const raw pointer.
Handle(Handleable< PointerType > *rawPtr)
Construct with a raw pointer to a Handleable.
Class Handleable provides an abstract interface for polymorphic conversion from raw pointers to smart...
Smart reference counting pointer class for automatic garbage collection.
T * get() const
Get the raw C++ pointer to the underlying object.