BDE 4.14.0 Production release
|
#include <bdlb_bigendian.h>
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION (BigEndianUint32, bsl::is_trivially_copyable) | |
BSLMF_NESTED_TRAIT_DECLARATION (BigEndianUint32, bdlb::HasPrintMethod) | |
BigEndianUint32 ()=default | |
BigEndianUint32 (const BigEndianUint32 &other)=default | |
~BigEndianUint32 ()=default | |
BigEndianUint32 & | operator= (const BigEndianUint32 &other)=default |
BigEndianUint32 & | operator= (unsigned int value) |
template<class STREAM > | |
STREAM & | bdexStreamIn (STREAM &stream, int version) |
operator unsigned int () const | |
bsl::ostream & | print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const |
template<class STREAM > | |
STREAM & | bdexStreamOut (STREAM &stream, int version) const |
Static Public Member Functions | |
static BigEndianUint32 | make (unsigned int value) |
static int | maxSupportedBdexVersion () |
static int | maxSupportedBdexVersion (int versionSelector) |
Friends | |
bool | operator== (const BigEndianUint32 &lhs, const BigEndianUint32 &rhs) |
bool | operator!= (const BigEndianUint32 &lhs, const BigEndianUint32 &rhs) |
This class provides a container for an in-core representation of an unsigned 32-bit big-endian integer. It supports a complete set of value semantic operations, including copy construction, assignment, equality comparison, bsl::ostream
printing, and BDEX serialization. Note that the copy constructor and copy-assignment operator are provided by the compiler. Any object of this class can be converted to an unsigned int
allowing comparison with any other object of this class. This class is exception neutral with no guarantee of rollback: if an exception is thrown during the invocation of a method on a pre-existing object, the object is left in a valid state, but its value is undefined. In no event is memory leaked. Finally, aliasing (e.g., using all or part of an object as both source and destination) is supported in all cases.
See bdlb_bigendian
|
default |
|
default |
|
default |
STREAM & bdlb::BigEndianUint32::bdexStreamIn | ( | STREAM & | stream, |
int | version | ||
) |
Assign to this object the value read from the specified input stream
using the specified version
format, and return a reference to stream
. If stream
is initially invalid, this operation has no effect. If version
is not supported, this object is unaltered and stream
is invalidated but otherwise unmodified. If version
is supported but stream
becomes invalid during this operation, this object has an undefined, but valid, state. Note that no version is read from stream
. See the bslx
package-level documentation for more information on BDEX streaming of value-semantic types and containers.
STREAM & bdlb::BigEndianUint32::bdexStreamOut | ( | STREAM & | stream, |
int | version | ||
) | const |
Write this value to the specified output stream
using the specified version
format, and return a reference to stream
. If stream
is initially invalid, this operation has no effect. If version
is not supported, stream
is invalidated but otherwise unmodified. Note that version
is not written to stream
. See the bslx
package-level documentation for more information on BDEX streaming of value-semantic types and containers.
bdlb::BigEndianUint32::BSLMF_NESTED_TRAIT_DECLARATION | ( | BigEndianUint32 | , |
bdlb::HasPrintMethod | |||
) |
bdlb::BigEndianUint32::BSLMF_NESTED_TRAIT_DECLARATION | ( | BigEndianUint32 | , |
bsl::is_trivially_copyable | |||
) |
|
inlinestatic |
Create and initialize a BigEndianUint32
object that stores the specified value
as a unsigned 32-bit big-endian integer.
|
inlinestatic |
Return the most current BDEX streaming version number supported by this class. See the bslx
package-level documentation for more information on BDEX streaming of value-semantic types and containers.
|
inlinestatic |
Return the maximum valid BDEX format version, as indicated by the specified versionSelector
, to be passed to the bdexStreamOut
method. Note that the versionSelector
is expected to be formatted as yyyymmdd
, a date representation. See the bslx
package-level documentation for more information on BDEX streaming of value-semantic types and containers.
|
default |
|
inline |
Store in this object the specified value
as an unsigned 32-bit big-endian integer, and return a reference to this modifiable object.
bsl::ostream & bdlb::BigEndianUint32::print | ( | bsl::ostream & | stream, |
int | level = 0 , |
||
int | spacesPerLevel = 4 |
||
) | const |
Format this object to the specified output stream
at the (absolute value of) the optionally specified indentation level
and return a reference to stream
. If level
is specified, optionally specify spacesPerLevel
, the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level
). If stream
is not valid on entry, this operation has no effect.
|
friend |
Return true
if the specified lhs
and rhs
BigEndianUint32
objects do not have the same value, and false
otherwise. Two BigEndianUint32
objects do not have the same value if and only if the respective integral network byte-order values that they represent do not have the same value.
|
friend |
Return true
if the specified lhs
and rhs
BigEndianUint32
objects have the same value, and false
otherwise. Two BigEndianUint32
objects have the same value if and only if the respective integral network byte-order values that they represent have the same value.