Ice 3.7 C++11 API Reference
|
Interface for input streams used to extract Slice types from a sequence of bytes. More...
#include <Ice/Ice.h>
Public Types | |
typedef void(* | PatchFunc) (void *addr, const ValuePtr &v) |
Signature for a patch function, used to receive an unmarshaled value. More... | |
typedef size_t | size_type |
Public Member Functions | |
void | clear () |
Releases any data retained by encapsulations. More... | |
void | endEncapsulation () |
Ends the current encapsulation. More... | |
SlicedDataPtr | endException (bool preserve) |
Marks the end of a user exception. More... | |
void | endSlice () |
Indicates that the end of a value or exception slice has been reached. More... | |
SlicedDataPtr | endValue (bool preserve) |
Marks the end of a class instance. More... | |
void * | getClosure () const |
Obtains the closure data associated with this stream. More... | |
Int | getEncapsulationSize () |
Determines the size of the current encapsulation, excluding the encapsulation header. More... | |
const EncodingVersion & | getEncoding () const |
Determines the current encoding version. More... | |
void | initialize (const CommunicatorPtr &communicator) |
Initializes the stream to use the communicator's default encoding version. More... | |
void | initialize (const CommunicatorPtr &communicator, const EncodingVersion &version) |
Initializes the stream to use the given communicator and encoding version. More... | |
InputStream () | |
Constructs a stream using the latest encoding version but without a communicator. More... | |
InputStream (const CommunicatorPtr &communicator) | |
Constructs a stream using the communicator's default encoding version. More... | |
InputStream (const CommunicatorPtr &communicator, const EncodingVersion &version) | |
Constructs a stream using the given communicator and encoding version. More... | |
InputStream (const CommunicatorPtr &communicator, const EncodingVersion &version, const std::pair< const Byte *, const Byte * > &bytes) | |
Constructs a stream using the given communicator and encoding version. More... | |
InputStream (const CommunicatorPtr &communicator, const EncodingVersion &version, const std::vector< Byte > &bytes) | |
Constructs a stream using the given communicator and encoding version. More... | |
InputStream (const CommunicatorPtr &communicator, const std::pair< const Byte *, const Byte * > &bytes) | |
Constructs a stream using the communicator's default encoding version. More... | |
InputStream (const CommunicatorPtr &communicator, const std::vector< Byte > &bytes) | |
Constructs a stream using the communicator's default encoding version. More... | |
InputStream (const EncodingVersion &version) | |
Constructs a stream using the given encoding version but without a communicator. More... | |
InputStream (const EncodingVersion &version, const std::pair< const Byte *, const Byte * > &bytes) | |
Constructs a stream using the given encoding version but without a communicator. More... | |
InputStream (const EncodingVersion &version, const std::vector< Byte > &bytes) | |
Constructs a stream using the given encoding version but without a communicator. More... | |
InputStream (const std::pair< const Byte *, const Byte * > &bytes) | |
Constructs a stream using the latest encoding version but without a communicator. More... | |
InputStream (const std::vector< Byte > &bytes) | |
Constructs a stream using the latest encoding version but without a communicator. More... | |
size_type | pos () |
Obtains the current position of the stream. More... | |
void | pos (size_type p) |
Sets a new position for the stream. More... | |
template<typename T , typename ::std::enable_if<::std::is_base_of< ObjectPrx, T >::value >::type * = nullptr> | |
void | read (::std::shared_ptr< T > &v) |
Reads a typed proxy from the stream. More... | |
template<typename T , typename ::std::enable_if<::std::is_base_of< Value, T >::value >::type * = nullptr> | |
void | read (::std::shared_ptr< T > &v) |
Reads a value (instance of a Slice class) from the stream. More... | |
void | read (bool &v) |
Reads a bool from the stream. More... | |
void | read (Byte &v) |
Reads a byte from the stream. More... | |
void | read (const char *&vdata, size_t &vsize, bool convert=true) |
Reads a string from the stream. More... | |
void | read (Double &v) |
Reads a double from the stream. More... | |
void | read (Float &v) |
Reads a float from the stream. More... | |
void | read (Int &v) |
Reads an int from the stream. More... | |
template<typename T > | |
void | read (Int tag, IceUtil::Optional< T > &v) |
Reads an optional data value from the stream. More... | |
void | read (Long &v) |
Reads a long from the stream. More... | |
void | read (PatchFunc patchFunc, void *patchAddr) |
Reads a value (instance of a Slice class) from the stream. More... | |
void | read (Short &v) |
Reads a short from the stream. More... | |
void | read (std::pair< const bool *, const bool * > &v) |
Reads a sequence of boolean values from the stream. More... | |
void | read (std::pair< const Byte *, const Byte * > &v) |
Reads a sequence of bytes from the stream. More... | |
void | read (std::pair< const double *, const double * > &v) |
Reads a sequence of doubles from the stream. More... | |
void | read (std::pair< const float *, const float * > &v) |
Reads a sequence of floats from the stream. More... | |
void | read (std::pair< const int *, const int * > &v) |
Reads a sequence of ints from the stream. More... | |
void | read (std::pair< const long long *, const long long * > &v) |
Reads a sequence of longs from the stream. More... | |
void | read (std::pair< const short *, const short * > &v) |
Reads a sequence of boolean values from the stream. More... | |
template<typename T > | |
void | read (std::pair< const T *, const T * > &v) |
Extracts a sequence of data values from the stream. More... | |
void | read (std::string &v, bool convert=true) |
Reads a string from the stream. More... | |
void | read (std::vector< bool > &v) |
Reads a sequence of boolean values from the stream. More... | |
void | read (std::vector< Byte > &v) |
Reads a sequence of bytes from the stream. More... | |
void | read (std::vector< Double > &v) |
Reads a sequence of doubles from the stream. More... | |
void | read (std::vector< Float > &v) |
Reads a sequence of floats from the stream. More... | |
void | read (std::vector< Int > &v) |
Reads a sequence of ints from the stream. More... | |
void | read (std::vector< Long > &v) |
Reads a sequence of longs from the stream. More... | |
void | read (std::vector< Short > &v) |
Reads a sequence of shorts from the stream. More... | |
void | read (std::vector< std::string > &v, bool convert=true) |
Reads a sequence of strings from the stream. More... | |
void | read (std::vector< std::wstring > &v) |
Reads a sequence of wide strings from the stream. More... | |
void | read (std::wstring &v) |
Reads a wide string from the stream. More... | |
template<typename T > | |
void | read (T &v) |
Reads a data value from the stream. More... | |
template<typename T > | |
void | readAll (std::initializer_list< int > tags, IceUtil::Optional< T > &v) |
Reads a list of optional data values. More... | |
template<typename T , typename... Te> | |
void | readAll (std::initializer_list< int > tags, IceUtil::Optional< T > &v, IceUtil::Optional< Te > &... ve) |
Reads a list of optional data values. More... | |
template<typename T > | |
void | readAll (T &v) |
Reads a list of mandatory data values. More... | |
template<typename T , typename... Te> | |
void | readAll (T &v, Te &... ve) |
Reads a list of mandatory data values. More... | |
Int | readAndCheckSeqSize (int minSize) |
Reads and validates a sequence size. More... | |
void | readBlob (const Byte *&v, Container::size_type sz) |
Reads a blob of bytes from the stream. More... | |
void | readBlob (std::vector< Byte > &bytes, Int sz) |
Reads a blob of bytes from the stream. More... | |
EncodingVersion | readEncapsulation (const Byte *&v, Int &sz) |
Returns a blob of bytes representing an encapsulation. More... | |
Int | readEnum (Int maxValue) |
Reads an enumerator from the stream. More... | |
bool | readOptional (Int tag, OptionalFormat expectedFormat) |
Determine if an optional value is available for reading. More... | |
void | readPendingValues () |
Indicates that unmarshaling is complete, except for any class instances. More... | |
std::shared_ptr< ObjectPrx > | readProxy () |
Reads a proxy from the stream. More... | |
Int | readSize () |
Extracts a size from the stream. More... | |
void | resize (Container::size_type sz) |
Resizes the stream to a new size. More... | |
void | setClassGraphDepthMax (size_t n) |
Sets an upper limit on the depth of a class graph. More... | |
void * | setClosure (void *p) |
Associates closure data with this stream. More... | |
void | setCompactIdResolver (std::function< std::string(int)> r) |
Sets the compact ID resolver to use when unmarshaling value and exception instances. More... | |
void | setLogger (const LoggerPtr &logger) |
Sets the logger to use when logging trace messages. More... | |
void | setSliceValues (bool b) |
Indicates whether to slice instances of Slice classes to a known Slice type when a more derived type is unknown. More... | |
void | setTraceSlicing (bool b) |
Indicates whether to log messages when instances of Slice classes are sliced. More... | |
void | setValueFactoryManager (const ValueFactoryManagerPtr &vfm) |
Sets the value factory manager to use when unmarshaling value instances. More... | |
void | skip (size_type size) |
Advances the current stream position by the given number of bytes. More... | |
EncodingVersion | skipEmptyEncapsulation () |
Skips an empty encapsulation. More... | |
EncodingVersion | skipEncapsulation () |
Skips over an encapsulation. More... | |
void | skipOptional (OptionalFormat format) |
Skips one optional value with the given format. More... | |
void | skipOptionals () |
Skips all remaining optional values. More... | |
void | skipSize () |
Reads a size at the current position and skips that number of bytes. More... | |
void | skipSlice () |
Skips over a value or exception slice. More... | |
const EncodingVersion & | startEncapsulation () |
Reads the start of an encapsulation. More... | |
void | startException () |
Marks the start of a user exception. More... | |
std::string | startSlice () |
Reads the start of a value or exception slice. More... | |
void | startValue () |
Marks the start of a class instance. More... | |
void | swap (InputStream &other) |
Swaps the contents of one stream with another. More... | |
void | throwException (UserExceptionFactory factory=nullptr) |
Extracts a user exception from the stream and throws it. More... | |
~InputStream () | |
Interface for input streams used to extract Slice types from a sequence of bytes.
typedef void(* Ice::InputStream::PatchFunc) (void *addr, const ValuePtr &v) |
Signature for a patch function, used to receive an unmarshaled value.
addr | The target address. |
v | The unmarshaled value. |
typedef size_t Ice::InputStream::size_type |
Ice::InputStream::InputStream | ( | ) |
Constructs a stream using the latest encoding version but without a communicator.
This stream will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide Helpers for objects that are normally provided by a communicator. You can supply a communicator later by calling initialize().
Ice::InputStream::InputStream | ( | const std::vector< Byte > & | bytes | ) |
Constructs a stream using the latest encoding version but without a communicator.
This stream will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide Helpers for objects that are normally provided by a communicator. You can supply a communicator later by calling initialize().
bytes | The encoded data. |
Constructs a stream using the latest encoding version but without a communicator.
This stream will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide Helpers for objects that are normally provided by a communicator. You can supply a communicator later by calling initialize().
bytes | The encoded data. |
Ice::InputStream::InputStream | ( | const CommunicatorPtr & | communicator | ) |
Constructs a stream using the communicator's default encoding version.
communicator | The communicator to use for unmarshaling tasks. |
Ice::InputStream::InputStream | ( | const CommunicatorPtr & | communicator, |
const std::vector< Byte > & | bytes | ||
) |
Constructs a stream using the communicator's default encoding version.
communicator | The communicator to use for unmarshaling tasks. |
bytes | The encoded data. |
Ice::InputStream::InputStream | ( | const CommunicatorPtr & | communicator, |
const std::pair< const Byte *, const Byte * > & | bytes | ||
) |
Constructs a stream using the communicator's default encoding version.
communicator | The communicator to use for unmarshaling tasks. |
bytes | The encoded data. |
Ice::InputStream::InputStream | ( | const EncodingVersion & | version | ) |
Constructs a stream using the given encoding version but without a communicator.
This stream will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide Helpers for objects that are normally provided by a communicator. You can supply a communicator later by calling initialize().
version | The encoding version used to encode the data to be unmarshaled. |
Ice::InputStream::InputStream | ( | const EncodingVersion & | version, |
const std::vector< Byte > & | bytes | ||
) |
Constructs a stream using the given encoding version but without a communicator.
This stream will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide Helpers for objects that are normally provided by a communicator. You can supply a communicator later by calling initialize().
version | The encoding version used to encode the data to be unmarshaled. |
bytes | The encoded data. |
Ice::InputStream::InputStream | ( | const EncodingVersion & | version, |
const std::pair< const Byte *, const Byte * > & | bytes | ||
) |
Constructs a stream using the given encoding version but without a communicator.
This stream will not be able to unmarshal a proxy. For other unmarshaling tasks, you can provide Helpers for objects that are normally provided by a communicator. You can supply a communicator later by calling initialize().
version | The encoding version used to encode the data to be unmarshaled. |
bytes | The encoded data. |
Ice::InputStream::InputStream | ( | const CommunicatorPtr & | communicator, |
const EncodingVersion & | version | ||
) |
Constructs a stream using the given communicator and encoding version.
communicator | The communicator to use for unmarshaling tasks. |
version | The encoding version used to encode the data to be unmarshaled. |
Ice::InputStream::InputStream | ( | const CommunicatorPtr & | communicator, |
const EncodingVersion & | version, | ||
const std::vector< Byte > & | bytes | ||
) |
Constructs a stream using the given communicator and encoding version.
communicator | The communicator to use for unmarshaling tasks. |
version | The encoding version used to encode the data to be unmarshaled. |
bytes | The encoded data. |
Ice::InputStream::InputStream | ( | const CommunicatorPtr & | communicator, |
const EncodingVersion & | version, | ||
const std::pair< const Byte *, const Byte * > & | bytes | ||
) |
Constructs a stream using the given communicator and encoding version.
communicator | The communicator to use for unmarshaling tasks. |
version | The encoding version used to encode the data to be unmarshaled. |
bytes | The encoded data. |
|
inline |
void Ice::InputStream::clear | ( | ) |
Releases any data retained by encapsulations.
|
inline |
Ends the current encapsulation.
|
inline |
Marks the end of a user exception.
preserve | Pass true and the stream will preserve the unknown slices of the exception, or false to discard the unknown slices. |
|
inline |
Indicates that the end of a value or exception slice has been reached.
|
inline |
Marks the end of a class instance.
preserve | Pass true and the stream will preserve the unknown slices of the instance, or false to discard the unknown slices. |
void* Ice::InputStream::getClosure | ( | ) | const |
Obtains the closure data associated with this stream.
Int Ice::InputStream::getEncapsulationSize | ( | ) |
Determines the size of the current encapsulation, excluding the encapsulation header.
|
inline |
Determines the current encoding version.
void Ice::InputStream::initialize | ( | const CommunicatorPtr & | communicator | ) |
Initializes the stream to use the communicator's default encoding version.
Use initialize() if you originally constructed the stream without a communicator.
communicator | The communicator to use for unmarshaling tasks. |
void Ice::InputStream::initialize | ( | const CommunicatorPtr & | communicator, |
const EncodingVersion & | version | ||
) |
Initializes the stream to use the given communicator and encoding version.
Use initialize() if you originally constructed the stream without a communicator.
communicator | The communicator to use for unmarshaling tasks. |
version | The encoding version used to encode the data to be unmarshaled. |
|
inline |
Obtains the current position of the stream.
|
inline |
Sets a new position for the stream.
p | The new position. |
|
inline |
Reads a typed proxy from the stream.
v | The proxy as a user-defined type. |
|
inline |
Reads a value (instance of a Slice class) from the stream.
v | The instance. |
|
inline |
Reads a bool from the stream.
v | The extracted bool. |
|
inline |
Reads a byte from the stream.
v | The extracted byte. |
void Ice::InputStream::read | ( | const char *& | vdata, |
size_t & | vsize, | ||
bool | convert = true |
||
) |
Reads a string from the stream.
vdata | A pointer to the beginning of the string. |
vsize | The number of bytes in the string. |
convert | Determines whether the string is processed by the string converter, if one is installed. The default behavior is to convert strings. |
void Ice::InputStream::read | ( | Double & | v | ) |
Reads a double from the stream.
v | The extracted double. |
void Ice::InputStream::read | ( | Float & | v | ) |
Reads a float from the stream.
v | The extracted float. |
|
inline |
Reads an int from the stream.
v | The extracted int. |
|
inline |
Reads an optional data value from the stream.
tag | The tag ID. |
v | Holds the extracted data (if any). |
void Ice::InputStream::read | ( | Long & | v | ) |
Reads a long from the stream.
v | The extracted long. |
|
inline |
Reads a value (instance of a Slice class) from the stream.
patchFunc | The patch callback function. |
patchAddr | Closure data passed to the callback. |
void Ice::InputStream::read | ( | Short & | v | ) |
Reads a short from the stream.
v | The extracted short. |
void Ice::InputStream::read | ( | std::pair< const bool *, const bool * > & | v | ) |
Reads a sequence of boolean values from the stream.
v | A pair of pointers into the internal marshaling buffer representing the start and end of the sequence elements. |
Reads a sequence of bytes from the stream.
v | A pair of pointers into the internal marshaling buffer representing the start and end of the sequence elements. |
void Ice::InputStream::read | ( | std::pair< const double *, const double * > & | v | ) |
Reads a sequence of doubles from the stream.
v | A pair of pointers representing the start and end of the sequence elements. |
void Ice::InputStream::read | ( | std::pair< const float *, const float * > & | v | ) |
Reads a sequence of floats from the stream.
v | A pair of pointers representing the start and end of the sequence elements. |
void Ice::InputStream::read | ( | std::pair< const int *, const int * > & | v | ) |
Reads a sequence of ints from the stream.
v | A pair of pointers representing the start and end of the sequence elements. |
void Ice::InputStream::read | ( | std::pair< const long long *, const long long * > & | v | ) |
Reads a sequence of longs from the stream.
v | A pair of pointers representing the start and end of the sequence elements. |
void Ice::InputStream::read | ( | std::pair< const short *, const short * > & | v | ) |
Reads a sequence of boolean values from the stream.
v | A pair of pointers representing the start and end of the sequence elements. |
|
inline |
Extracts a sequence of data values from the stream.
v | A pair of pointers representing the beginning and end of the sequence elements. |
void Ice::InputStream::read | ( | std::string & | v, |
bool | convert = true |
||
) |
Reads a string from the stream.
v | The extracted string. |
convert | Determines whether the string is processed by the string converter, if one is installed. The default behavior is to convert strings. |
void Ice::InputStream::read | ( | std::vector< bool > & | v | ) |
Reads a sequence of boolean values from the stream.
v | A vector to hold a copy of the boolean values. |
void Ice::InputStream::read | ( | std::vector< Byte > & | v | ) |
Reads a sequence of bytes from the stream.
v | A vector to hold a copy of the bytes. |
void Ice::InputStream::read | ( | std::vector< Double > & | v | ) |
Reads a sequence of doubles from the stream.
v | A vector to hold a copy of the double values. |
void Ice::InputStream::read | ( | std::vector< Float > & | v | ) |
Reads a sequence of floats from the stream.
v | A vector to hold a copy of the float values. |
void Ice::InputStream::read | ( | std::vector< Int > & | v | ) |
Reads a sequence of ints from the stream.
v | A vector to hold a copy of the int values. |
void Ice::InputStream::read | ( | std::vector< Long > & | v | ) |
Reads a sequence of longs from the stream.
v | A vector to hold a copy of the long values. |
void Ice::InputStream::read | ( | std::vector< Short > & | v | ) |
Reads a sequence of shorts from the stream.
v | A vector to hold a copy of the short values. |
void Ice::InputStream::read | ( | std::vector< std::string > & | v, |
bool | convert = true |
||
) |
Reads a sequence of strings from the stream.
v | The extracted string sequence. |
convert | Determines whether strings are processed by the string converter, if one is installed. The default behavior is to convert the strings. |
void Ice::InputStream::read | ( | std::vector< std::wstring > & | v | ) |
Reads a sequence of wide strings from the stream.
v | The extracted sequence. |
void Ice::InputStream::read | ( | std::wstring & | v | ) |
Reads a wide string from the stream.
v | The extracted string. |
|
inline |
Reads a data value from the stream.
v | Holds the extracted data. |
|
inline |
Reads a list of optional data values.
|
inline |
Reads a list of optional data values.
|
inline |
Reads a list of mandatory data values.
|
inline |
Reads a list of mandatory data values.
Int Ice::InputStream::readAndCheckSeqSize | ( | int | minSize | ) |
Reads and validates a sequence size.
minSize | The minimum size required by the sequence type. |
|
inline |
Reads a blob of bytes from the stream.
v | A pointer into the internal marshaling buffer representing the start of the blob. |
sz | The number of bytes to read. |
Reads a blob of bytes from the stream.
bytes | The vector to hold a copy of the bytes from the marshaling buffer. |
sz | The number of bytes to read. |
|
inline |
Returns a blob of bytes representing an encapsulation.
v | A pointer into the internal marshaling buffer representing the start of the encoded encapsulation. |
sz | The number of bytes in the encapsulation. |
Reads an enumerator from the stream.
maxValue | The maximum enumerator value in the definition. |
|
inline |
Determine if an optional value is available for reading.
tag | The tag associated with the value. |
expectedFormat | The optional format for the value. |
void Ice::InputStream::readPendingValues | ( | ) |
Indicates that unmarshaling is complete, except for any class instances.
The application must call this method only if the stream actually contains class instances. Calling readPendingValues triggers the patch callbacks to inform the application that unmarshaling of an instance is complete.
std::shared_ptr<ObjectPrx> Ice::InputStream::readProxy | ( | ) |
Reads a proxy from the stream.
|
inline |
Extracts a size from the stream.
|
inline |
Resizes the stream to a new size.
sz | The new size. |
void Ice::InputStream::setClassGraphDepthMax | ( | size_t | n | ) |
Sets an upper limit on the depth of a class graph.
If this limit is exceeded during unmarshaling, the stream raises MarshalException.
n | The maximum depth. |
void* Ice::InputStream::setClosure | ( | void * | p | ) |
Associates closure data with this stream.
p | The data as a void pointer. |
void Ice::InputStream::setCompactIdResolver | ( | std::function< std::string(int)> | r | ) |
Sets the compact ID resolver to use when unmarshaling value and exception instances.
If the stream was initialized with a communicator, the communicator's resolver will be used by default.
r | The compact ID resolver. |
void Ice::InputStream::setLogger | ( | const LoggerPtr & | logger | ) |
Sets the logger to use when logging trace messages.
If the stream was initialized with a communicator, the communicator's logger will be used by default.
logger | The logger to use for logging trace messages. |
void Ice::InputStream::setSliceValues | ( | bool | b | ) |
Indicates whether to slice instances of Slice classes to a known Slice type when a more derived type is unknown.
An instance is "sliced" when no static information is available for a Slice type ID and no factory can be found for that type, resulting in the creation of an instance of a less-derived type. If slicing is disabled in this situation, the stream raises the exception NoValueFactoryException. The default behavior is to allow slicing.
b | True to enable slicing, false otherwise. |
void Ice::InputStream::setTraceSlicing | ( | bool | b | ) |
Indicates whether to log messages when instances of Slice classes are sliced.
If the stream is initialized with a communicator, this setting defaults to the value of the Ice.Trace.Slicing property, otherwise the setting defaults to false.
b | True to enable logging, false otherwise. |
void Ice::InputStream::setValueFactoryManager | ( | const ValueFactoryManagerPtr & | vfm | ) |
Sets the value factory manager to use when unmarshaling value instances.
If the stream was initialized with a communicator, the communicator's value factory manager will be used by default.
vfm | The value factory manager. |
|
inline |
Advances the current stream position by the given number of bytes.
size | The number of bytes to skip. |
|
inline |
Skips an empty encapsulation.
EncodingVersion Ice::InputStream::skipEncapsulation | ( | ) |
Skips over an encapsulation.
void Ice::InputStream::skipOptional | ( | OptionalFormat | format | ) |
Skips one optional value with the given format.
format | The expected format of the optional, if present. |
void Ice::InputStream::skipOptionals | ( | ) |
Skips all remaining optional values.
|
inline |
Reads a size at the current position and skips that number of bytes.
|
inline |
Skips over a value or exception slice.
|
inline |
Reads the start of an encapsulation.
|
inline |
Marks the start of a user exception.
|
inline |
Reads the start of a value or exception slice.
|
inline |
Marks the start of a class instance.
void Ice::InputStream::swap | ( | InputStream & | other | ) |
Swaps the contents of one stream with another.
other | The other stream. |
void Ice::InputStream::throwException | ( | UserExceptionFactory | factory = nullptr | ) |
Extracts a user exception from the stream and throws it.
factory | If provided, this factory is given the first opportunity to instantiate the exception. If not provided, or if the factory does not throw an exception when invoked, the stream will attempt to instantiate the exception using static type information. |
UserException | The user exception that was unmarshaled. |