OpenDDS::DCPS::RcHandle< T > Class Template Reference

#include <RcHandle_T.h>

Collaboration diagram for OpenDDS::DCPS::RcHandle< T >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 RcHandle ()
 RcHandle (T *p, keep_count)
template<typename U >
 RcHandle (unique_ptr< U > p)
 RcHandle (T *p, inc_count)
template<typename U >
 RcHandle (const RcHandle< U > &other)
 RcHandle (const RcHandle &b)
 ~RcHandle ()
void reset ()
template<typename U >
void reset (T *p, U counting_strategy)
RcHandleoperator= (const RcHandle &b)
template<class U >
RcHandleoperator= (const RcHandle< U > &b)
template<typename U >
RcHandleoperator= (unique_ptr< U > b)
void swap (RcHandle &rhs)
T * operator-> () const
T & operator* () const
bool is_nil () const
T * in () const
T * get () const
T *& inout ()
T *& out ()
T * _retn ()
 operator bool () const
bool operator== (const RcHandle &rhs) const
bool operator!= (const RcHandle &rhs) const
bool operator< (const RcHandle &rhs) const

Private Member Functions

void bump_up ()
void bump_down ()

Private Attributes

T * ptr_
 The actual "unsmart" pointer to the T object.

Detailed Description

template<typename T>
class OpenDDS::DCPS::RcHandle< T >

Templated Reference counted handle to a pointer. A non-DDS specific helper class.

Definition at line 24 of file RcHandle_T.h.


Constructor & Destructor Documentation

template<typename T>
OpenDDS::DCPS::RcHandle< T >::RcHandle (  )  [inline]

Definition at line 27 of file RcHandle_T.h.

00028     : ptr_(0)
00029   {}

template<typename T>
OpenDDS::DCPS::RcHandle< T >::RcHandle ( T *  p,
keep_count   
) [inline]

Definition at line 31 of file RcHandle_T.h.

00032     : ptr_(p)
00033   {
00034   }

template<typename T>
template<typename U >
OpenDDS::DCPS::RcHandle< T >::RcHandle ( unique_ptr< U >  p  )  [inline]

Definition at line 37 of file RcHandle_T.h.

00038     : ptr_(p.release())
00039   {
00040   }

template<typename T>
OpenDDS::DCPS::RcHandle< T >::RcHandle ( T *  p,
inc_count   
) [inline]

Definition at line 43 of file RcHandle_T.h.

00044     : ptr_(p)
00045   {
00046     this->bump_up();
00047   }

template<typename T>
template<typename U >
OpenDDS::DCPS::RcHandle< T >::RcHandle ( const RcHandle< U > &  other  )  [inline]

Definition at line 50 of file RcHandle_T.h.

00051     : ptr_(other.in())
00052   {
00053     this->bump_up();
00054   }

template<typename T>
OpenDDS::DCPS::RcHandle< T >::RcHandle ( const RcHandle< T > &  b  )  [inline]

Definition at line 56 of file RcHandle_T.h.

00057     : ptr_(b.ptr_)
00058   {
00059     this->bump_up();
00060   }

template<typename T>
OpenDDS::DCPS::RcHandle< T >::~RcHandle (  )  [inline]

Definition at line 62 of file RcHandle_T.h.

00063   {
00064     this->bump_down();
00065   }


Member Function Documentation

template<typename T>
T* OpenDDS::DCPS::RcHandle< T >::_retn ( void   )  [inline]

Definition at line 146 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::DomainParticipantFactoryImpl::create_participant(), OpenDDS::DCPS::SubscriberImpl::get_participant(), and OpenDDS::DCPS::PublisherImpl::get_participant().

00147   {
00148     T* retval = this->ptr_;
00149     this->ptr_ = 0;
00150     return retval;
00151   }

Here is the caller graph for this function:

template<typename T>
void OpenDDS::DCPS::RcHandle< T >::bump_down (  )  [inline, private]

Definition at line 183 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::RcHandle< Directory >::out(), and OpenDDS::DCPS::RcHandle< Directory >::~RcHandle().

00184   {
00185     if (this->ptr_ != 0) {
00186       this->ptr_->_remove_ref();
00187       this->ptr_ = 0;
00188     }
00189   }

Here is the caller graph for this function:

template<typename T>
void OpenDDS::DCPS::RcHandle< T >::bump_up (  )  [inline, private]

Definition at line 176 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::RcHandle< Directory >::RcHandle().

00177   {
00178     if (this->ptr_ != 0) {
00179       this->ptr_->_add_ref();
00180     }
00181   }

Here is the caller graph for this function:

template<typename T>
T* OpenDDS::DCPS::RcHandle< T >::get ( void   )  const [inline]

