OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
< TcpSession
TcpSessionPtr
 
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

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

Definition at line 55 of file tcp_message_write.h.

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

Definition at line 54 of file tcp_message_write.h.

Constructor & Destructor Documentation

TcpMessageWriter::TcpMessageWriter ( TcpSession session,
size_t  buffer_send_size 
)

Definition at line 25 of file tcp_message_write.cc.

TcpMessageWriter::~TcpMessageWriter ( )

Definition at line 31 of file tcp_message_write.cc.

Here is the call graph for this function:

Member Function Documentation

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:

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

Definition at line 122 of file tcp_message_write.cc.

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

Definition at line 129 of file tcp_message_write.cc.

size_t TcpMessageWriter::GetBufferQueueSize ( ) const
inline

Definition at line 42 of file tcp_message_write.h.

bool TcpMessageWriter::IsWritePending ( ) const
inline

Definition at line 38 of file tcp_message_write.h.

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

Definition at line 68 of file tcp_message_write.cc.

Here is the call graph for this function:

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

friend class TcpSession
friend

Definition at line 53 of file tcp_message_write.h.

Member Data Documentation

BufferQueue TcpMessageWriter::buffer_queue_
private

Definition at line 62 of file tcp_message_write.h.

size_t TcpMessageWriter::buffer_send_size_
private

Definition at line 65 of file tcp_message_write.h.

const int TcpMessageWriter::kDefaultBufferSize = 4 * 1024
static

Definition at line 22 of file tcp_message_write.h.

const int TcpMessageWriter::kDefaultWriteBufferSize = 32 * 1024
static

Definition at line 23 of file tcp_message_write.h.

const int TcpMessageWriter::kMaxPendingBufferSize = 256 * 1024
static

Definition at line 24 of file tcp_message_write.h.

const int TcpMessageWriter::kMinPendingBufferSize = 64 * 1024
static

Definition at line 25 of file tcp_message_write.h.

size_t TcpMessageWriter::last_write_
private

Definition at line 64 of file tcp_message_write.h.

size_t TcpMessageWriter::offset_
private

Definition at line 63 of file tcp_message_write.h.

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: