OpenDDS::DCPS::unique_ptr< T, Deleter > Class Template Reference

#include <unique_ptr.h>

Collaboration diagram for OpenDDS::DCPS::unique_ptr< T, Deleter >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef T element_type
typedef Deleter deleter_type
typedef rv< unique_ptr > & rv_reference

Public Member Functions

 unique_ptr (T *p=0)
 unique_ptr (rv_reference other)
 ~unique_ptr ()
unique_ptroperator= (rv< unique_ptr > &other)
void reset (T *p=0)
T * release ()
T & operator* () const
T * operator-> () const
T * get () const
 operator bool () const
void swap (unique_ptr &b)

Private Member Functions

 unique_ptr (const unique_ptr &)
unique_ptroperator= (const unique_ptr &)

Private Attributes

T * ptr_

Detailed Description

template<typename T, typename Deleter = default_deleter<T>>
class OpenDDS::DCPS::unique_ptr< T, Deleter >

Definition at line 66 of file unique_ptr.h.


Member Typedef Documentation

template<typename T, typename Deleter = default_deleter<T>>
typedef Deleter OpenDDS::DCPS::unique_ptr< T, Deleter >::deleter_type

Definition at line 69 of file unique_ptr.h.

template<typename T, typename Deleter = default_deleter<T>>
typedef T OpenDDS::DCPS::unique_ptr< T, Deleter >::element_type

Definition at line 68 of file unique_ptr.h.

template<typename T, typename Deleter = default_deleter<T>>
typedef rv<unique_ptr>& OpenDDS::DCPS::unique_ptr< T, Deleter >::rv_reference

Definition at line 76 of file unique_ptr.h.


Constructor & Destructor Documentation

template<typename T, typename Deleter = default_deleter<T>>
OpenDDS::DCPS::unique_ptr< T, Deleter >::unique_ptr ( T *  p = 0  )  [inline, explicit]

Definition at line 71 of file unique_ptr.h.

00072     : ptr_(p)
00073   {}

template<typename T, typename Deleter = default_deleter<T>>
OpenDDS::DCPS::unique_ptr< T, Deleter >::unique_ptr ( rv_reference  other  )  [inline]

Definition at line 81 of file unique_ptr.h.

00082     : ptr_(other.release())
00083   {}

template<typename T, typename Deleter = default_deleter<T>>
OpenDDS::DCPS::unique_ptr< T, Deleter >::~unique_ptr (  )  [inline]

Definition at line 85 of file unique_ptr.h.

00086   {
00087     Deleter()(ptr_);
00088   }

template<typename T, typename Deleter = default_deleter<T>>
OpenDDS::DCPS::unique_ptr< T, Deleter >::unique_ptr ( const unique_ptr< T, Deleter > &   )  [private]

Member Function Documentation

template<typename T, typename Deleter = default_deleter<T>>
T* OpenDDS::DCPS::unique_ptr< T, Deleter >::get ( void   )  const [inline]

Definition at line 119 of file unique_ptr.h.

Referenced by TAO_DDS_DCPSInfo_i::add_publication(), DCPS_IR_Participant::add_publication(), TAO_DDS_DCPSInfo_i::add_subscription(), DCPS_IR_Participant::add_subscription(), DCPS_IR_Domain::add_topic_description(), DCPS_IR_Domain::add_topic_i(), OpenDDS::DCPS::DataWriterImpl::association_complete_i(), Update::PersistenceUpdater::create(), OpenDDS::DCPS::DataLink::create_control(), OpenDDS::DCPS::DataWriterImpl::create_control_message(), OpenDDS::DCPS::ReplayerImpl::create_sample_data_message(), OpenDDS::DCPS::DataWriterImpl::create_sample_data_message(), OpenDDS::DCPS::RecorderImpl::data_received(), OpenDDS::DCPS::DataReaderImpl::data_received(), OpenDDS::DCPS::DataReaderImpl_T< MessageType >::dds_demarshal(), OpenDDS::DCPS::DataWriterImpl_T< MessageType >::dds_marshal(), OpenDDS::DCPS::DataReaderImpl_T< MessageType >::FilterDelayedHandler::delay_sample(), Update::PersistenceUpdater::destroy(), TAO_DDS_DCPSInfo_i::domain(), OpenDDS::DCPS::ReplayerImpl::enable(), OpenDDS::DCPS::DataWriterImpl::enable(), OpenDDS::DCPS::DataReaderImpl::enable(), OpenDDS::DCPS::DataWriterImpl::end_coherent_changes(), OpenDDS::DCPS::DataDurabilityCache::get_data(), OpenDDS::DCPS::Service_Participant::get_data_durability_cache(), OpenDDS::DCPS::DataSampleElement::get_sample(), Update::PersistenceUpdater::init(), OpenDDS::DCPS::MultiTopicDataReaderBase::init(), OpenDDS::DCPS::DataDurabilityCache::init(), OpenDDS::DCPS::TransportReassembly::insert(), OpenDDS::DCPS::DataDurabilityCache::insert(), OpenDDS::Security::Permissions::load(), OpenDDS::Security::Governance::load(), OpenDDS::DCPS::DataReaderImpl_T< MessageType >::lookup_instance(), OpenDDS::DCPS::TransportSendControlElement::msg(), OpenDDS::DCPS::TransportRetainedElement::msg(), OpenDDS::DCPS::TransportReplacedElement::msg(), OpenDDS::DCPS::TransportCustomizedElement::msg(), OpenDDS::DCPS::TransportControlElement::msg(), OpenDDS::DCPS::MulticastDataLink::MulticastDataLink(), OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), OpenDDS::DCPS::UdpTransport::passive_connection(), OpenDDS::DCPS::TransportSendStrategy::prepare_packet(), OpenDDS::DCPS::Service_Participant::reactor(), OpenDDS::DCPS::PeerDiscovery< Spdp >::reactor(), OpenDDS::DCPS::TransportReassembly::reassemble_i(), OpenDDS::DCPS::MulticastDataLink::send_buffer(), OpenDDS::DCPS::RtpsUdpDataLink::send_directed_heartbeats(), OpenDDS::DCPS::ReliableSession::send_nakack(), OpenDDS::DCPS::MulticastSession::send_syn(), OpenDDS::DCPS::MulticastSession::send_synack(), OpenDDS::DCPS::DataSampleHeader::split(), OpenDDS::DCPS::DataSampleHeader::split_payload(), OpenDDS::DCPS::DataReaderImpl_T< MessageType >::store_instance_data(), OpenDDS::DCPS::MulticastSession::syn_received(), OpenDDS::DCPS::MulticastDataLink::syn_received_no_session(), OpenDDS::DCPS::MulticastSession::synack_received(), OpenDDS::DCPS::TransportSendStrategy::synch(), OpenDDS::DCPS::Service_Participant::timer(), Update::PersistenceUpdater::update(), and OpenDDS::DCPS::DataDurabilityCache::~DataDurabilityCache().

00120   {
00121     return ptr_;
00122   }

template<typename T, typename Deleter = default_deleter<T>>
OpenDDS::DCPS::unique_ptr< T, Deleter >::operator bool ( void   )  const [inline]

Definition at line 124 of file unique_ptr.h.

00125   {
00126     return get() != 0;
00127   }

template<typename T, typename Deleter = default_deleter<T>>
T& OpenDDS::DCPS::unique_ptr< T, Deleter >::operator* ( void   )  const [inline]

Definition at line 109 of file unique_ptr.h.

00110   {
00111     return *get();
00112   }

template<typename T, typename Deleter = default_deleter<T>>
T* OpenDDS::DCPS::unique_ptr< T, Deleter >::operator-> ( void   )  const [inline]

Definition at line 114 of file unique_ptr.h.

00115   {
00116     return get();
00117   }

template<typename T, typename Deleter = default_deleter<T>>
unique_ptr& OpenDDS::DCPS::unique_ptr< T, Deleter >::operator= ( const unique_ptr< T, Deleter > &   )  [private]
template<typename T, typename Deleter = default_deleter<T>>
unique_ptr& OpenDDS::DCPS::unique_ptr< T, Deleter >::operator= ( rv< unique_ptr< T, Deleter > > &  other  )  [inline]

Definition at line 90 of file unique_ptr.h.

00091   {
00092     reset(other.release());
00093     return *this;
00094   }