Definition at line 130 of file RcHandle_T.h.

Referenced by TAO_DDS_DCPSInfo_i::add_domain_participant(), and DCPS_IR_Domain::remove_participant().

00131   {
00132     return this->ptr_;
00133   }

Here is the caller graph for this function:

template<typename T>
T* OpenDDS::DCPS::RcHandle< T >::in ( void   )  const [inline]

Definition at line 125 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::TcpTransport::accept_datalink(), OpenDDS::DCPS::DataReaderImpl::accept_sample_processing(), OpenDDS::DCPS::RecorderImpl::add_association(), OpenDDS::DCPS::DataWriterRemoteImpl::add_association(), OpenDDS::DCPS::DataReaderRemoteImpl::add_association(), TAO_DDS_DCPSInfo_i::add_domain_participant(), DCPS_IR_Domain::add_participant(), OpenDDS::DCPS::DataWriterRemoteImpl::association_complete(), OpenDDS::DCPS::DataReaderRemoteImpl::association_complete(), OpenDDS::DCPS::ReplayerImpl::association_complete_i(), OpenDDS::DCPS::DataWriterImpl::association_complete_i(), OpenDDS::DCPS::TcpTransport::async_connect_failed(), OpenDDS::DCPS::RequestedDeadlineWatchdog::cancel_timer(), OpenDDS::DCPS::DataReaderImpl::coherent_changes_completed(), OpenDDS::DCPS::ComparatorBase::compare(), OpenDDS::DCPS::TcpTransport::connect_datalink(), OpenDDS::DCPS::const_rchandle_cast(), OpenDDS::DCPS::SubscriberImpl::create_datareader(), OpenDDS::DCPS::TransportImpl::create_reactor_task(), OpenDDS::DCPS::RecorderImpl::data_received(), OpenDDS::DCPS::DataReaderImpl::data_received(), OpenDDS::DCPS::DataLink::data_received_i(), OpenDDS::DCPS::PublisherImpl::delete_contained_entities(), OpenDDS::DCPS::TransportClient::disassociate(), OpenDDS::DCPS::WriteDataContainer::dispose(), OpenDDS::DCPS::dynamic_rchandle_cast(), OpenDDS::DCPS::DataWriterImpl::enable(), OpenDDS::DCPS::WriteDataContainer::enqueue(), OpenDDS::DCPS::RequestedDeadlineWatchdog::execute(), OpenDDS::DCPS::RemoveAssociationSweeper< T >::CancelCommand::execute(), OpenDDS::DCPS::RemoveAssociationSweeper< T >::ScheduleCommand::execute(), OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::ScheduleCommand::execute(), OpenDDS::DCPS::TcpTransport::find_datalink_i(), OpenDDS::DCPS::DataReaderImpl_T< MessageType >::finish_store_instance_data(), OpenDDS::DCPS::TcpTransport::fresh_link(), OpenDDS::DCPS::Service_Participant::get_domain_participant_factory(), OpenDDS::DCPS::DataReaderImpl::get_matched_publication_data(), OpenDDS::DCPS::DataWriterImpl::get_matched_subscription_data(), OpenDDS::DCPS::DataReaderImpl::get_next_handle(), OpenDDS::DCPS::DataWriterImpl::handle_timeout(), OpenDDS::DCPS::TransportInst::impl(), OpenDDS::DCPS::MulticastLoader::init(), OpenDDS::DCPS::MonitorFactoryImpl::initialize(), OpenDDS::Federator::ManagerImpl::initialize(), OpenDDS::DCPS::UdpTransport::make_datalink(), OpenDDS::DCPS::MulticastTransport::make_datalink(), OpenDDS::DCPS::RcHandle< Directory >::operator bool(), OpenDDS::DCPS::RcHandle< Directory >::operator!=(), OpenDDS::DCPS::RakeResults< SampleSeq >::SortedSetCmp::operator()(), OpenDDS::DCPS::RcHandle< Directory >::operator<(), OpenDDS::DCPS::RcHandle< Directory >::operator==(), OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), OpenDDS::DCPS::MulticastDataLink::receive_strategy(), OpenDDS::DCPS::TcpDataLink::reconnect(), OpenDDS::DCPS::WriteDataContainer::register_instance(), OpenDDS::DCPS::TcpTransport::release_datalink(), OpenDDS::DCPS::ReplayerImpl::remove_associations(), OpenDDS::DCPS::DataWriterRemoteImpl::remove_associations(), OpenDDS::DCPS::DataReaderRemoteImpl::remove_associations(), OpenDDS::DCPS::RecorderImpl::remove_associations_i(), DCPS_IR_Domain::remove_dead_participants(), DCPS_IR_Domain::remove_participant(), OpenDDS::DCPS::DataWriterImpl::reschedule_deadline(), OpenDDS::DCPS::DataReaderImpl::reschedule_deadline(), OpenDDS::DCPS::TcpDataLink::reuse_existing_connection(), OpenDDS::DCPS::RequestedDeadlineWatchdog::schedule_timer(), OpenDDS::DCPS::DataLinkSet::send_control(), OpenDDS::DCPS::TransportClient::send_i(), OpenDDS::DCPS::RtpsUdpDataLink::send_strategy(), OpenDDS::DCPS::MulticastDataLink::send_strategy(), OpenDDS::DCPS::OwnershipManager::set_instance_map(), OpenDDS::DCPS::TcpReceiveStrategy::start_i(), OpenDDS::DCPS::static_rchandle_cast(), OpenDDS::DCPS::WriteDataContainer::unregister(), OpenDDS::DCPS::OwnershipManager::unregister_reader(), OpenDDS::DCPS::DataWriterRemoteImpl::update_incompatible_qos(), OpenDDS::DCPS::DataReaderRemoteImpl::update_incompatible_qos(), OpenDDS::DCPS::DataWriterRemoteImpl::update_subscription_params(), OpenDDS::DCPS::TransportClient::use_datalink_i(), and OpenDDS::DCPS::PublisherImpl::wait_for_acknowledgments().

