7#include "SlicedDataF.h"
46 [[nodiscard]]
virtual const char*
ice_id() const noexcept;
81 template<
class T>
struct CloneEnabler :
public T
83 CloneEnabler(
const T& other) : T(other) {}
84 static std::shared_ptr<T> clone(
const T& other) {
return std::make_shared<CloneEnabler>(other); }
87 [[nodiscard]]
virtual ValuePtr _iceCloneImpl()
const;
89 virtual void _iceWriteImpl(Ice::OutputStream*)
const {}
90 virtual void _iceReadImpl(Ice::InputStream*) {}
112 template<
class T, std::enable_if_t<std::is_base_of_v<Value, T>,
bool> = true>
113 inline std::ostream&
operator<<(std::ostream& os,
const std::shared_ptr<T>& value)
Represents a byte buffer used for marshaling data using the Slice encoding.
virtual void ice_print(std::ostream &os) const
Outputs a description of this instance to the stream.
Value() noexcept=default
Default constructor.
SlicedDataPtr ice_getSlicedData() const
Gets the sliced data associated with this instance.
virtual void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance, including inherited fields,...
ValuePtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
static const char * ice_staticId() noexcept
Gets the Slice type ID of this type.
virtual void ice_preMarshal()
Validates or updates the fields of this object before marshaling.
virtual const char * ice_id() const noexcept
Gets the Slice type ID of the most-derived class supported by this object.
virtual void ice_postUnmarshal()
Validates or updates the fields of this object after unmarshaling.
The base class for instances of Slice-defined classes.
std::shared_ptr< Value > ValuePtr
A shared pointer to a Value.
std::ostream & operator<<(std::ostream &os, const Identity &value)
Outputs the description of an Identity to a stream, including all its fields.
std::shared_ptr< SlicedData > SlicedDataPtr
A shared pointer to a SlicedData.