diff options
Diffstat (limited to 'cpp/include/Ice/SlicedData.h')
-rw-r--r-- | cpp/include/Ice/SlicedData.h | 111 |
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: |