8#ifndef INCLUDED_BDLSB_OVERFLOWMEMOUTSTREAMBUF
9#define INCLUDED_BDLSB_OVERFLOWMEMOUTSTREAMBUF
209#include <bdlscm_version.h>
219#include <bsl_cstddef.h>
221#include <bsl_streambuf.h>
247 mutable bsl::size_t d_dataLength;
249 char *d_initialBuffer_p;
252 bsl::size_t d_initialBufferSize;
254 bool d_inOverflowBufferFlag;
257 char *d_overflowBuffer_p;
259 bsl::size_t d_overflowBufferSize;
281 void grow(bsl::size_t numBytes);
289 void privateSync()
const;
304 bsl::ios_base::seekdir way,
305 bsl::ios_base::openmode which = bsl::ios_base::in | bsl::ios_base::out)
315 bsl::ios_base::openmode which = bsl::ios_base::in | bsl::ios_base::out)
338 int_type
overflow(int_type c =
bsl::streambuf::traits_type::eof())
344 bslma::UsesBslmaAllocator);
359 bslma::Allocator *basicAllocator = 0);
409 bsl::ios_base::openmode which)
411 return seekoff(off_type(position), bsl::ios_base::beg, which);
425 d_allocator_p->
deallocate(d_overflowBuffer_p);
440 return d_inOverflowBufferFlag ? d_initialBufferSize : d_dataLength;
447 return d_inOverflowBufferFlag ? d_dataLength - d_initialBufferSize : 0;
453 return d_initialBuffer_p;
459 return d_initialBufferSize;
465 return d_overflowBuffer_p;
471 return d_overflowBufferSize;
#define BSLMF_NESTED_TRAIT_DECLARATION(t_TYPE, t_TRAIT)
Definition bslmf_nestedtraitdeclaration.h:231
Definition bdlsb_overflowmemoutstreambuf.h:235
~OverflowMemOutStreamBuf() BSLS_KEYWORD_OVERRIDE
Destroy this stream buffer.
Definition bdlsb_overflowmemoutstreambuf.h:423
bsl::size_t overflowBufferSize() const
Definition bdlsb_overflowmemoutstreambuf.h:469
bsl::streamsize xsputn(const char_type *source, bsl::streamsize numChars) BSLS_KEYWORD_OVERRIDE
int sync() BSLS_KEYWORD_OVERRIDE
Definition bdlsb_overflowmemoutstreambuf.h:415
pos_type seekpos(pos_type position, bsl::ios_base::openmode which=bsl::ios_base::in|bsl::ios_base::out) BSLS_KEYWORD_OVERRIDE
Definition bdlsb_overflowmemoutstreambuf.h:408
pos_type seekoff(off_type offset, bsl::ios_base::seekdir way, bsl::ios_base::openmode which=bsl::ios_base::in|bsl::ios_base::out) BSLS_KEYWORD_OVERRIDE
const char * overflowBuffer() const
Definition bdlsb_overflowmemoutstreambuf.h:463
bsl::size_t dataLength() const
Definition bdlsb_overflowmemoutstreambuf.h:430
bsl::size_t dataLengthInOverflowBuffer() const
Definition bdlsb_overflowmemoutstreambuf.h:444
int_type overflow(int_type c=bsl::streambuf::traits_type::eof()) BSLS_KEYWORD_OVERRIDE
const char * initialBuffer() const
Return a pointer to the non-modifiable buffer supplied at construction.
Definition bdlsb_overflowmemoutstreambuf.h:451
bsl::size_t initialBufferSize() const
Return the size of the buffer supplied at construction.
Definition bdlsb_overflowmemoutstreambuf.h:457
bsl::size_t dataLengthInInitialBuffer() const
Definition bdlsb_overflowmemoutstreambuf.h:437
Definition bslma_allocator.h:545
virtual void deallocate(void *address)=0
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_OVERRIDE
Definition bsls_keyword.h:695
Definition bdlsb_fixedmeminput.h:145
Definition bdlat_valuetypefunctions.h:939
Definition baljsn_encoder_testtypes.h:76