Quick Links: |
#include <bdlsb_overflowmemoutstreambuf.h>
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION (OverflowMemOutStreamBuf, bslma::UsesBslmaAllocator) | |
OverflowMemOutStreamBuf (char *buffer, bsl::size_t size, bslma::Allocator *basicAllocator=0) | |
virtual | ~OverflowMemOutStreamBuf () |
bsl::size_t | dataLength () const |
bsl::size_t | dataLengthInInitialBuffer () const |
bsl::size_t | dataLengthInOverflowBuffer () const |
const char * | initialBuffer () const |
bsl::size_t | initialBufferSize () const |
const char * | overflowBuffer () const |
bsl::size_t | overflowBufferSize () const |
Protected Member Functions | |
virtual pos_type | seekoff (off_type offset, bsl::ios_base::seekdir way, bsl::ios_base::openmode which=bsl::ios_base::in|bsl::ios_base::out) |
virtual pos_type | seekpos (pos_type position, bsl::ios_base::openmode which=bsl::ios_base::in|bsl::ios_base::out) |
virtual int | sync () |
virtual bsl::streamsize | xsputn (const char_type *source, bsl::streamsize numChars) |
virtual int_type | overflow (int_type c=bsl::streambuf::traits_type::eof()) |
This class implements the output functionality of the bsl::basic_streambuf
protocol, using client-supplied memory and client-supplied allocator if additional memory is needed.
See Component bdlsb_overflowmemoutstreambuf
bdlsb::OverflowMemOutStreamBuf::OverflowMemOutStreamBuf | ( | char * | buffer, | |
bsl::size_t | size, | |||
bslma::Allocator * | basicAllocator = 0 | |||
) |
Create an empty stream buffer that uses the specified buffer
as an initial output buffer of the specified size
(in bytes). Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently-installed default allocator is used. The behavior is undefined unless buffer
points to a valid sequence of positive size
characters. Note that this stream buffer does not assume ownership of buffer
.
virtual bdlsb::OverflowMemOutStreamBuf::~OverflowMemOutStreamBuf | ( | ) | [virtual] |
Destroy this stream buffer.
virtual pos_type bdlsb::OverflowMemOutStreamBuf::seekoff | ( | off_type | offset, | |
bsl::ios_base::seekdir | way, | |||
bsl::ios_base::openmode | which = bsl::ios_base::in|bsl::ios_base::out | |||
) | [protected, virtual] |
Set the position indicator to the relative specified offset
from the base position indicated by the specified way
and return the resulting absolute position on success or pos_type(-1) on failure. Optionally specify which
area of the stream buffer. The seek operation will fail if which
does not include the flag bsl::ios_base::out
or if the resulting absolute position is negative.
virtual pos_type bdlsb::OverflowMemOutStreamBuf::seekpos | ( | pos_type | position, | |
bsl::ios_base::openmode | which = bsl::ios_base::in|bsl::ios_base::out | |||
) | [protected, virtual] |
Set the position indicator to the specified position
and return the resulting absolute position on success or pos_type(-1) on failure. Optionally specify which
area of the stream buffer. The seekpos
operation will fail if which
does not include the flag bsl::ios_base::out
or if position
is negative.
virtual int bdlsb::OverflowMemOutStreamBuf::sync | ( | ) | [protected, virtual] |
Set d_dataLength
to the amount of data that has been written to this stream buffer, from the beginning of the stream to the current pptr()
position and return 0. Note that if pptr()
points into the overflow buffer, this size the initial buffer, plus the portion of the overflow buffer that has been written to.
virtual bsl::streamsize bdlsb::OverflowMemOutStreamBuf::xsputn | ( | const char_type * | source, | |
bsl::streamsize | numChars | |||
) | [protected, virtual] |
Write the specified numChars
characters from the specified source
to the stream buffer. Return the number of characters successfully written. The behavior is undefined unless '(source && 0 < numChars) || 0 == numChars'.
virtual int_type bdlsb::OverflowMemOutStreamBuf::overflow | ( | int_type | c = bsl::streambuf::traits_type::eof() |
) | [protected, virtual] |
If c is not EOF
, adjust the underlying buffer so that the next put position is valid, put the specified c
at this position, and increment the put position. Return c
on success, and traits_type::not_eof(c)
if c
is EOF
.
bdlsb::OverflowMemOutStreamBuf::BSLMF_NESTED_TRAIT_DECLARATION | ( | OverflowMemOutStreamBuf | , | |
bslma::UsesBslmaAllocator | ||||
) |
bsl::size_t bdlsb::OverflowMemOutStreamBuf::dataLength | ( | ) | const |
Return the number of bytes written to this stream. Note that if pptr()
is currently pointing into the overflow buffer the data length will be greater than the size of the initial buffer.
bsl::size_t bdlsb::OverflowMemOutStreamBuf::dataLengthInInitialBuffer | ( | ) | const |
Return the length of data in the initial buffer, i.e., dataLength()
if there is no overflow buffer, or initialBufferSize()
if there is one.
bsl::size_t bdlsb::OverflowMemOutStreamBuf::dataLengthInOverflowBuffer | ( | ) | const |
Return the length of the data in the overflow buffer, i.e., 0 if there is no overflow buffer, or dataLength() - initialBufferSize()
if there is one.
const char* bdlsb::OverflowMemOutStreamBuf::initialBuffer | ( | ) | const |
Return a pointer to the non-modifiable buffer supplied at construction.
bsl::size_t bdlsb::OverflowMemOutStreamBuf::initialBufferSize | ( | ) | const |
Return the size of the buffer supplied at construction.
const char* bdlsb::OverflowMemOutStreamBuf::overflowBuffer | ( | ) | const |
Return a pointer to the non-modifiable overflow buffer if there is one, or 0 otherwise.
bsl::size_t bdlsb::OverflowMemOutStreamBuf::overflowBufferSize | ( | ) | const |
Return the size of the overflow buffer, or 0 if there is no overflow buffer.