#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: