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

#include <RcObject.h>

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

Public Member Functions

 WeakRcHandle ()
 
 WeakRcHandle (const T &obj)
 
 WeakRcHandle (const RcHandle< T > &rch)
 
 WeakRcHandle (const WeakRcHandle &other)
 
 ~WeakRcHandle ()
 
WeakRcHandleoperator= (const WeakRcHandle &other)
 
WeakRcHandleoperator= (const RcHandle< T > &other)
 
WeakRcHandleoperator= (const T &obj)
 
RcHandle< T > lock () const
 
bool operator== (const WeakRcHandle &rhs) const
 
bool operator!= (const WeakRcHandle &rhs) const
 
bool operator< (const WeakRcHandle &rhs) const
 
 operator bool () const
 
void reset ()
 

Private Member Functions

 WeakRcHandle (WeakObject *obj)
 

Private Attributes

WeakObjectweak_object_
 
T * cached_
 

Detailed Description

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

Definition at line 127 of file RcObject.h.

Constructor & Destructor Documentation

◆ WeakRcHandle() [1/5]

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

Definition at line 130 of file RcObject.h.

131  : weak_object_(0)
132  , cached_(0)
133  {
134  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ WeakRcHandle() [2/5]

template<typename T>
OpenDDS::DCPS::WeakRcHandle< T >::WeakRcHandle ( const T &  obj)
inline

Definition at line 136 of file RcObject.h.

137  : weak_object_(obj._get_weak_object())
138  , cached_(const_cast<T*>(&obj))
139  {
140  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ WeakRcHandle() [3/5]

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

Definition at line 142 of file RcObject.h.

143  : weak_object_(rch.in() ? rch.in()->_get_weak_object() : 0)
144  , cached_(rch.in())
145  {
146  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ WeakRcHandle() [4/5]

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

Definition at line 148 of file RcObject.h.

149  : weak_object_(other.weak_object_)
150  , cached_(other.cached_)
151  {
152  if (weak_object_) {
154  }
155  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ ~WeakRcHandle()

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

Definition at line 157 of file RcObject.h.

158  {
159  if (weak_object_) {
161  }
162  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ WeakRcHandle() [5/5]

template<typename T>
OpenDDS::DCPS::WeakRcHandle< T >::WeakRcHandle ( WeakObject obj)
inlineprivate

Definition at line 227 of file RcObject.h.

228  : weak_object_(obj)
229  , cached_(dynamic_cast<T*>(obj))
230  {
231  }
WeakObject * weak_object_
Definition: RcObject.h:233

Member Function Documentation

◆ lock()

template<typename T>
RcHandle<T> OpenDDS::DCPS::WeakRcHandle< T >::lock ( void  ) const
inline

Definition at line 188 of file RcObject.h.

Referenced by OpenDDS::RTPS::Sedp::add_assoc_i(), OpenDDS::DCPS::DataWriterRemoteImpl::add_association(), OpenDDS::DCPS::DataReaderRemoteImpl::add_association(), OpenDDS::DCPS::DataLink::add_on_start_callback(), OpenDDS::DCPS::StaticEndpointManager::add_publication_i(), OpenDDS::RTPS::Sedp::add_publication_i(), OpenDDS::DCPS::StaticEndpointManager::add_subscription_i(), OpenDDS::RTPS::Sedp::add_subscription_i(), OpenDDS::DCPS::ReceiveListenerSet::data_received(), OpenDDS::DCPS::DataLink::data_received_i(), OpenDDS::DCPS::ReceivedDataElementList::decrement_not_read_count(), OpenDDS::DCPS::ReceivedDataElementList::decrement_read_count(), OpenDDS::DCPS::InstanceState::dispose_was_received(), OpenDDS::ICE::EndpointManager::EndpointManager(), OpenDDS::DCPS::PmfJob< Delegate >::execute(), OpenDDS::DCPS::PmfPeriodicTask< Delegate >::execute(), OpenDDS::DCPS::PmfSporadicTask< OpenDDS::DCPS::WriteDataContainer >::execute(), OpenDDS::DCPS::PmfMultiTask< Delegate >::execute(), OpenDDS::DCPS::DataReaderImpl::get_builtin_subscriber_proxy(), OpenDDS::DCPS::RtpsUdpDataLink::ReplayDurableData::handle_event(), OpenDDS::ICE::AgentImpl::handle_timeout(), OpenDDS::DCPS::EndHistoricSamplesMissedSweeper::handle_timeout(), OpenDDS::ICE::EndpointManager::ice_connect(), OpenDDS::ICE::EndpointManager::ice_disconnect(), OpenDDS::DCPS::ReceivedDataElementList::increment_not_read_count(), OpenDDS::DCPS::ReceivedDataElementList::increment_read_count(), OpenDDS::DCPS::DataWriterImpl::init(), OpenDDS::DCPS::DataLink::invoke_on_start_callbacks(), OpenDDS::DCPS::StaticEndpointManager::match_continue(), OpenDDS::RTPS::Sedp::match_continue(), OpenDDS::ICE::EndpointManager::network_change(), OpenDDS::DCPS::MulticastTransport::passive_connection(), OpenDDS::DCPS::UdpTransport::passive_connection(), OpenDDS::DCPS::InstanceState::release(), OpenDDS::RTPS::Sedp::remove_assoc_i(), OpenDDS::DCPS::DataWriterRemoteImpl::remove_associations(), OpenDDS::DCPS::DataReaderRemoteImpl::remove_associations(), OpenDDS::DCPS::DataLink::remove_on_start_callback(), OpenDDS::DCPS::StaticEndpointManager::remove_publication_i(), OpenDDS::RTPS::Sedp::remove_publication_i(), OpenDDS::DCPS::StaticEndpointManager::remove_subscription_i(), OpenDDS::RTPS::Sedp::remove_subscription_i(), OpenDDS::DCPS::InstanceState::reset_ownership(), OpenDDS::DCPS::InstanceState::sample_info(), OpenDDS::DCPS::InternalDataReaderListener< NetworkInterfaceAddress >::schedule(), OpenDDS::DCPS::InstanceState::schedule_release(), OpenDDS::ICE::EndpointManager::send(), OpenDDS::ICE::EndpointManager::server_reflexive_task(), OpenDDS::RTPS::Sedp::start_ice(), OpenDDS::DCPS::InstanceState::state_updated(), OpenDDS::DCPS::ShmemTransport::stop_accepting_or_connecting(), OpenDDS::DCPS::RtpsUdpTransport::stop_accepting_or_connecting(), OpenDDS::DCPS::DcpsUpcalls::svc(), OpenDDS::DCPS::InstanceState::unregister_was_received(), OpenDDS::DCPS::DataWriterRemoteImpl::update_incompatible_qos(), OpenDDS::DCPS::DataReaderRemoteImpl::update_incompatible_qos(), OpenDDS::DCPS::DataWriterRemoteImpl::update_subscription_params(), OpenDDS::RTPS::Sedp::use_ice_now(), OpenDDS::DCPS::InstanceState::~InstanceState(), OpenDDS::DCPS::DataWriterImpl::ReaderInfo::~ReaderInfo(), and OpenDDS::DCPS::SubscriptionInstance::~SubscriptionInstance().

189  {
190  if (weak_object_ && weak_object_->lock()) {
191  return RcHandle<T>(cached_, keep_count());
192  }
193  return RcHandle<T>();
194  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ operator bool()

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

Definition at line 211 of file RcObject.h.

212  {
213  return weak_object_;
214  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ operator!=()

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

Definition at line 201 of file RcObject.h.

202  {
203  return weak_object_ != rhs.weak_object_;
204  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ operator<()

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

Definition at line 206 of file RcObject.h.

207  {
208  return weak_object_ < rhs.weak_object_;
209  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ operator=() [1/3]

template<typename T>
WeakRcHandle& OpenDDS::DCPS::WeakRcHandle< T >::operator= ( const WeakRcHandle< T > &  other)
inline

Definition at line 164 of file RcObject.h.

165  {
166  WeakRcHandle tmp(other);
167  std::swap(weak_object_, tmp.weak_object_);
168  std::swap(cached_, tmp.cached_);
169  return *this;
170  }
WeakObject * weak_object_
Definition: RcObject.h:233
void swap(MessageBlock &lhs, MessageBlock &rhs)

◆ operator=() [2/3]

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

Definition at line 172 of file RcObject.h.

173  {
174  WeakRcHandle tmp(other);
175  std::swap(weak_object_, tmp.weak_object_);
176  std::swap(cached_, tmp.cached_);
177  return *this;
178  }
WeakObject * weak_object_
Definition: RcObject.h:233
void swap(MessageBlock &lhs, MessageBlock &rhs)

◆ operator=() [3/3]

template<typename T>
WeakRcHandle& OpenDDS::DCPS::WeakRcHandle< T >::operator= ( const T &  obj)
inline

Definition at line 180 of file RcObject.h.

181  {
182  WeakRcHandle tmp(obj);
183  std::swap(weak_object_, tmp.weak_object_);
184  std::swap(cached_, tmp.cached_);
185  return *this;
186  }
WeakObject * weak_object_
Definition: RcObject.h:233
void swap(MessageBlock &lhs, MessageBlock &rhs)

◆ operator==()

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

Definition at line 196 of file RcObject.h.

197  {
198  return weak_object_ == rhs.weak_object_;
199  }
WeakObject * weak_object_
Definition: RcObject.h:233

◆ reset()

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

Definition at line 216 of file RcObject.h.

217  {
218  if (weak_object_) {
220  weak_object_ = 0;
221  }
222  cached_ = 0;
223  }
WeakObject * weak_object_
Definition: RcObject.h:233

Member Data Documentation

◆ cached_

template<typename T>
T* OpenDDS::DCPS::WeakRcHandle< T >::cached_
private

◆ weak_object_

template<typename T>
WeakObject* OpenDDS::DCPS::WeakRcHandle< T >::weak_object_
private

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