From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../ProtoBuf/Serializers/BlobSerializer.cs | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/ProtoBuf/Serializers/BlobSerializer.cs (limited to 'Client/Assets/Scripts/XMainClient/ProtoBuf/Serializers/BlobSerializer.cs') diff --git a/Client/Assets/Scripts/XMainClient/ProtoBuf/Serializers/BlobSerializer.cs b/Client/Assets/Scripts/XMainClient/ProtoBuf/Serializers/BlobSerializer.cs new file mode 100644 index 00000000..b249fe6c --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/ProtoBuf/Serializers/BlobSerializer.cs @@ -0,0 +1,51 @@ +using System; +using ProtoBuf.Meta; + +namespace ProtoBuf.Serializers +{ + internal sealed class BlobSerializer : IProtoSerializer + { + public Type ExpectedType + { + get + { + return BlobSerializer.expectedType; + } + } + + bool IProtoSerializer.RequiresOldValue + { + get + { + return !this.overwriteList; + } + } + + bool IProtoSerializer.ReturnsValue + { + get + { + return true; + } + } + + private static readonly Type expectedType = typeof(byte[]); + + private readonly bool overwriteList; + + public BlobSerializer(TypeModel model, bool overwriteList) + { + this.overwriteList = overwriteList; + } + + public object Read(object value, ProtoReader source) + { + return ProtoReader.AppendBytes(this.overwriteList ? null : ((byte[])value), source); + } + + public void Write(object value, ProtoWriter dest) + { + ProtoWriter.WriteBytes((byte[])value, dest); + } + } +} -- cgit v1.1-26-g67d0