OpenDDS::DCPS::TransportSendBuffer Class Reference

#include <TransportSendBuffer.h>

Inheritance diagram for OpenDDS::DCPS::TransportSendBuffer:

Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::TransportSendBuffer:

Collaboration graph
[legend]
List of all members.

Public Types

typedef TransportSendStrategy::LockType LockType

Public Member Functions

size_t capacity () const
void bind (TransportSendStrategy *strategy)
virtual void retain_all (RepoId pub_id)=0
virtual void insert (SequenceNumber sequence, TransportSendStrategy::QueueType *queue, ACE_Message_Block *chain)=0
LockTypestrategy_lock ()

Protected Types

typedef TransportSendStrategy::QueueType QueueType
typedef std::pair< QueueType *,
ACE_Message_Block * > 
BufferType

Protected Member Functions

 TransportSendBuffer (size_t capacity)
virtual ~TransportSendBuffer ()
void resend_one (const BufferType &buffer)

Protected Attributes

TransportSendStrategystrategy_
const size_t capacity_

Private Member Functions

 TransportSendBuffer (const TransportSendBuffer &)
TransportSendBufferoperator= (const TransportSendBuffer &)

Detailed Description

Abstract base class that forms the interface for TransportSendStrategy to store data for potential retransmission. Derived classes actually store the data and can utilize TransportSendBuffer's friendship in TransportSendStrategy to retransmit (see method "resend_one").

Definition at line 35 of file TransportSendBuffer.h.


Member Typedef Documentation

typedef std::pair<QueueType*, ACE_Message_Block*> OpenDDS::DCPS::TransportSendBuffer::BufferType [protected]

Definition at line 54 of file TransportSendBuffer.h.

typedef TransportSendStrategy::LockType OpenDDS::DCPS::TransportSendBuffer::LockType

Definition at line 45 of file TransportSendBuffer.h.

typedef TransportSendStrategy::QueueType OpenDDS::DCPS::TransportSendBuffer::QueueType [protected]

Definition at line 53 of file TransportSendBuffer.h.


Constructor & Destructor Documentation

OpenDDS::DCPS::TransportSendBuffer::TransportSendBuffer ( size_t  capacity  )  [inline, explicit, protected]

Definition at line 49 of file TransportSendBuffer.h.

00050     : strategy_(0), capacity_(capacity) {}

OpenDDS::DCPS::TransportSendBuffer::~TransportSendBuffer (  )  [protected, virtual]

Definition at line 28 of file TransportSendBuffer.cpp.

00029 {
00030 }

OpenDDS::DCPS::TransportSendBuffer::TransportSendBuffer ( const TransportSendBuffer  )  [private]


Member Function Documentation

ACE_INLINE void OpenDDS::DCPS::TransportSendBuffer::bind ( TransportSendStrategy strategy  ) 

Definition at line 18 of file TransportSendBuffer.inl.

References strategy_.

Referenced by OpenDDS::DCPS::TransportSendStrategy::send_buffer().

00019 {
00020   this->strategy_ = strategy;
00021 }

ACE_INLINE size_t OpenDDS::DCPS::TransportSendBuffer::capacity (  )  const

Definition at line 12 of file TransportSendBuffer.inl.

References capacity_.

Referenced by OpenDDS::DCPS::TransportSendStrategy::start().

00013 {
00014   return this->capacity_;
00015 }

virtual void OpenDDS::DCPS::TransportSendBuffer::insert ( SequenceNumber  sequence,
TransportSendStrategy::QueueType queue,
ACE_Message_Block *  chain 
) [pure virtual]

Implemented in OpenDDS::DCPS::SingleSendBuffer, and OpenDDS::DCPS::RtpsUdpDataLink::MultiSendBuffer.

Referenced by OpenDDS::DCPS::TransportSendStrategy::send_packet().

TransportSendBuffer& OpenDDS::DCPS::TransportSendBuffer::operator= ( const TransportSendBuffer  )  [private]

void OpenDDS::DCPS::TransportSendBuffer::resend_one ( const BufferType buffer  )  [protected]

Definition at line 33 of file TransportSendBuffer.cpp.

References OpenDDS::DCPS::TransportSendStrategy::do_send_packet(), and strategy_.

Referenced by OpenDDS::DCPS::SingleSendBuffer::resend_fragments_i(), and OpenDDS::DCPS::SingleSendBuffer::resend_i().

00034 {
00035   int bp = 0;
00036   this->strategy_->do_send_packet(buffer.second, bp);
00037 }

virtual void OpenDDS::DCPS::TransportSendBuffer::retain_all ( RepoId  pub_id  )  [pure virtual]

Implemented in OpenDDS::DCPS::SingleSendBuffer, and OpenDDS::DCPS::RtpsUdpDataLink::MultiSendBuffer.

Referenced by OpenDDS::DCPS::TransportSendStrategy::remove_all_msgs().

LockType& OpenDDS::DCPS::TransportSendBuffer::strategy_lock (  )  [inline]

Definition at line 46 of file TransportSendBuffer.h.

Referenced by OpenDDS::DCPS::SingleSendBuffer::resend(), and OpenDDS::DCPS::RtpsUdpDataLink::send_nack_replies().

00046 { return this->strategy_->lock_; }


Member Data Documentation

const size_t OpenDDS::DCPS::TransportSendBuffer::capacity_ [protected]

Definition at line 59 of file TransportSendBuffer.h.

Referenced by capacity(), and OpenDDS::DCPS::SingleSendBuffer::check_capacity().

TransportSendStrategy* OpenDDS::DCPS::TransportSendBuffer::strategy_ [protected]

Definition at line 58 of file TransportSendBuffer.h.

Referenced by bind(), and resend_one().


The documentation for this class was generated from the following files:
Generated on Fri Feb 12 20:06:32 2016 for OpenDDS by  doxygen 1.4.7