00126   {
00127     return this->ptr_;
00128   }

template<typename T>
T*& OpenDDS::DCPS::RcHandle< T >::inout ( void   )  [inline]

Definition at line 135 of file RcHandle_T.h.

00136   {
00137     return this->ptr_;
00138   }

template<typename T>
bool OpenDDS::DCPS::RcHandle< T >::is_nil ( void   )  const [inline]

Definition at line 120 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::TcpTransport::accept_datalink(), OpenDDS::DCPS::RtpsUdpTransport::accept_datalink(), OpenDDS::DCPS::MulticastTransport::accept_datalink(), OpenDDS::DCPS::StaticDiscovery::add_domain_participant(), OpenDDS::DCPS::DataLink::add_on_start_callback(), OpenDDS::DCPS::TransportClient::associate(), OpenDDS::DCPS::TransportRegistry::bind_config(), OpenDDS::DCPS::InfoRepoDiscovery::bit_config(), OpenDDS::DCPS::UdpTransport::connect_datalink(), OpenDDS::DCPS::TcpTransport::connect_datalink(), OpenDDS::DCPS::RtpsUdpTransport::connect_datalink(), OpenDDS::DCPS::MulticastTransport::connect_datalink(), OpenDDS::Security::SecurityRegistry::create_config(), OpenDDS::DCPS::DataLink::data_received_i(), OpenDDS::DCPS::DomainParticipantImpl::enable(), OpenDDS::DCPS::TransportClient::enable_transport(), OpenDDS::DCPS::MulticastDataLink::find_or_create_session(), OpenDDS::DCPS::TransportRegistry::fix_empty_default(), OpenDDS::DCPS::TcpTransport::fresh_link(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::heartbeat_high(), OpenDDS::DCPS::MonitorFactoryImpl::initialize(), OpenDDS::DCPS::TransportClient::PendingAssoc::initiate_connect(), OpenDDS::DCPS::RtpsUdpDataLink::MultiSendBuffer::insert(), OpenDDS::DCPS::ReceiveListenerSetMap::insert(), OpenDDS::DCPS::Service_Participant::load_domain_configuration(), OpenDDS::DCPS::DataLink::make_reservation(), OpenDDS::FaceTSS::config::Parser::parse(), OpenDDS::DCPS::StaticDiscovery::parse_endpoints(), OpenDDS::DCPS::TcpTransport::passive_connection(), OpenDDS::DCPS::RtpsUdpDataLink::process_requested_changes(), OpenDDS::DCPS::TransportImpl::reactor(), OpenDDS::DCPS::TcpDataLink::reconnect(), OpenDDS::DCPS::DataLink::release_reservations(), OpenDDS::FileSystemStorage::Directory::remove(), OpenDDS::DCPS::DataLink::remove_all_msgs(), OpenDDS::DCPS::DataLink::remove_sample(), OpenDDS::Federator::ManagerImpl::repository(), OpenDDS::DCPS::TcpDataLink::reuse_existing_connection(), OpenDDS::DCPS::DataLink::schedule_delayed_release(), OpenDDS::DCPS::RtpsUdpDataLink::send_directed_nack_replies(), OpenDDS::DCPS::TransportClient::send_i(), OpenDDS::DCPS::RtpsUdpDataLink::send_nack_replies(), OpenDDS::DCPS::DataLink::send_start_i(), OpenDDS::DCPS::DataLink::send_stop_i(), OpenDDS::DCPS::TransportInst::shutdown(), OpenDDS::DCPS::TransportImpl::shutdown(), OpenDDS::DCPS::RtpsUdpTransport::shutdown_i(), OpenDDS::DCPS::DataLink::start(), OpenDDS::DCPS::MulticastTransport::start_session(), OpenDDS::DCPS::DataLink::stop(), OpenDDS::DCPS::TransportClient::use_datalink_i(), OpenDDS::DCPS::DataWriterImpl_T< MessageType >::write_w_timestamp(), and OpenDDS::DCPS::DataReaderImpl::writer_activity().

00121   {
00122     return this->ptr_ == 0;
00123   }

template<typename T>
OpenDDS::DCPS::RcHandle< T >::operator bool ( void   )  const [inline]

Definition at line 154 of file RcHandle_T.h.

00155   {
00156     return in() != 0;
00157   }

template<typename T>
bool OpenDDS::DCPS::RcHandle< T >::operator!= ( const RcHandle< T > &  rhs  )  const [inline]

Definition at line 164 of file RcHandle_T.h.

00165   {
00166     return in() != rhs.in();
00167   }

template<typename T>
T& OpenDDS::DCPS::RcHandle< T >::operator* ( void   )  const [inline]

Definition at line 115 of file RcHandle_T.h.

00116   {
00117     return *this->ptr_;
00118   }

template<typename T>
T* OpenDDS::DCPS::RcHandle< T >::operator-> ( void   )  const [inline]

Definition at line 110 of file RcHandle_T.h.

00111   {
00112     return this->ptr_;
00113   }

template<typename T>
bool OpenDDS::DCPS::RcHandle< T >::operator< ( const RcHandle< T > &  rhs  )  const [inline]

Definition at line 169 of file RcHandle_T.h.

00170   {
00171     return in() < rhs.in();
00172   }

template<typename T>
template<typename U >
RcHandle& OpenDDS::DCPS::RcHandle< T >::operator= ( unique_ptr< U >  b  )  [inline]

Definition at line 96 of file RcHandle_T.h.

00097   {
00098     RcHandle<T> tmp(b.release(), keep_count());
00099     swap(tmp);
00100     return *this;
00101   }

template<typename T>
template<class U >
RcHandle& OpenDDS::DCPS::RcHandle< T >::operator= ( const RcHandle< U > &  b  )  [inline]

Definition at line 88 of file RcHandle_T.h.

00089   {
00090     RcHandle<T> tmp(b);
00091     swap(tmp);
00092     return *this;
00093   }

template<typename T>
RcHandle& OpenDDS::DCPS::RcHandle< T >::operator= ( const RcHandle< T > &  b  )  [inline]

Definition at line 80 of file RcHandle_T.h.

00081   {
00082     RcHandle tmp(b);
00083     swap(tmp);
00084     return *this;
00085   }

template<typename T>
bool OpenDDS::DCPS::RcHandle< T >::operator== ( const RcHandle< T > &  rhs  )  const [inline]

Definition at line 159 of file RcHandle_T.h.

00160   {
00161     return in() == rhs.in();
00162   }

template<typename T>
T*& OpenDDS::DCPS::RcHandle< T >::out ( void   )  [inline]

Definition at line 140 of file RcHandle_T.h.

00141   {
00142     this->bump_down();
00143     return this->ptr_;
00144   }

template<typename T>
template<typename U >
void OpenDDS::DCPS::RcHandle< T >::reset ( T *  p,
counting_strategy 
) [inline]

Definition at line 74 of file RcHandle_T.h.

00075   {
00076     RcHandle tmp(p, counting_strategy);
00077     swap(tmp);
00078   }

template<typename T>
void OpenDDS::DCPS::RcHandle< T >::reset ( void   )  [inline]
template<typename T>
void OpenDDS::DCPS::RcHandle< T >::swap ( RcHandle< T > &  rhs  )  [inline]

Definition at line 103 of file RcHandle_T.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config(), OpenDDS::DCPS::RcHandle< Directory >::operator=(), OpenDDS::DCPS::RcHandle< Directory >::reset(), and OpenDDS::DCPS::swap().

00104   {
00105     T* t = this->ptr_;
00106     this->ptr_ = rhs.ptr_;
00107     rhs.ptr_ = t;
00108   }

Here is the caller graph for this function:


Member Data Documentation

template<typename T>
T* OpenDDS::DCPS::RcHandle< T >::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