OpenSDN source code
TcpMessageWriter Class Reference

#include <tcp_message_write.h>

Collaboration diagram for TcpMessageWriter:

Public Member Functions

 TcpMessageWriter (TcpSession *session, size_t buffer_send_size)
 
 ~TcpMessageWriter ()
 
int Send (const uint8_t *msg, size_t len, boost::system::error_code *ec)
 
int AsyncSend (const uint8_t *msg, size_t len, boost::system::error_code *ec)
 
bool IsWritePending () const
 
size_t GetBufferQueueSize () const
 

Static Public Attributes

static const int kDefaultBufferSize = 4 * 1024
 
static const int kDefaultWriteBufferSize = 32 * 1024
 
static const int kMaxPendingBufferSize = 256 * 1024
 
static const int kMinPendingBufferSize = 64 * 1024
 

Private Types

typedef boost::intrusive_ptr< TcpSessionTcpSessionPtr
 
typedef std::list< boost::asio::mutable_buffer > BufferQueue
 

Private Member Functions

void BufferAppend (const uint8_t *data, int len)
 
void DeleteBuffer (boost::asio::mutable_buffer buffer)
 
bool UpdateBufferQueue (size_t wrote, bool *send_ready)
 
void TriggerAsyncWrite ()
 

Private Attributes

BufferQueue buffer_queue_
 
size_t offset_
 
size_t last_write_
 
size_t buffer_send_size_
 
TcpSessionsession_
 

Friends

class TcpSession
 

Detailed Description

Definition at line 20 of file tcp_message_write.h.

Member Typedef Documentation

◆ BufferQueue

typedef std::list<boost::asio::mutable_buffer> TcpMessageWriter::BufferQueue
private

Definition at line 55 of file tcp_message_write.h.

◆ TcpSessionPtr

typedef boost::intrusive_ptr<TcpSession> TcpMessageWriter::TcpSessionPtr
private

Definition at line 54 of file tcp_message_write.h.

Constructor & Destructor Documentation

◆ TcpMessageWriter()

TcpMessageWriter::TcpMessageWriter ( TcpSession session,
size_t  buffer_send_size 
)

Definition at line 25 of file tcp_message_write.cc.

◆ ~TcpMessageWriter()

TcpMessageWriter::~TcpMessageWriter ( )

Definition at line 31 of file tcp_message_write.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AsyncSend()

int TcpMessageWriter::AsyncSend ( const uint8_t *  msg,
size_t  len,
boost::system::error_code *  ec 
)

Definition at line 39 of file tcp_message_write.cc.

Here is the call graph for this function:

◆ BufferAppend()

void TcpMessageWriter::BufferAppend ( const uint8_t *  data,
int  len 
)
private

Definition at line 122 of file tcp_message_write.cc.

◆ DeleteBuffer()

void TcpMessageWriter::DeleteBuffer ( boost::asio::mutable_buffer  buffer)
private

Definition at line 129 of file tcp_message_write.cc.

◆ GetBufferQueueSize()

size_t TcpMessageWriter::GetBufferQueueSize ( ) const
inline

Definition at line 42 of file tcp_message_write.h.

◆ IsWritePending()

bool TcpMessageWriter::IsWritePending ( ) const
inline

Definition at line 38 of file tcp_message_write.h.

◆ Send()

int TcpMessageWriter::Send ( const uint8_t *  msg,
size_t  len,
boost::system::error_code *  ec 
)

◆ TriggerAsyncWrite()

void TcpMessageWriter::TriggerAsyncWrite ( )
private

Definition at line 68 of file tcp_message_write.cc.

Here is the call graph for this function:

◆ UpdateBufferQueue()

bool TcpMessageWriter::UpdateBufferQueue ( size_t  wrote,
bool *  send_ready 
)
private

Definition at line 86 of file tcp_message_write.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ TcpSession

friend class TcpSession
friend

Definition at line 53 of file tcp_message_write.h.

Member Data Documentation

◆ buffer_queue_

BufferQueue TcpMessageWriter::buffer_queue_
private

Definition at line 62 of file tcp_message_write.h.

◆ buffer_send_size_

size_t TcpMessageWriter::buffer_send_size_
private

Definition at line 65 of file tcp_message_write.h.

◆ kDefaultBufferSize

const int TcpMessageWriter::kDefaultBufferSize = 4 * 1024
static

Definition at line 22 of file tcp_message_write.h.

◆ kDefaultWriteBufferSize

const int TcpMessageWriter::kDefaultWriteBufferSize = 32 * 1024
static

Definition at line 23 of file tcp_message_write.h.

◆ kMaxPendingBufferSize

const int TcpMessageWriter::kMaxPendingBufferSize = 256 * 1024
static

Definition at line 24 of file tcp_message_write.h.

◆ kMinPendingBufferSize

const int TcpMessageWriter::kMinPendingBufferSize = 64 * 1024
static

Definition at line 25 of file tcp_message_write.h.

◆ last_write_

size_t TcpMessageWriter::last_write_
private

Definition at line 64 of file tcp_message_write.h.

◆ offset_

size_t TcpMessageWriter::offset_
private

Definition at line 63 of file tcp_message_write.h.

◆ session_

TcpSession* TcpMessageWriter::session_
private

Definition at line 66 of file tcp_message_write.h.


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