template<typename T, typename Deleter = default_deleter<T>>
T* OpenDDS::DCPS::unique_ptr< T, Deleter >::release ( void   )  [inline]
template<typename T, typename Deleter = default_deleter<T>>
void OpenDDS::DCPS::unique_ptr< T, Deleter >::reset ( T *  p = 0  )  [inline]

Definition at line 96 of file unique_ptr.h.

Referenced by TAO_DDS_DCPSInfo_i::add_subscription(), OpenDDS::Security::AuthenticationBuiltInImpl::begin_handshake_reply(), OpenDDS::DCPS::ShmemTransport::configure_i(), OpenDDS::DCPS::ReplayerImpl::create_sample_data_message(), OpenDDS::DCPS::DataWriterImpl::create_sample_data_message(), OpenDDS::DCPS::RtpsUdpDataLink::customize_queue_element(), OpenDDS::DCPS::DataLink::DataLink(), OpenDDS::DCPS::DataWriterImpl_T< MessageType >::dds_marshal(), OpenDDS::DCPS::WriteDataContainer::dispose(), OpenDDS::DCPS::ReplayerImpl::enable(), OpenDDS::DCPS::DataWriterImpl::enable(), OpenDDS::DCPS::DataReaderImpl::enable(), OpenDDS::DCPS::DataReaderImpl_T< MessageType >::finish_store_instance_data(), OpenDDS::DCPS::Service_Participant::get_data_durability_cache(), OpenDDS::DCPS::Service_Participant::get_domain_participant_factory(), Update::PersistenceUpdater::init(), OpenDDS::DCPS::MultiTopicDataReaderBase::init(), OpenDDS::DCPS::TransportReassembly::insert(), OpenDDS::DCPS::RtpsSampleHeader::into_received_data_sample(), OpenDDS::Security::LocalAccessCredentialData::load(), OpenDDS::Security::LocalAuthCredentialData::load_credentials(), OpenDDS::DCPS::MulticastDataLink::MulticastDataLink(), OpenDDS::DCPS::MultiTopicImpl::MultiTopicImpl(), OpenDDS::DCPS::unique_ptr< ACE_Message_Block, Message_Block_Deleter >::operator=(), OpenDDS::DCPS::DataSampleElement::operator=(), OpenDDS::DCPS::PeerDiscovery< Spdp >::reactor(), OpenDDS::DCPS::WriteDataContainer::register_instance(), OpenDDS::DCPS::RtpsUdpDataLink::send_directed_heartbeats(), OpenDDS::DCPS::TransportCustomizedElement::set_msg(), OpenDDS::DCPS::DataSampleElement::set_sample(), OpenDDS::DCPS::Service_Participant::shutdown(), OpenDDS::DCPS::ShmemTransport::shutdown_i(), OpenDDS::DCPS::RtpsSampleHeader::split(), OpenDDS::DCPS::DataSampleHeader::split(), OpenDDS::DCPS::DataSampleHeader::split_payload(), OpenDDS::DCPS::TransportSendStrategy::start(), OpenDDS::DCPS::SubscriptionInstance::SubscriptionInstance(), OpenDDS::DCPS::TransportRetainedElement::TransportRetainedElement(), OpenDDS::DCPS::TransportSendStrategy::TransportSendStrategy(), and OpenDDS::DCPS::WriteDataContainer::unregister().

00097   {
00098     Deleter()(ptr_);
00099     ptr_ = p;
00100   }

Here is the caller graph for this function:

template<typename T, typename Deleter = default_deleter<T>>
void OpenDDS::DCPS::unique_ptr< T, Deleter >::swap ( unique_ptr< T, Deleter > &  b  )  [inline]

Definition at line 129 of file unique_ptr.h.

Referenced by OpenDDS::DCPS::swap(), and OpenDDS::DCPS::unique_ptr< ACE_Message_Block, Message_Block_Deleter >::swap().

00130   {
00131     std::swap(ptr_, b.ptr_);
00132   }

Here is the caller graph for this function:


Member Data Documentation

template<typename T, typename Deleter = default_deleter<T>>
T* OpenDDS::DCPS::unique_ptr< T, Deleter >::ptr_ [private]

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

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1