#include <bslx_byteoutstream.h>
List of all members.
Public Member Functions |
| ByteOutStream (int versionSelector, bslma::Allocator *basicAllocator=0) |
| ByteOutStream (int versionSelector, bsl::size_t initialCapacity, bslma::Allocator *basicAllocator=0) |
| ~ByteOutStream () |
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 |
Friends |
bsl::ostream & | operator<< (bsl::ostream &, const ByteOutStream &) |
Detailed Description
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 Component bslx_byteoutstream
Constructor & Destructor Documentation
bslx::ByteOutStream::ByteOutStream |
( |
int |
versionSelector, |
|
|
bslma::Allocator * |
basicAllocator = 0 | |
|
) |
| | [explicit] |
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.
bslx::ByteOutStream::ByteOutStream |
( |
int |
versionSelector, |
|
|
bsl::size_t |
initialCapacity, |
|
|
bslma::Allocator * |
basicAllocator = 0 | |
|
) |
| | |
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.
bslx::ByteOutStream::~ByteOutStream |
( |
|
) |
|
Member Function Documentation
void bslx::ByteOutStream::invalidate |
( |
|
) |
|
Put this output stream in an invalid state. This function has no effect if this stream is already invalid.
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
.
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.
void bslx::ByteOutStream::reserveCapacity |
( |
bsl::size_t |
newCapacity |
) |
|
Set the internal buffer size of this stream to be at least the specified newCapacity
(in bytes).
void bslx::ByteOutStream::reset |
( |
|
) |
|
Remove all content in this stream and validate this stream if it is currently invalid.
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.
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.
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.
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.
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.
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.
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.
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.
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.
ByteOutStream& bslx::ByteOutStream::putUint32 |
( |
unsigned int |
value |
) |
|
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.
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.
ByteOutStream& bslx::ByteOutStream::putUint24 |
( |
unsigned int |
value |
) |
|
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.
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.
ByteOutStream& bslx::ByteOutStream::putUint16 |
( |
unsigned int |
value |
) |
|
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.
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.
ByteOutStream& bslx::ByteOutStream::putUint8 |
( |
unsigned int |
value |
) |
|
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
ByteOutStream& bslx::ByteOutStream::putArrayInt32 |
( |
const int * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayUint32 |
( |
const unsigned int * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayInt24 |
( |
const int * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayUint24 |
( |
const unsigned int * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayInt16 |
( |
const short * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayUint16 |
( |
const unsigned short * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayInt8 |
( |
const char * |
values, |
|
|
int |
numValues | |
|
) |
| | |
ByteOutStream& bslx::ByteOutStream::putArrayInt8 |
( |
const signed char * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayUint8 |
( |
const char * |
values, |
|
|
int |
numValues | |
|
) |
| | |
ByteOutStream& bslx::ByteOutStream::putArrayUint8 |
( |
const unsigned char * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayFloat64 |
( |
const double * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
ByteOutStream& bslx::ByteOutStream::putArrayFloat32 |
( |
const float * |
values, |
|
|
int |
numValues | |
|
) |
| | |
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.
bslx::ByteOutStream::operator const void * |
( |
|
) |
const |
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.
int bslx::ByteOutStream::bdexVersionSelector |
( |
|
) |
const |
Return the versionSelector
to be used with operator<<
for BDEX streaming as per the bslx
package-level documentation.
const char* bslx::ByteOutStream::data |
( |
|
) |
const |
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.
bool bslx::ByteOutStream::isValid |
( |
|
) |
const |
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.
bsl::size_t bslx::ByteOutStream::length |
( |
|
) |
const |
Return the number of bytes in this stream.
Friends And Related Function Documentation
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: