#include <bslx_byteoutstream.h>
|
| ByteOutStream (int versionSelector, bslma::Allocator *basicAllocator=0) |
|
| ByteOutStream (int versionSelector, bsl::size_t initialCapacity, bslma::Allocator *basicAllocator=0) |
|
| ~ByteOutStream () |
| Destroy this object.
|
|
void | invalidate () |
|
ByteOutStream & | putLength (int length) |
|
ByteOutStream & | putVersion (int version) |
|
void | reserveCapacity (bsl::size_t newCapacity) |
|
void | reset () |
|
ByteOutStream & | putInt64 (bsls::Types::Int64 value) |
|
ByteOutStream & | putUint64 (bsls::Types::Uint64 value) |
|
ByteOutStream & | putInt56 (bsls::Types::Int64 value) |
|
ByteOutStream & | putUint56 (bsls::Types::Uint64 value) |
|
ByteOutStream & | putInt48 (bsls::Types::Int64 value) |
|
ByteOutStream & | putUint48 (bsls::Types::Uint64 value) |
|
ByteOutStream & | putInt40 (bsls::Types::Int64 value) |
|
ByteOutStream & | putUint40 (bsls::Types::Uint64 value) |
|
ByteOutStream & | putInt32 (int value) |
|
ByteOutStream & | putUint32 (unsigned int value) |
|
ByteOutStream & | putInt24 (int value) |
|
ByteOutStream & | putUint24 (unsigned int value) |
|
ByteOutStream & | putInt16 (int value) |
|
ByteOutStream & | putUint16 (unsigned int value) |
|
ByteOutStream & | putInt8 (int value) |
|
ByteOutStream & | putUint8 (unsigned int value) |
|
ByteOutStream & | putFloat64 (double value) |
|
ByteOutStream & | putFloat32 (float value) |
|
ByteOutStream & | putString (const bsl::string &value) |
|
ByteOutStream & | putArrayInt64 (const bsls::Types::Int64 *values, int numValues) |
|
ByteOutStream & | putArrayUint64 (const bsls::Types::Uint64 *values, int numValues) |
|
ByteOutStream & | putArrayInt56 (const bsls::Types::Int64 *values, int numValues) |
|
ByteOutStream & | putArrayUint56 (const bsls::Types::Uint64 *values, int numValues) |
|
ByteOutStream & | putArrayInt48 (const bsls::Types::Int64 *values, int numValues) |
|
ByteOutStream & | putArrayUint48 (const bsls::Types::Uint64 *values, int numValues) |
|
ByteOutStream & | putArrayInt40 (const bsls::Types::Int64 *values, int numValues) |
|
ByteOutStream & | putArrayUint40 (const bsls::Types::Uint64 *values, int numValues) |
|
ByteOutStream & | putArrayInt32 (const int *values, int numValues) |
|
ByteOutStream & | putArrayUint32 (const unsigned int *values, int numValues) |
|
ByteOutStream & | putArrayInt24 (const int *values, int numValues) |
|
ByteOutStream & | putArrayUint24 (const unsigned int *values, int numValues) |
|
ByteOutStream & | putArrayInt16 (const short *values, int numValues) |
|
ByteOutStream & | putArrayUint16 (const unsigned short *values, int numValues) |
|
ByteOutStream & | putArrayInt8 (const char *values, int numValues) |
|
ByteOutStream & | putArrayInt8 (const signed char *values, int numValues) |
|
ByteOutStream & | putArrayUint8 (const char *values, int numValues) |
|
ByteOutStream & | putArrayUint8 (const unsigned char *values, int numValues) |
|
ByteOutStream & | putArrayFloat64 (const double *values, int numValues) |
|
ByteOutStream & | putArrayFloat32 (const float *values, int numValues) |
|
| operator const void * () const |
|
int | bdexVersionSelector () const |
|
const char * | data () const |
|
bool | isValid () const |
|
bsl::size_t | length () const |
| Return the number of bytes in this stream.
|
|
This class provides output methods to externalize values, and C-style arrays of values, of the fundamental integral and floating-point types, as well as bsl::string
values. In particular, each put
method of this class is guaranteed to write stream data that can be read by the corresponding get
method of bslx::ByteInStream
. See the bslx
package-level documentation for the definition of the BDEX OutStream
protocol.
See bslx_byteoutstream
◆ ByteOutStream() [1/2]
bslx::ByteOutStream::ByteOutStream |
( |
int |
versionSelector, |
|
|
bslma::Allocator * |
basicAllocator = 0 |
|
) |
| |
|
inlineexplicit |
Create an empty output byte stream that will use the specified (compile-time-defined) versionSelector
as needed (see {Versioning}). Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used. Note that the versionSelector
is expected to be formatted as "YYYYMMDD", a date representation.
◆ ByteOutStream() [2/2]
bslx::ByteOutStream::ByteOutStream |
( |
int |
versionSelector, |
|
|
bsl::size_t |
initialCapacity, |
|
|
bslma::Allocator * |
basicAllocator = 0 |
|
) |
| |
|
inline |
Create an empty output byte stream having an initial buffer capacity of at least the specified initialCapacity
(in bytes) and that will use the specified (compile-time-defined) versionSelector
as needed (see {Versioning}). Optionally specify a basicAllocator
used to supply memory. If basicAllocator
is 0, the currently installed default allocator is used. Note that the versionSelector
is expected to be formatted as "YYYYMMDD", a date representation.
◆ ~ByteOutStream()
bslx::ByteOutStream::~ByteOutStream |
( |
| ) |
|
|
inline |
◆ bdexVersionSelector()
int bslx::ByteOutStream::bdexVersionSelector |
( |
| ) |
const |
|
inline |
Return the versionSelector
to be used with operator<<
for BDEX streaming as per the bslx
package-level documentation.
◆ data()
const char * bslx::ByteOutStream::data |
( |
| ) |
const |
|
inline |
Return the address of the contiguous, non-modifiable internal memory buffer of this stream. The address will remain valid as long as this stream is not destroyed or modified. The behavior of accessing elements outside the range [ data() .. data() + (length() - 1) ]
is undefined.
◆ invalidate()
void bslx::ByteOutStream::invalidate |
( |
| ) |
|
|
inline |
Put this output stream in an invalid state. This function has no effect if this stream is already invalid.
◆ isValid()
bool bslx::ByteOutStream::isValid |
( |
| ) |
const |
|
inline |
Return true
if this stream is valid, and false
otherwise. An invalid stream is a stream for which an output operation was detected to have failed or invalidate
was called.
◆ length()
bsl::size_t bslx::ByteOutStream::length |
( |
| ) |
const |
|
inline |
◆ operator const void *()
bslx::ByteOutStream::operator const void * |
( |
| ) |
const |
|
inline |
Return a non-zero value if this stream is valid, and 0 otherwise. An invalid stream is a stream for which an output operation was detected to have failed or invalidate
was called.
◆ putArrayFloat32()
ByteOutStream & bslx::ByteOutStream::putArrayFloat32 |
( |
const float * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive four-byte IEEE single-precision floating-point numbers (in network byte order) comprised of the most-significant four bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents. Note that for non-conforming platforms, this operation may be lossy.
◆ putArrayFloat64()
ByteOutStream & bslx::ByteOutStream::putArrayFloat64 |
( |
const double * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive eight-byte IEEE double-precision floating-point numbers (in network byte order) comprised of the most-significant eight bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents. Note that for non-conforming platforms, this operation may be lossy.
◆ putArrayInt16()
ByteOutStream & bslx::ByteOutStream::putArrayInt16 |
( |
const short * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive two-byte, two's complement integers (in network byte order) comprised of the least-significant two bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt24()
ByteOutStream & bslx::ByteOutStream::putArrayInt24 |
( |
const int * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive three-byte, two's complement integers (in network byte order) comprised of the least-significant three bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt32()
ByteOutStream & bslx::ByteOutStream::putArrayInt32 |
( |
const int * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive four-byte, two's complement integers (in network byte order) comprised of the least-significant four bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt40()
Write to this stream the consecutive five-byte, two's complement integers (in network byte order) comprised of the least-significant five bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt48()
Write to this stream the consecutive six-byte, two's complement integers (in network byte order) comprised of the least-significant six bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt56()
Write to this stream the consecutive seven-byte, two's complement integers (in network byte order) comprised of the least-significant seven bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt64()
Write to this stream the consecutive eight-byte, two's complement integers (in network byte order) comprised of the least-significant eight bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt8() [1/2]
ByteOutStream & bslx::ByteOutStream::putArrayInt8 |
( |
const char * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive one-byte, two's complement integers comprised of the least-significant one byte of each of the specified numValues
leading entries in the specified values
, and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayInt8() [2/2]
ByteOutStream & bslx::ByteOutStream::putArrayInt8 |
( |
const signed char * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
◆ putArrayUint16()
ByteOutStream & bslx::ByteOutStream::putArrayUint16 |
( |
const unsigned short * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive two-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant two bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint24()
ByteOutStream & bslx::ByteOutStream::putArrayUint24 |
( |
const unsigned int * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive three-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant three bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint32()
ByteOutStream & bslx::ByteOutStream::putArrayUint32 |
( |
const unsigned int * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive four-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant four bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint40()
Write to this stream the consecutive five-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant five bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint48()
Write to this stream the consecutive six-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant six bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint56()
Write to this stream the consecutive seven-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant seven bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint64()
Write to this stream the consecutive eight-byte, two's complement unsigned integers (in network byte order) comprised of the least-significant eight bytes of each of the specified numValues
leading entries in the specified values
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint8() [1/2]
ByteOutStream & bslx::ByteOutStream::putArrayUint8 |
( |
const char * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
Write to this stream the consecutive one-byte, two's complement unsigned integers comprised of the least-significant one byte of each of the specified numValues
leading entries in the specified values
, and return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= numValues
and values
has sufficient contents.
◆ putArrayUint8() [2/2]
ByteOutStream & bslx::ByteOutStream::putArrayUint8 |
( |
const unsigned char * |
values, |
|
|
int |
numValues |
|
) |
| |
|
inline |
◆ putFloat32()
Write to this stream the four-byte IEEE single-precision floating-point number (in network byte order) comprised of the most-significant four bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. Note that for non-conforming platforms, this operation may be lossy.
◆ putFloat64()
Write to this stream the eight-byte IEEE double-precision floating-point number (in network byte order) comprised of the most-significant eight bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect. Note that for non-conforming platforms, this operation may be lossy.
◆ putInt16()
Write to this stream the two-byte, two's complement integer (in network byte order) comprised of the least-significant two bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt24()
Write to this stream the three-byte, two's complement integer (in network byte order) comprised of the least-significant three bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt32()
Write to this stream the four-byte, two's complement integer (in network byte order) comprised of the least-significant four bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt40()
Write to this stream the five-byte, two's complement integer (in network byte order) comprised of the least-significant five bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt48()
Write to this stream the six-byte, two's complement integer (in network byte order) comprised of the least-significant six bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt56()
Write to this stream the seven-byte, two's complement integer (in network byte order) comprised of the least-significant seven bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt64()
Write to this stream the eight-byte, two's complement integer (in network byte order) comprised of the least-significant eight bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putInt8()
Write to this stream the one-byte, two's complement integer comprised of the least-significant one byte of the specified value
, and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putLength()
If the specified length
is less than 128, write to this stream the one-byte integer comprised of the least-significant one byte of the length
; otherwise, write to this stream the four-byte, two's complement integer (in network byte order) comprised of the least-significant four bytes of the length
(in host byte order) with the most-significant bit set. Return a reference to this stream. If this stream is initially invalid, this operation has no effect. The behavior is undefined unless 0 <= length
.
◆ putString()
Write to this stream the length of the specified value
(see putLength
) and an array of one-byte, two's complement unsigned integers comprised of the least-significant one byte of each character in the value
, and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint16()
ByteOutStream & bslx::ByteOutStream::putUint16 |
( |
unsigned int |
value | ) |
|
|
inline |
Write to this stream the two-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant two bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint24()
ByteOutStream & bslx::ByteOutStream::putUint24 |
( |
unsigned int |
value | ) |
|
|
inline |
Write to this stream the three-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant three bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint32()
ByteOutStream & bslx::ByteOutStream::putUint32 |
( |
unsigned int |
value | ) |
|
|
inline |
Write to this stream the four-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant four bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint40()
Write to this stream the five-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant five bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint48()
Write to this stream the six-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant six bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint56()
Write to this stream the seven-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant seven bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint64()
Write to this stream the eight-byte, two's complement unsigned integer (in network byte order) comprised of the least-significant eight bytes of the specified value
(in host byte order), and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putUint8()
ByteOutStream & bslx::ByteOutStream::putUint8 |
( |
unsigned int |
value | ) |
|
|
inline |
Write to this stream the one-byte, two's complement unsigned integer comprised of the least-significant one byte of the specified value
, and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ putVersion()
Write to this stream the one-byte, two's complement unsigned integer comprised of the least-significant one byte of the specified version
, and return a reference to this stream. If this stream is initially invalid, this operation has no effect.
◆ reserveCapacity()
void bslx::ByteOutStream::reserveCapacity |
( |
bsl::size_t |
newCapacity | ) |
|
|
inline |
Set the internal buffer size of this stream to be at least the specified newCapacity
(in bytes).
◆ reset()
void bslx::ByteOutStream::reset |
( |
| ) |
|
|
inline |
Remove all content in this stream and validate this stream if it is currently invalid.
◆ operator<<
bsl::ostream & operator<< |
( |
bsl::ostream & |
, |
|
|
const ByteOutStream & |
|
|
) |
| |
|
friend |
Write the specified object
to the specified output stream
in some reasonable (multi-line) format, and return a reference to stream
.
The documentation for this class was generated from the following file: