OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TcpMessageReader Class Referenceabstract

#include <tcp_session.h>

Inheritance diagram for TcpMessageReader:
Collaboration diagram for TcpMessageReader:

Public Types

typedef boost::asio::const_buffer Buffer
 
typedef boost::function< bool(const
uint8_t *, size_t)> 
ReceiveCallback
 

Public Member Functions

 TcpMessageReader (TcpSession *session, ReceiveCallback callback)
 
virtual ~TcpMessageReader ()
 
virtual void OnRead (Buffer buffer)
 

Protected Member Functions

virtual int MsgLength (Buffer buffer, int offset)=0
 
virtual const int GetHeaderLenSize ()=0
 
virtual const int GetMaxMessageSize ()=0
 

Private Types

typedef std::deque< BufferBufferQueue
 

Private Member Functions

uint8_t * BufferConcat (uint8_t *data, Buffer buffer, int msglength)
 
int QueueByteLength () const
 
Buffer PullUp (uint8_t *data, Buffer buffer, size_t size) const
 
int AllocBufferSize (int length)
 
 DISALLOW_COPY_AND_ASSIGN (TcpMessageReader)
 

Private Attributes

TcpSessionsession_
 
ReceiveCallback callback_
 
BufferQueue queue_
 
int offset_
 
int remain_
 

Detailed Description

Definition at line 308 of file tcp_session.h.

Member Typedef Documentation

typedef boost::asio::const_buffer TcpMessageReader::Buffer

Definition at line 310 of file tcp_session.h.

typedef std::deque<Buffer> TcpMessageReader::BufferQueue
private

Definition at line 323 of file tcp_session.h.

typedef boost::function<bool(const uint8_t *, size_t)> TcpMessageReader::ReceiveCallback

Definition at line 311 of file tcp_session.h.

Constructor & Destructor Documentation

TcpMessageReader::TcpMessageReader ( TcpSession session,
ReceiveCallback  callback 
)

Definition at line 577 of file tcp_session.cc.

TcpMessageReader::~TcpMessageReader ( )
virtual

Definition at line 582 of file tcp_session.cc.

Member Function Documentation

int TcpMessageReader::AllocBufferSize ( int  length)
private

Definition at line 586 of file tcp_session.cc.

Here is the call graph for this function:

uint8_t * TcpMessageReader::BufferConcat ( uint8_t *  data,
Buffer  buffer,
int  msglength 
)
private

Definition at line 597 of file tcp_session.cc.

Here is the call graph for this function:

TcpMessageReader::DISALLOW_COPY_AND_ASSIGN ( TcpMessageReader  )
private
virtual const int TcpMessageReader::GetHeaderLenSize ( )
protectedpure virtual
virtual const int TcpMessageReader::GetMaxMessageSize ( )
protectedpure virtual
virtual int TcpMessageReader::MsgLength ( Buffer  buffer,
int  offset 
)
protectedpure virtual
void TcpMessageReader::OnRead ( Buffer  buffer)
virtual

Definition at line 671 of file tcp_session.cc.

Here is the call graph for this function:

TcpMessageReader::Buffer TcpMessageReader::PullUp ( uint8_t *  data,
Buffer  buffer,
size_t  size 
) const
private

Definition at line 635 of file tcp_session.cc.

Here is the call graph for this function:

int TcpMessageReader::QueueByteLength ( ) const
private

Definition at line 622 of file tcp_session.cc.

Here is the call graph for this function:

Member Data Documentation

ReceiveCallback TcpMessageReader::callback_
private

Definition at line 335 of file tcp_session.h.

int TcpMessageReader::offset_
private

Definition at line 337 of file tcp_session.h.

BufferQueue TcpMessageReader::queue_
private

Definition at line 336 of file tcp_session.h.

int TcpMessageReader::remain_
private

Definition at line 338 of file tcp_session.h.

TcpSession* TcpMessageReader::session_
private

Definition at line 334 of file tcp_session.h.


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