Ice 3.8
C++ API Reference
Loading...
Searching...
No Matches
Ice::OutputStream Class Reference

Represents a byte buffer used for marshaling data using the Slice encoding. More...

#include <Ice/Ice.h>

Inheritance diagram for Ice::OutputStream:

Public Types

using size_type = std::size_t
 The size type for this byte buffer.

Public Member Functions

 OutputStream (const CommunicatorPtr &communicator)
 Constructs an OutputStream using the encoding, format, string converter and wstring converter provided by the communicator.
 OutputStream (const CommunicatorPtr &communicator, EncodingVersion encoding)
 Constructs an OutputStream using the format, string converter and wstring converter provided by the communicator, and the specified encoding.
 OutputStream (EncodingVersion encoding=currentEncoding, FormatType format=FormatType::CompactFormat, StringConverterPtr stringConverter=nullptr, WstringConverterPtr wstringConverter=nullptr)
 Constructs an OutputStream.
 OutputStream (OutputStream &&other) noexcept
 Move constructor.
 OutputStream (std::pair< const std::byte *, const std::byte * > bytes, EncodingVersion encoding=currentEncoding, FormatType format=FormatType::CompactFormat, StringConverterPtr stringConverter=nullptr, WstringConverterPtr wstringConverter=nullptr)
 Constructs an OutputStream over an application-supplied buffer.
void clear ()
 Releases any data retained by encapsulations.
void endEncapsulation ()
 Ends the current encapsulation.
void endException ()
 Marks the end of an exception instance.
void endSize (size_type position)
 Updates the size value at the given position.
void endSlice ()
 Marks the end of a class instance or exception slice.
void endValue ()
 Marks the end of a class instance.
std::pair< const std::byte *, const std::byte * > finished ()
 Indicates that marshaling is complete.
void finished (std::vector< std::byte > &v)
 Indicates that marshaling is complete.
const EncodingVersiongetEncoding () const
 Gets the current encoding version.
OutputStreamoperator= (OutputStream &&other) noexcept
 Move assignment operator.
size_type pos ()
 Gets the current position of the stream.
void resize (Container::size_type sz)
 Resizes the stream to a new size.
void rewrite (std::int32_t v, size_type pos)
 Overwrites a 32-bit integer value at the specified position in the stream.
void rewriteSize (std::int32_t v, Container::iterator dest)
 Replaces a size value at the specified position in the stream.
void startEncapsulation ()
 Writes the start of an encapsulation using the default encoding version and class encoding format.
void startEncapsulation (const EncodingVersion &encoding, std::optional< FormatType > format)
 Writes the start of an encapsulation using the specified encoding version and class encoding format.
void startException ()
 Marks the start of an exception instance.
size_type startSize ()
 Writes a placeholder value for the size and returns the starting position of the size value; after writing the data, call endSize to patch the placeholder with the actual size at the given position.
void startSlice (std::string_view typeId, int compactId, bool last)
 Writes the start of a class instance or exception slice.
void startValue (const SlicedDataPtr &data)
 Marks the start of a class instance.
void swap (OutputStream &other) noexcept
 Swaps the contents of one stream with another.
void write (const bool *begin, const bool *end)
 Writes a boolean sequence to the stream.
void write (const char *vdata, bool convert=true)
 Writes a string to the stream.
void write (const char *vdata, size_t vsize, bool convert=true)
 Writes a string to the stream.
void write (const double *begin, const double *end)
 Writes a double sequence as a Slice double sequence.
void write (const float *begin, const float *end)
 Writes a float sequence as a Slice float sequence.
void write (const std::byte *start, const std::byte *end)
 Writes a byte sequence to the stream.
void write (const std::int16_t *begin, const std::int16_t *end)
 Writes an int16_t sequence as a Slice short sequence.
void write (const std::int32_t *begin, const std::int32_t *end)
 Writes an int sequence to the stream.
void write (const std::int64_t *begin, const std::int64_t *end)
 Writes a long sequence to the stream.
void write (const std::string &v, bool convert=true)
 Writes a string to the stream.
void write (const std::string *begin, const std::string *end, bool convert=true)
 Writes a string sequence to the stream.
void write (const std::uint8_t *start, const std::uint8_t *end)
 Writes a byte sequence to the stream.
void write (const std::wstring *begin, const std::wstring *end)
 Writes a wide string sequence to the stream.
template<typename T>
void write (const T &v)
 Writes a value to the stream.
template<typename T>
void write (std::int32_t tag, const std::optional< T > &v)
 Writes an optional value to the stream.
void write (std::int32_t v, Container::iterator dest)
 Overwrites a 32-bit integer value at the given position in the stream.
void write (std::string_view v, bool convert=true)
 Writes a string view to the stream.
template<typename T>
void writeAll (const T &v)
 Writes a value (single element list) to the stream.
template<typename T, typename... Te>
void writeAll (const T &v, const Te &... ve)
 Writes a list of values to the stream.
template<typename T>
void writeAll (std::initializer_list< std::int32_t > tags, const std::optional< T > &v)
 Writes an optional value (single element list) to the stream.
template<typename T, typename... Te>
void writeAll (std::initializer_list< std::int32_t > tags, const std::optional< T > &v, const std::optional< Te > &... ve)
 Writes a list of optional values to the stream.
template<size_t I = 0, typename... Te>
 writeAll (std::tuple< Te... > tuple)
 Writes a tuple to the stream.
void writeBlob (const std::byte *v, Container::size_type sz)
 Copies the specified blob of bytes to the stream without modification.
void writeBlob (const std::vector< std::byte > &v)
 Copies the specified blob of bytes to the stream without modification.
void writeEmptyEncapsulation (const EncodingVersion &encoding)
 Writes an empty encapsulation using the specified encoding version.
void writeEncapsulation (const std::byte *v, std::int32_t sz)
 Copies the marshaled form of an encapsulation to the buffer.
void writeEnum (std::int32_t v, std::int32_t maxValue)
 Writes an enumerator to the stream.
void writeException (const UserException &v)
 Writes a user exception to the stream.
void writeNullProxy ()
 Writes a null proxy to the stream.
bool writeOptional (std::int32_t tag, OptionalFormat format)
 Writes the tag and format of an optional value.
void writePendingValues ()
 Encodes the state of class instances whose insertion was delayed during a previous call write.
void writeProxy (const ObjectPrx &v)
 Writes a proxy to the stream.
void writeSize (std::int32_t v)
 Writes a size value.

Detailed Description

Represents a byte buffer used for marshaling data using the Slice encoding.

Definition at line 31 of file OutputStream.h.


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