8#ifndef INCLUDED_BSLX_BYTEINSTREAM
9#define INCLUDED_BSLX_BYTEINSTREAM
362#include <bslscm_version.h>
371#include <bsl_cstddef.h>
372#include <bsl_iosfwd.h>
373#include <bsl_string.h>
374#include <bsl_vector.h>
398 const char *d_buffer;
400 bsl::size_t d_numBytes;
405 bsl::size_t d_cursor;
483 void reset(
const char *buffer, bsl::size_t numBytes);
981 operator const void *()
const;
984 bsl::size_t
cursor()
const;
989 const char *
data()
const;
1007 bsl::size_t
length()
const;
1022template <
class TYPE>
1046, d_numBytes(numBytes)
1055: d_buffer(srcData.data())
1056, d_numBytes(static_cast<int>(srcData.length()))
1077 if (127 <
static_cast<unsigned char>(d_buffer[
cursor()])) {
1108 unsigned char tmp = 0;
1118 d_validFlag =
false;
1134 d_numBytes = numBytes;
1142 d_buffer = srcData.
data();
1143 d_numBytes = srcData.
length();
1438 return getInt8(
reinterpret_cast<char&
>(variable));
1450 return getInt8(
reinterpret_cast<char&
>(variable));
1517 enum { k_INITIAL_ALLOCATION_SIZE = 16 * 1024 * 1024 };
1519 const int initialLength =
length < k_INITIAL_ALLOCATION_SIZE
1521 : k_INITIAL_ALLOCATION_SIZE;
1523 variable.
resize(initialLength);
1933 return getArrayInt8(
reinterpret_cast<char *
>(variables), numVariables);
1952 return getArrayInt8(
reinterpret_cast<char *
>(variables), numVariables);
2010ByteInStream::operator
const void *()
const
2012 return isValid() ? this : 0;
2024 return d_numBytes ? d_buffer : 0;
2045template <
class TYPE>
Definition bslstl_string.h:1252
CHAR_TYPE & front()
Definition bslstl_string.h:6115
void resize(size_type newLength, CHAR_TYPE character)
Definition bslstl_string.h:5977
Definition bslstl_stringref.h:374
const CHAR_TYPE * data() const
Definition bslstl_stringref.h:962
size_type length() const
Definition bslstl_stringref.h:984
Definition bslx_byteinstream.h:395
ByteInStream & getArrayInt40(bsls::Types::Int64 *variables, int numVariables)
Definition bslx_byteinstream.h:1697
ByteInStream & getFloat64(double &variable)
Definition bslx_byteinstream.h:1456
ByteInStream & getInt8(char &variable)
Definition bslx_byteinstream.h:1417
ByteInStream & getInt56(bsls::Types::Int64 &variable)
Definition bslx_byteinstream.h:1189
bsl::size_t cursor() const
Return the index of the next byte to be extracted from this stream.
Definition bslx_byteinstream.h:2016
bool isEmpty() const
Definition bslx_byteinstream.h:2028
ByteInStream & getArrayUint16(unsigned short *variables, int numVariables)
Definition bslx_byteinstream.h:1876
bsl::size_t length() const
Definition bslx_byteinstream.h:2040
ByteInStream & getInt40(bsls::Types::Int64 &variable)
Definition bslx_byteinstream.h:1265
ByteInStream & getArrayInt64(bsls::Types::Int64 *variables, int numVariables)
Definition bslx_byteinstream.h:1541
ByteInStream & getUint8(char &variable)
Definition bslx_byteinstream.h:1442
ByteInStream & getUint16(unsigned short &variable)
Definition bslx_byteinstream.h:1398
ByteInStream & getUint48(bsls::Types::Uint64 &variable)
Definition bslx_byteinstream.h:1246
ByteInStream & getUint64(bsls::Types::Uint64 &variable)
Definition bslx_byteinstream.h:1170
ByteInStream & getUint24(unsigned int &variable)
Definition bslx_byteinstream.h:1360
ByteInStream & getUint40(bsls::Types::Uint64 &variable)
Definition bslx_byteinstream.h:1284
ByteInStream & getArrayInt24(int *variables, int numVariables)
Definition bslx_byteinstream.h:1800
ByteInStream & getArrayInt16(short *variables, int numVariables)
Definition bslx_byteinstream.h:1851
ByteInStream & getArrayInt56(bsls::Types::Int64 *variables, int numVariables)
Definition bslx_byteinstream.h:1593
ByteInStream & getLength(int &length)
Definition bslx_byteinstream.h:1069
ByteInStream()
Definition bslx_byteinstream.h:1035
ByteInStream & getInt48(bsls::Types::Int64 &variable)
Definition bslx_byteinstream.h:1227
ByteInStream & getArrayUint24(unsigned int *variables, int numVariables)
Definition bslx_byteinstream.h:1825
void reset()
Definition bslx_byteinstream.h:1122
ByteInStream & getArrayFloat64(double *variables, int numVariables)
Definition bslx_byteinstream.h:1958
ByteInStream & getArrayInt48(bsls::Types::Int64 *variables, int numVariables)
Definition bslx_byteinstream.h:1645
ByteInStream & getArrayUint32(unsigned int *variables, int numVariables)
Definition bslx_byteinstream.h:1774
ByteInStream & getArrayUint56(bsls::Types::Uint64 *variables, int numVariables)
Definition bslx_byteinstream.h:1619
ByteInStream & getArrayFloat32(float *variables, int numVariables)
Definition bslx_byteinstream.h:1984
ByteInStream & getArrayUint8(char *variables, int numVariables)
Definition bslx_byteinstream.h:1937
bool isValid() const
Definition bslx_byteinstream.h:2034
ByteInStream & getArrayInt8(char *variables, int numVariables)
Definition bslx_byteinstream.h:1902
friend bsl::ostream & operator<<(bsl::ostream &stream, const ByteInStream &object)
ByteInStream & getInt32(int &variable)
Definition bslx_byteinstream.h:1303
ByteInStream & getArrayInt32(int *variables, int numVariables)
Definition bslx_byteinstream.h:1749
void invalidate()
Definition bslx_byteinstream.h:1116
ByteInStream & getArrayUint64(bsls::Types::Uint64 *variables, int numVariables)
Definition bslx_byteinstream.h:1567
ByteInStream & getArrayUint48(bsls::Types::Uint64 *variables, int numVariables)
Definition bslx_byteinstream.h:1671
~ByteInStream()
Destroy this object.
Definition bslx_byteinstream.h:1063
ByteInStream & getInt64(bsls::Types::Int64 &variable)
Definition bslx_byteinstream.h:1151
ByteInStream & getFloat32(float &variable)
Definition bslx_byteinstream.h:1475
ByteInStream & getInt16(short &variable)
Definition bslx_byteinstream.h:1379
ByteInStream & getArrayUint40(bsls::Types::Uint64 *variables, int numVariables)
Definition bslx_byteinstream.h:1723
ByteInStream & getString(bsl::string &variable)
Definition bslx_byteinstream.h:1496
ByteInStream & getUint32(unsigned int &variable)
Definition bslx_byteinstream.h:1322
ByteInStream & getUint56(bsls::Types::Uint64 &variable)
Definition bslx_byteinstream.h:1208
ByteInStream & getInt24(int &variable)
Definition bslx_byteinstream.h:1341
ByteInStream & getVersion(int &version)
Definition bslx_byteinstream.h:1101
const char * data() const
Definition bslx_byteinstream.h:2022
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
STREAM & bdexStreamIn(STREAM &stream, VALUE_TYPE &variable)
Definition bslx_instreamfunctions.h:1263
Definition bslx_byteinstream.h:377
bsl::ostream & operator<<(bsl::ostream &stream, const ByteInStream &object)
ByteInStream & operator>>(ByteInStream &stream, TYPE &value)
Definition bslx_byteinstream.h:2047
unsigned long long Uint64
Definition bsls_types.h:139
long long Int64
Definition bsls_types.h:134
static void getArrayFloat64(double *variables, const char *buffer, int numVariables)
static void getArrayInt24(int *variables, const char *buffer, int numVariables)
static void getUint24(unsigned int *variable, const char *buffer)
Definition bslx_marshallingutil.h:1387
static void getInt56(bsls::Types::Int64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1168
static void getInt32(int *variable, const char *buffer)
Definition bslx_marshallingutil.h:1318
static void getFloat32(float *variable, const char *buffer)
Definition bslx_marshallingutil.h:1508
static void getArrayUint48(bsls::Types::Uint64 *variables, const char *buffer, int numVariables)
static void getArrayFloat32(float *variables, const char *buffer, int numVariables)
static void getUint16(unsigned short *variable, const char *buffer)
Definition bslx_marshallingutil.h:1431
static void getUint64(bsls::Types::Uint64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1139
static void getInt40(bsls::Types::Int64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1270
static void getUint56(bsls::Types::Uint64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1194
static void getInt64(bsls::Types::Int64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1110
static void getArrayInt56(bsls::Types::Int64 *variables, const char *buffer, int numVariables)
@ k_SIZEOF_INT8
Definition bslx_marshallingutil.h:281
@ k_SIZEOF_INT48
Definition bslx_marshallingutil.h:276
@ k_SIZEOF_FLOAT64
Definition bslx_marshallingutil.h:282
@ k_SIZEOF_INT64
Definition bslx_marshallingutil.h:274
@ k_SIZEOF_INT24
Definition bslx_marshallingutil.h:279
@ k_SIZEOF_INT56
Definition bslx_marshallingutil.h:275
@ k_SIZEOF_INT16
Definition bslx_marshallingutil.h:280
@ k_SIZEOF_FLOAT32
Definition bslx_marshallingutil.h:283
@ k_SIZEOF_INT40
Definition bslx_marshallingutil.h:277
@ k_SIZEOF_INT32
Definition bslx_marshallingutil.h:278
static void getArrayInt32(int *variables, const char *buffer, int numVariables)
static void getArrayUint64(bsls::Types::Uint64 *variables, const char *buffer, int numVariables)
static void getArrayInt48(bsls::Types::Int64 *variables, const char *buffer, int numVariables)
static void getArrayInt8(char *variables, const char *buffer, int numVariables)
Definition bslx_marshallingutil.h:1570
static void getArrayUint56(bsls::Types::Uint64 *variables, const char *buffer, int numVariables)
static void getArrayUint16(unsigned short *variables, const char *buffer, int numVariables)
static void getInt16(short *variable, const char *buffer)
Definition bslx_marshallingutil.h:1408
static void getArrayUint32(unsigned int *variables, const char *buffer, int numVariables)
static void getFloat64(double *variable, const char *buffer)
Definition bslx_marshallingutil.h:1482
static void getArrayInt64(bsls::Types::Int64 *variables, const char *buffer, int numVariables)
static void getUint48(bsls::Types::Uint64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1245
static void getInt24(int *variable, const char *buffer)
Definition bslx_marshallingutil.h:1366
static void getArrayInt40(bsls::Types::Int64 *variables, const char *buffer, int numVariables)
static void getArrayInt16(short *variables, const char *buffer, int numVariables)
static void getUint40(bsls::Types::Uint64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1294
static void getInt48(bsls::Types::Int64 *variable, const char *buffer)
Definition bslx_marshallingutil.h:1220
static void getUint32(unsigned int *variable, const char *buffer)
Definition bslx_marshallingutil.h:1342
static void getArrayUint40(bsls::Types::Uint64 *variables, const char *buffer, int numVariables)
static void getInt8(char *variable, const char *buffer)
Definition bslx_marshallingutil.h:1453
static void getArrayUint24(unsigned int *variables, const char *buffer, int numVariables)