Quick Links:

bal | bbl | bdl | bsl

Public Member Functions

bslx::GenericOutStream< STREAMBUF > Class Template Reference

#include <bslx_genericoutstream.h>

List of all members.

Public Member Functions

 GenericOutStream (STREAMBUF *streamBuf, int versionSelector)
 ~GenericOutStream ()
GenericOutStreamflush ()
void invalidate ()
GenericOutStreamputLength (int length)
GenericOutStreamputVersion (int version)
GenericOutStreamputInt64 (bsls::Types::Int64 value)
GenericOutStreamputUint64 (bsls::Types::Uint64 value)
GenericOutStreamputInt56 (bsls::Types::Int64 value)
GenericOutStreamputUint56 (bsls::Types::Uint64 value)
GenericOutStreamputInt48 (bsls::Types::Int64 value)
GenericOutStreamputUint48 (bsls::Types::Uint64 value)
GenericOutStreamputInt40 (bsls::Types::Int64 value)
GenericOutStreamputUint40 (bsls::Types::Uint64 value)
GenericOutStreamputInt32 (int value)
GenericOutStreamputUint32 (unsigned int value)
GenericOutStreamputInt24 (int value)
GenericOutStreamputUint24 (unsigned int value)
GenericOutStreamputInt16 (int value)
GenericOutStreamputUint16 (unsigned int value)
GenericOutStreamputInt8 (int value)
GenericOutStreamputUint8 (unsigned int value)
GenericOutStreamputFloat64 (double value)
GenericOutStreamputFloat32 (float value)
GenericOutStreamputString (const bsl::string &value)
GenericOutStreamputArrayInt64 (const bsls::Types::Int64 *values, int numValues)
GenericOutStreamputArrayUint64 (const bsls::Types::Uint64 *values, int numValues)
GenericOutStreamputArrayInt56 (const bsls::Types::Int64 *values, int numValues)
GenericOutStreamputArrayUint56 (const bsls::Types::Uint64 *values, int numValues)
GenericOutStreamputArrayInt48 (const bsls::Types::Int64 *values, int numValues)
GenericOutStreamputArrayUint48 (const bsls::Types::Uint64 *values, int numValues)
GenericOutStreamputArrayInt40 (const bsls::Types::Int64 *values, int numValues)
GenericOutStreamputArrayUint40 (const bsls::Types::Uint64 *values, int numValues)
GenericOutStreamputArrayInt32 (const int *values, int numValues)
GenericOutStreamputArrayUint32 (const unsigned int *values, int numValues)
GenericOutStreamputArrayInt24 (const int *values, int numValues)
GenericOutStreamputArrayUint24 (const unsigned int *values, int numValues)
GenericOutStreamputArrayInt16 (const short *values, int numValues)
GenericOutStreamputArrayUint16 (const unsigned short *values, int numValues)
GenericOutStreamputArrayInt8 (const char *values, int numValues)
GenericOutStreamputArrayInt8 (const signed char *values, int numValues)
GenericOutStreamputArrayUint8 (const char *values, int numValues)
GenericOutStreamputArrayUint8 (const unsigned char *values, int numValues)
GenericOutStreamputArrayFloat64 (const double *values, int numValues)
GenericOutStreamputArrayFloat32 (const float *values, int numValues)
 operator const void * () const
int bdexVersionSelector () const
bool isValid () const

Detailed Description

template<class STREAMBUF>
class bslx::GenericOutStream< STREAMBUF >

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::GenericInStream. See the bslx package-level documentation for the definition of the BDEX OutStream protocol.

See Component bslx_genericoutstream


Constructor & Destructor Documentation

template<class STREAMBUF>
bslx::GenericOutStream< STREAMBUF >::GenericOutStream ( STREAMBUF *  streamBuf,
int  versionSelector 
)

Create an output byte stream that writes its output to the specified streamBuf and uses the specified (compile-time-defined) versionSelector as needed (see Versioning). Note that the versionSelector is expected to be formatted as "YYYYMMDD", a date representation.

template<class STREAMBUF>
bslx::GenericOutStream< STREAMBUF >::~GenericOutStream (  ) 

Destroy this object.


Member Function Documentation

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::flush (  ) 

If this stream is valid, invoke the pubsync method on the underlying stream supplied at construction of this object; otherwise, this function has no effect.

template<class STREAMBUF>
void bslx::GenericOutStream< STREAMBUF >::invalidate (  ) 

Put this output stream in an invalid state. This function has no effect if this stream is already invalid.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putLength ( int  length  ) 

If the specified length is less than 128, write to the stream supplied at construction the one-byte integer comprised of the least-significant one byte of the length; otherwise, write to the 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putVersion ( int  version  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt64 ( bsls::Types::Int64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint64 ( bsls::Types::Uint64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt56 ( bsls::Types::Int64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint56 ( bsls::Types::Uint64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt48 ( bsls::Types::Int64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint48 ( bsls::Types::Uint64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt40 ( bsls::Types::Int64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint40 ( bsls::Types::Uint64  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt32 ( int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint32 ( unsigned int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt24 ( int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint24 ( unsigned int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt16 ( int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint16 ( unsigned int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putInt8 ( int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putUint8 ( unsigned int  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putFloat64 ( double  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putFloat32 ( float  value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putString ( const bsl::string value  ) 

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt64 ( const bsls::Types::Int64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint64 ( const bsls::Types::Uint64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt56 ( const bsls::Types::Int64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint56 ( const bsls::Types::Uint64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt48 ( const bsls::Types::Int64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint48 ( const bsls::Types::Uint64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt40 ( const bsls::Types::Int64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint40 ( const bsls::Types::Uint64 values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt32 ( const int *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint32 ( const unsigned int *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt24 ( const int *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint24 ( const unsigned int *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt16 ( const short *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint16 ( const unsigned short *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt8 ( const char *  values,
int  numValues 
)
template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayInt8 ( const signed char *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint8 ( const char *  values,
int  numValues 
)
template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayUint8 ( const unsigned char *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayFloat64 ( const double *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
GenericOutStream& bslx::GenericOutStream< STREAMBUF >::putArrayFloat32 ( const float *  values,
int  numValues 
)

Write to the stream supplied at construction 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.

template<class STREAMBUF>
bslx::GenericOutStream< STREAMBUF >::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.

template<class STREAMBUF>
int bslx::GenericOutStream< STREAMBUF >::bdexVersionSelector (  )  const

Return the versionSelector to be used with operator<< for BDEX streaming as per the bslx package-level documentation.

template<class STREAMBUF>
bool bslx::GenericOutStream< STREAMBUF >::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.


The documentation for this class was generated from the following file: