-
Notifications
You must be signed in to change notification settings - Fork 12
/
SliceClass.cs
29 lines (22 loc) · 1.16 KB
/
SliceClass.cs
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
// Copyright (c) ZeroC, Inc.
using System.Collections.Immutable;
using System.ComponentModel;
namespace ZeroC.Slice;
/// <summary>Represents the base class for classes defined in Slice. The Slice keyword AnyClass maps to this class.
/// </summary>
public abstract class SliceClass
{
/// <summary>Gets the unknown slices if the class has a preserved-slice base class and has been sliced-off
/// during decoding.</summary>
public ImmutableList<SliceInfo> UnknownSlices { get; internal set; } = ImmutableList<SliceInfo>.Empty;
internal void Decode(ref SliceDecoder decoder) => DecodeCore(ref decoder);
internal void Encode(ref SliceEncoder encoder) => EncodeCore(ref encoder);
/// <summary>Decodes the properties of this instance.</summary>
/// <param name="decoder">The Slice decoder.</param>
[EditorBrowsable(EditorBrowsableState.Never)]
protected abstract void DecodeCore(ref SliceDecoder decoder);
/// <summary>Encodes the properties of this instance.</summary>
/// <param name="encoder">The Slice encoder.</param>
[EditorBrowsable(EditorBrowsableState.Never)]
protected abstract void EncodeCore(ref SliceEncoder encoder);
}