OpenDDS  Snapshot(2023/04/07-19:43)
Public Member Functions | Private Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::RcHandle< T > Class Template Reference

#include <RcHandle_T.h>

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

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. More...
 

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

◆ RcHandle() [1/6]

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

Definition at line 26 of file RcHandle_T.h.

27  : ptr_(0)
28  {
29  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ RcHandle() [2/6]

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

Definition at line 31 of file RcHandle_T.h.

32  : ptr_(p)
33  {
34  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ RcHandle() [3/6]

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.

38  : ptr_(p.release())
39  {
40  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ RcHandle() [4/6]

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

Definition at line 42 of file RcHandle_T.h.

43  : ptr_(p)
44  {
45  this->bump_up();
46  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ RcHandle() [5/6]

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

Definition at line 49 of file RcHandle_T.h.

50  : ptr_(other.in())
51  {
52  this->bump_up();
53  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ RcHandle() [6/6]

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

Definition at line 55 of file RcHandle_T.h.

56  : ptr_(b.ptr_)
57  {
58  this->bump_up();
59  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ ~RcHandle()

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

Definition at line 61 of file RcHandle_T.h.

62  {
63  this->bump_down();
64  }

Member Function Documentation

◆ _retn()

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

Definition at line 147 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::DomainParticipantFactoryImpl::create_participant(), OpenDDS::DCPS::DataWriterImpl::find_instance(), and OpenDDS::XTypes::DynamicDataWriterImpl::get_key_value().

148  {
149  T* retval = this->ptr_;
150  this->ptr_ = 0;
151  return retval;
152  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ bump_down()

template<typename T>
void OpenDDS::DCPS::RcHandle< T >::bump_down ( )
inlineprivate

Definition at line 182 of file RcHandle_T.h.

183  {
184  if (ptr_ != 0) {
185  ptr_->_remove_ref();
186  ptr_ = 0;
187  }
188  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ bump_up()

template<typename T>
void OpenDDS::DCPS::RcHandle< T >::bump_up ( )
inlineprivate

Definition at line 175 of file RcHandle_T.h.

176  {
177  if (ptr_ != 0) {
178  ptr_->_add_ref();
179  }
180  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ get()

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

◆ in()

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

Definition at line 126 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::TcpTransport::accept_datalink(), OpenDDS::DCPS::DataReaderImpl::accept_sample_processing(), OpenDDS::DCPS::DataWriterRemoteImpl::add_association(), OpenDDS::DCPS::RecorderImpl::add_association(), TAO_DDS_DCPSInfo_i::add_domain_participant(), DCPS_IR_Domain::add_participant(), OpenDDS::DCPS::ReplayerImpl::association_complete_i(), OpenDDS::DCPS::DataWriterImpl::association_complete_i(), OpenDDS::DCPS::TcpTransport::async_connect_failed(), 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::DomainParticipantFactoryImpl::create_participant(), 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::dynamic_rchandle_cast(), OpenDDS::DCPS::TransportClient::PendingAssocTimer::ScheduleCommand::execute(), OpenDDS::DCPS::DataReaderImpl::OnDataOnReaders::execute(), OpenDDS::DCPS::DataReaderImpl::OnDataAvailable::execute(), OpenDDS::DCPS::TcpTransport::find_datalink_i(), OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::finish_store_instance_data(), OpenDDS::DCPS::TcpTransport::fresh_link(), OpenDDS::DCPS::GroupRakeData::get_datareaders(), OpenDDS::DCPS::DataReaderImpl::get_matched_publication_data(), OpenDDS::DCPS::DataWriterImpl::get_matched_subscription_data(), OpenDDS::DCPS::MulticastLoader::init(), OpenDDS::RTPS::RtpsDiscovery::init_bit(), OpenDDS::DCPS::StaticDiscovery::init_bit(), OpenDDS::DCPS::MonitorFactoryImpl::initialize(), OpenDDS::Federator::ManagerImpl::initialize(), OpenDDS::RTPS::Sedp::match_continue(), OpenDDS::DCPS::RcHandle< OpenDDS::DCPS::DataReaderImpl::LivelinessTimer >::operator!=(), OpenDDS::DCPS::RakeResults< MessageType >::SortedSetCmp::operator()(), OpenDDS::DCPS::RcHandle< OpenDDS::DCPS::DataReaderImpl::LivelinessTimer >::operator<(), OpenDDS::DCPS::RcHandle< OpenDDS::DCPS::DataReaderImpl::LivelinessTimer >::operator==(), DCPS_IR_Domain::participant(), OpenDDS::DCPS::MulticastDataLink::receive_strategy(), OpenDDS::DCPS::TcpDataLink::reconnect(), OpenDDS::DCPS::WriteDataContainer::register_instance(), OpenDDS::DCPS::TcpTransport::release_datalink(), OpenDDS::DCPS::DataWriterRemoteImpl::remove_associations(), OpenDDS::DCPS::ReplayerImpl::remove_associations(), OpenDDS::DCPS::RecorderImpl::remove_associations_i(), DCPS_IR_Domain::remove_dead_participants(), DCPS_IR_Domain::remove_participant(), OpenDDS::DCPS::DataWriterImpl::replay_durable_data_for(), OpenDDS::DCPS::TcpDataLink::reuse_existing_connection(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::RtpsWriter(), OpenDDS::DCPS::DataLinkSet::send_control(), OpenDDS::DCPS::TransportClient::send_i(), OpenDDS::DCPS::MulticastDataLink::send_strategy(), OpenDDS::DCPS::OwnershipManager::set_instance_map(), OpenDDS::DCPS::TcpReceiveStrategy::start_i(), OpenDDS::DCPS::static_rchandle_cast(), OpenDDS::DCPS::DataWriterRemoteImpl::update_incompatible_qos(), OpenDDS::DCPS::DataWriterRemoteImpl::update_subscription_params(), OpenDDS::DCPS::TransportClient::use_datalink_i(), and OpenDDS::DCPS::PublisherImpl::wait_for_acknowledgments().

127  {
128  return this->ptr_;
129  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ inout()

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

Definition at line 136 of file RcHandle_T.h.

137  {
138  return this->ptr_;
139  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ is_nil()

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

Definition at line 121 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::MulticastTransport::accept_datalink(), OpenDDS::DCPS::TcpTransport::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::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::MonitorFactoryImpl::initialize(), OpenDDS::DCPS::TransportClient::PendingAssoc::initiate_connect(), OpenDDS::DCPS::ReceiveListenerSetMap::insert(), OpenDDS::DCPS::RtpsUdpDataLink::MultiSendBuffer::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::TransportImpl::reactor(), FACE::TS::Receive_Message(), 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::TransportClient::send_i(), OpenDDS::DCPS::DataLink::send_start_i(), OpenDDS::DCPS::DataLink::send_stop_i(), OpenDDS::DCPS::TransportImpl::shutdown(), OpenDDS::DCPS::DataLink::start(), OpenDDS::DCPS::MulticastTransport::start_session(), OpenDDS::DCPS::DataLink::stop(), OpenDDS::DCPS::TransportClient::use_datalink_i(), and OpenDDS::DCPS::DataReaderImpl::writer_activity().

122  {
123  return this->ptr_ == 0;
124  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ operator bool()

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

Definition at line 154 of file RcHandle_T.h.

155  {
156  return in() != 0;
157  }

◆ operator!=()

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

Definition at line 164 of file RcHandle_T.h.

165  {
166  return in() != rhs.in();
167  }

◆ operator*()

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

Definition at line 115 of file RcHandle_T.h.

116  {
118  return *this->ptr_;
119  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66

◆ operator->()

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

Definition at line 109 of file RcHandle_T.h.

110  {
112  return this->ptr_;
113  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191
#define OPENDDS_ASSERT(C)
Definition: Definitions.h:66

◆ operator<()

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

Definition at line 169 of file RcHandle_T.h.

170  {
171  return in() < rhs.in();
172  }

◆ operator=() [1/3]

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

Definition at line 79 of file RcHandle_T.h.

80  {
81  RcHandle tmp(b);
82  swap(tmp);
83  return *this;
84  }
void swap(RcHandle &rhs)
Definition: RcHandle_T.h:102

◆ operator=() [2/3]

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

Definition at line 87 of file RcHandle_T.h.

88  {
89  RcHandle<T> tmp(b);
90  swap(tmp);
91  return *this;
92  }
void swap(RcHandle &rhs)
Definition: RcHandle_T.h:102

◆ operator=() [3/3]

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

Definition at line 95 of file RcHandle_T.h.

96  {
97  RcHandle<T> tmp(b.release(), keep_count());
98  swap(tmp);
99  return *this;
100  }
void swap(RcHandle &rhs)
Definition: RcHandle_T.h:102

◆ operator==()

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

Definition at line 159 of file RcHandle_T.h.

160  {
161  return in() == rhs.in();
162  }

◆ out()

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

Definition at line 141 of file RcHandle_T.h.

142  {
143  this->bump_down();
144  return this->ptr_;
145  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

◆ reset() [1/2]

template<typename T>
void OpenDDS::DCPS::RcHandle< T >::reset ( void  )
inline

◆ reset() [2/2]

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

Definition at line 73 of file RcHandle_T.h.

74  {
75  RcHandle tmp(p, counting_strategy);
76  swap(tmp);
77  }
void swap(RcHandle &rhs)
Definition: RcHandle_T.h:102

◆ swap()

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

Definition at line 102 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acknack(), OpenDDS::DCPS::ServiceEventDispatcher::shutdown(), OpenDDS::DCPS::TransportInst::shutdown(), and OpenDDS::DCPS::swap().

103  {
104  T* t = this->ptr_;
105  this->ptr_ = rhs.ptr_;
106  rhs.ptr_ = t;
107  }
T * ptr_
The actual "unsmart" pointer to the T object.
Definition: RcHandle_T.h:191

Member Data Documentation

◆ ptr_

template<typename T>
T* OpenDDS::DCPS::RcHandle< T >::ptr_
private

The actual "unsmart" pointer to the T object.

Definition at line 191 of file RcHandle_T.h.

Referenced by OpenDDS::DCPS::RcHandle< OpenDDS::DCPS::DataReaderImpl::LivelinessTimer >::swap().


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