8#ifndef INCLUDED_BDLSB_FIXEDMEMINSTREAMBUF
9#define INCLUDED_BDLSB_FIXEDMEMINSTREAMBUF
160#include <bdlscm_version.h>
167#include <bsl_cstring.h>
169#include <bsl_streambuf.h>
171#if defined(BSLS_PLATFORM_CMP_MSVC) && defined(min)
191 bsl::size_t d_bufferSize;
209 bsl::ios_base::seekdir way,
210 bsl::ios_base::openmode which = bsl::ios_base::in)
219 pos_type
seekpos(pos_type position,
220 bsl::ios_base::openmode which = bsl::ios_base::in)
244 bsl::streamsize
xsgetn(char_type *destination,
280 const
char *
data() const;
301 bsl::ios_base::openmode which)
303 return seekoff(
static_cast<off_type
>(position), bsl::ios_base::beg, which);
317 d_bufferSize =
static_cast<bsl::size_t
>(
length);
318 setg(d_buffer_p, d_buffer_p, d_buffer_p + d_bufferSize);
335 bsl::streamsize numChars = egptr() - gptr();
349 bsl::streamsize charsLeft = egptr() - gptr();
351 bsl::streamsize canCopy = charsLeft <
length ? charsLeft :
length;
353 bsl::memcpy(destination, gptr(),
static_cast<bsl::size_t
>(canCopy));
354 gbump(
static_cast<int>(canCopy));
360FixedMemInStreamBuf::FixedMemInStreamBuf(
const char *buffer,
362: d_buffer_p(const_cast<char *>(buffer))
367 setg(d_buffer_p, d_buffer_p, d_buffer_p + d_bufferSize);
378 bsl::streamsize length)
388 bsl::streamsize length)
406 return egptr() - gptr();
Definition bdlsb_fixedmeminstreambuf.h:187
FixedMemInStreamBuf * setbuf(char *buffer, bsl::streamsize length) BSLS_KEYWORD_OVERRIDE
Definition bdlsb_fixedmeminstreambuf.h:308
const char * data() const
Definition bdlsb_fixedmeminstreambuf.h:398
pos_type seekoff(off_type offset, bsl::ios_base::seekdir way, bsl::ios_base::openmode which=bsl::ios_base::in) BSLS_KEYWORD_OVERRIDE
bsl::streamsize xsgetn(char_type *destination, bsl::streamsize length) BSLS_KEYWORD_OVERRIDE
Definition bdlsb_fixedmeminstreambuf.h:343
pos_type seekpos(pos_type position, bsl::ios_base::openmode which=bsl::ios_base::in) BSLS_KEYWORD_OVERRIDE
Definition bdlsb_fixedmeminstreambuf.h:300
~FixedMemInStreamBuf() BSLS_KEYWORD_OVERRIDE
Destroy this stream buffer.
Definition bdlsb_fixedmeminstreambuf.h:371
FixedMemInStreamBuf * pubsetbuf(char *buffer, bsl::streamsize length)
Definition bdlsb_fixedmeminstreambuf.h:387
bsl::size_t length() const
Definition bdlsb_fixedmeminstreambuf.h:404
bsl::streamsize showmanyc() BSLS_KEYWORD_OVERRIDE
Definition bdlsb_fixedmeminstreambuf.h:333
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#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