rippled
Public Member Functions | Private Types | Private Attributes | List of all members
ripple::ZeroCopyOutputStream< Streambuf > Class Template Reference

Implements ZeroCopyOutputStream around a Streambuf. More...

Inheritance diagram for ripple::ZeroCopyOutputStream< Streambuf >:
Inheritance graph
[legend]
Collaboration diagram for ripple::ZeroCopyOutputStream< Streambuf >:
Collaboration graph
[legend]

Public Member Functions

 ZeroCopyOutputStream (Streambuf &streambuf, std::size_t blockSize)
 
 ~ZeroCopyOutputStream ()
 
bool Next (void **data, int *size) override
 
void BackUp (int count) override
 
google::protobuf::int64 ByteCount () const override
 

Private Types

using buffers_type = typename Streambuf::mutable_buffers_type
 
using iterator = typename buffers_type::const_iterator
 
using mutable_buffer = boost::asio::mutable_buffer
 

Private Attributes

Streambuf & streambuf_
 
std::size_t blockSize_
 
google::protobuf::int64 count_ = 0
 
std::size_t commit_ = 0
 
buffers_type buffers_
 
iterator pos_
 

Detailed Description

template<class Streambuf>
class ripple::ZeroCopyOutputStream< Streambuf >

Implements ZeroCopyOutputStream around a Streambuf.

Streambuf matches the public interface defined by boost::asio::streambuf.

Template Parameters
StreambufA type meeting the requirements of Streambuf.

Definition at line 128 of file ZeroCopyStream.h.

Member Typedef Documentation

◆ buffers_type

template<class Streambuf >
using ripple::ZeroCopyOutputStream< Streambuf >::buffers_type = typename Streambuf::mutable_buffers_type
private

Definition at line 131 of file ZeroCopyStream.h.

◆ iterator

template<class Streambuf >
using ripple::ZeroCopyOutputStream< Streambuf >::iterator = typename buffers_type::const_iterator
private

Definition at line 132 of file ZeroCopyStream.h.

◆ mutable_buffer

template<class Streambuf >
using ripple::ZeroCopyOutputStream< Streambuf >::mutable_buffer = boost::asio::mutable_buffer
private

Definition at line 133 of file ZeroCopyStream.h.

Constructor & Destructor Documentation

◆ ZeroCopyOutputStream()

template<class Streambuf >
ripple::ZeroCopyOutputStream< Streambuf >::ZeroCopyOutputStream ( Streambuf &  streambuf,
std::size_t  blockSize 
)
explicit

Definition at line 163 of file ZeroCopyStream.h.

◆ ~ZeroCopyOutputStream()

template<class Streambuf >
ripple::ZeroCopyOutputStream< Streambuf >::~ZeroCopyOutputStream

Definition at line 174 of file ZeroCopyStream.h.

Member Function Documentation

◆ Next()

template<class Streambuf >
bool ripple::ZeroCopyOutputStream< Streambuf >::Next ( void **  data,
int *  size 
)
override

Definition at line 182 of file ZeroCopyStream.h.

◆ BackUp()

template<class Streambuf >
void ripple::ZeroCopyOutputStream< Streambuf >::BackUp ( int  count)
override

Definition at line 205 of file ZeroCopyStream.h.

◆ ByteCount()

template<class Streambuf >
google::protobuf::int64 ripple::ZeroCopyOutputStream< Streambuf >::ByteCount ( ) const
override

Definition at line 154 of file ZeroCopyStream.h.

Member Data Documentation

◆ streambuf_

template<class Streambuf >
Streambuf& ripple::ZeroCopyOutputStream< Streambuf >::streambuf_
private

Definition at line 135 of file ZeroCopyStream.h.

◆ blockSize_

template<class Streambuf >
std::size_t ripple::ZeroCopyOutputStream< Streambuf >::blockSize_
private

Definition at line 136 of file ZeroCopyStream.h.

◆ count_

template<class Streambuf >
google::protobuf::int64 ripple::ZeroCopyOutputStream< Streambuf >::count_ = 0
private

Definition at line 137 of file ZeroCopyStream.h.

◆ commit_

template<class Streambuf >
std::size_t ripple::ZeroCopyOutputStream< Streambuf >::commit_ = 0
private

Definition at line 138 of file ZeroCopyStream.h.

◆ buffers_

template<class Streambuf >
buffers_type ripple::ZeroCopyOutputStream< Streambuf >::buffers_
private

Definition at line 139 of file ZeroCopyStream.h.

◆ pos_

template<class Streambuf >
iterator ripple::ZeroCopyOutputStream< Streambuf >::pos_
private

Definition at line 140 of file ZeroCopyStream.h.