8#ifndef INCLUDED_BDLSB_FIXEDMEMINPUT
9#define INCLUDED_BDLSB_FIXEDMEMINPUT
130#include <bdlscm_version.h>
138#include <bsl_algorithm.h>
139#include <bsl_cstdlib.h>
140#include <bsl_cstring.h>
142#include <bsl_iosfwd.h>
177 const char *d_buffer_p;
178 bsl::size_t d_bufferSize;
227 bsl::ios_base::seekdir way,
228 bsl::ios_base::openmode which = bsl::ios_base::in);
237 bsl::ios_base::openmode which = bsl::ios_base::in);
287 const char *
data()
const;
293 bsl::size_t
length()
const;
306FixedMemInput::FixedMemInput(
const char *buffer, bsl::size_t length)
307: d_buffer_p(const_cast<char *>(buffer))
308, d_bufferSize(length)
319 return bsl::streamsize(-1);
321 return static_cast<bsl::streamsize
>(d_bufferSize - d_pos);
326 bsl::streamsize length)
333 d_bufferSize =
static_cast<bsl::size_t
>(
length);
342 return traits_type::eof();
344 const int_type i = traits_type::to_int_type(d_buffer_p[d_pos]);
353 return traits_type::eof();
356 return traits_type::to_int_type(d_buffer_p[d_pos]);
365 const bsl::size_t current = d_pos;
366 d_pos +=
static_cast<bsl::size_t
>(
length);
369 (d_pos < current) )) {
370 d_pos = d_bufferSize;
371 length =
static_cast<bsl::streamsize
>(d_bufferSize - current);
373 bsl::memcpy(destination, d_buffer_p+current,
length);
381 return traits_type::eof();
392 return traits_type::eof();
395 return traits_type::to_int_type(c);
402 return traits_type::eof();
405 return traits_type::to_int_type(d_buffer_p[d_pos]);
424 return (d_bufferSize - d_pos);
#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
Definition bdlsb_fixedmeminput.h:145