summaryrefslogtreecommitdiff
path: root/csharp/src/Ice/UnknownSlicedObject.cs
blob: 2ef850e87c3d9c87e1ad51b9fe3442674729a410 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// **********************************************************************
//
// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

namespace Ice
{
    /// <summary>
    /// Unknown sliced object holds an instance of unknown type.
    /// </summary>
    public sealed class UnknownSlicedObject : ObjectImpl
    {
        /// <summary>
        /// Instantiates the class for an Ice object having the given Slice type.
        /// </summary>
        /// <param name="unknownTypeId">The Slice type ID of the unknown object.</param>
        public UnknownSlicedObject(string unknownTypeId)
        {
            _unknownTypeId = unknownTypeId;
        }

        /// <summary>
        /// Determine the Slice type ID associated with this object.
        /// </summary>
        /// <returns>The type ID.</returns>
        public string getUnknownTypeId()
        {
            return _unknownTypeId;
        }

        public override void write__(IceInternal.BasicStream os__)
        {
            os__.startWriteObject(_slicedData);
            os__.endWriteObject();
        }

        public override void read__(IceInternal.BasicStream is__)
        {
            is__.startReadObject();
            _slicedData = is__.endReadObject(true);
        }

        private string _unknownTypeId;
        private SlicedData _slicedData;
    }
}