summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/SlicedData.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/SlicedData.h')
-rw-r--r--cpp/include/Ice/SlicedData.h111
1 files changed, 79 insertions, 32 deletions
diff --git a/cpp/include/Ice/SlicedData.h b/cpp/include/Ice/SlicedData.h
index b4837274b19..28587e529c3 100644
--- a/cpp/include/Ice/SlicedData.h
+++ b/cpp/include/Ice/SlicedData.h
@@ -17,48 +17,50 @@
namespace Ice
{
-//
-// SliceInfo encapsulates the details of a slice for an unknown class or exception type.
-//
+/**
+ * Encapsulates the details of a slice for an unknown class or exception type.
+ * \headerfile Ice/Ice.h
+ */
struct ICE_API SliceInfo
#ifndef ICE_CPP11_MAPPING
: public ::IceUtil::Shared
#endif
{
- //
- // The Slice type ID for this slice.
- //
+ /**
+ * The Slice type ID for this slice.
+ */
::std::string typeId;
- //
- // The Slice compact type ID for this slice.
- //
+ /**
+ * The Slice compact type ID for this slice.
+ */
int compactId;
- //
- // The encoded bytes for this slice, including the leading size integer.
- //
+ /**
+ * The encoded bytes for this slice, including the leading size integer.
+ */
::std::vector<Byte> bytes;
- //
- // The class instances referenced by this slice.
- //
+ /**
+ * The class instances referenced by this slice.
+ */
::std::vector<ValuePtr> instances;
- //
- // Whether or not the slice contains optional members.
- //
+ /**
+ * Whether or not the slice contains optional members.
+ */
bool hasOptionalMembers;
- //
- // Whether or not this is the last slice.
- //
+ /**
+ * Whether or not this is the last slice.
+ */
bool isLastSlice;
};
-//
-// SlicedData holds the slices of unknown types.
-//
+/**
+ * Holds the slices of unknown types.
+ * \headerfile Ice/Ice.h
+ */
class ICE_API SlicedData
#ifndef ICE_CPP11_MAPPING
: public ::IceUtil::Shared
@@ -72,22 +74,26 @@ public:
SlicedData(const SliceInfoSeq&);
+ /** The slices of unknown types. */
const SliceInfoSeq slices;
- //
- // Clear the slices to break potential cyclic references.
- //
+ /**
+ * Clears the slices to break potential cyclic references.
+ */
void clear();
#ifndef ICE_CPP11_MAPPING
+ /// \cond INTERNAL
void _iceGcVisitMembers(IceInternal::GCVisitor&);
+ /// \endcond
#endif
};
-//
-// Unknown sliced object holds instance of unknown type.
-//
+/**
+ * Represents an instance of an unknown type.
+ * \headerfile Ice/Ice.h
+ */
class ICE_API UnknownSlicedValue :
#ifdef ICE_CPP11_MAPPING
public Value
@@ -97,26 +103,67 @@ class ICE_API UnknownSlicedValue :
{
public:
- UnknownSlicedValue(const std::string&);
+ /**
+ * Constructs the placeholder instance.
+ * @param unknownTypeId The Slice type ID of the unknown value.
+ */
+ UnknownSlicedValue(const std::string& unknownTypeId);
#ifdef ICE_CPP11_MAPPING
+ /**
+ * Obtains the sliced data associated with this instance.
+ * @return The sliced data if the value has a preserved-slice base class and has been sliced during
+ * unmarshaling of the value, or nil otherwise.
+ */
virtual SlicedDataPtr ice_getSlicedData() const override;
+
+ /**
+ * Determine the Slice type ID associated with this instance.
+ * @return The type ID supplied to the constructor.
+ */
virtual std::string ice_id() const override;
+
+ /**
+ * Clones this object.
+ * @return A new instance.
+ */
std::shared_ptr<UnknownSlicedValue> ice_clone() const;
+ /// \cond STREAM
virtual void _iceWrite(::Ice::OutputStream*) const override;
virtual void _iceRead(::Ice::InputStream*) override;
+ /// \endcond
protected:
+ /// \cond INTERNAL
virtual std::shared_ptr<Value> _iceCloneImpl() const override;
+ /// \endcond
+
#else
+
+ /**
+ * Obtains the sliced data associated with this instance.
+ * @return The sliced data if the value has a preserved-slice base class and has been sliced during
+ * unmarshaling of the value, or nil otherwise.
+ */
virtual SlicedDataPtr ice_getSlicedData() const;
- virtual const std::string& ice_id(const Current& = Ice::emptyCurrent) const;
+ /**
+ * Determine the Slice type ID associated with this instance.
+ * @param current The current object for this invocation.
+ * @return The type ID supplied to the constructor.
+ */
+ virtual const std::string& ice_id(const Current& current = Ice::emptyCurrent) const;
+
+ /// \cond INTERNAL
virtual void _iceGcVisitMembers(IceInternal::GCVisitor&);
+ /// \endcond
+
+ /// \cond STREAM
virtual void _iceWrite(::Ice::OutputStream*) const;
virtual void _iceRead(::Ice::InputStream*);
+ /// \endcond
#endif
private: