mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
[+] TEngineServer
[+] TEngineServer
This commit is contained in:
64
Assets/GameScripts/ThirdParty/Protobuf-net/Serializers/IProtoSerializer.cs
vendored
Normal file
64
Assets/GameScripts/ThirdParty/Protobuf-net/Serializers/IProtoSerializer.cs
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
#if !NO_RUNTIME
|
||||
using System;
|
||||
|
||||
|
||||
namespace ProtoBuf.Serializers
|
||||
{
|
||||
interface IProtoSerializer
|
||||
{
|
||||
/// <summary>
|
||||
/// The type that this serializer is intended to work for.
|
||||
/// </summary>
|
||||
Type ExpectedType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Perform the steps necessary to serialize this data.
|
||||
/// </summary>
|
||||
/// <param name="value">The value to be serialized.</param>
|
||||
/// <param name="dest">The writer entity that is accumulating the output data.</param>
|
||||
void Write(object value, ProtoWriter dest);
|
||||
|
||||
/// <summary>
|
||||
/// Perform the steps necessary to deserialize this data.
|
||||
/// </summary>
|
||||
/// <param name="value">The current value, if appropriate.</param>
|
||||
/// <param name="source">The reader providing the input data.</param>
|
||||
/// <returns>The updated / replacement value.</returns>
|
||||
object Read(object value, ProtoReader source);
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether a Read operation <em>replaces</em> the existing value, or
|
||||
/// <em>extends</em> the value. If false, the "value" parameter to Read is
|
||||
/// discarded, and should be passed in as null.
|
||||
/// </summary>
|
||||
bool RequiresOldValue { get; }
|
||||
/// <summary>
|
||||
/// Now all Read operations return a value (although most do); if false no
|
||||
/// value should be expected.
|
||||
/// </summary>
|
||||
bool ReturnsValue { get; }
|
||||
|
||||
#if FEAT_COMPILER
|
||||
/// <summary>Emit the IL necessary to perform the given actions
|
||||
/// to serialize this data.
|
||||
/// </summary>
|
||||
/// <param name="ctx">Details and utilities for the method being generated.</param>
|
||||
/// <param name="valueFrom">The source of the data to work against;
|
||||
/// If the value is only needed once, then LoadValue is sufficient. If
|
||||
/// the value is needed multiple times, then note that a "null"
|
||||
/// means "the top of the stack", in which case you should create your
|
||||
/// own copy - GetLocalWithValue.</param>
|
||||
void EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom);
|
||||
|
||||
/// <summary>
|
||||
/// Emit the IL necessary to perform the given actions to deserialize this data.
|
||||
/// </summary>
|
||||
/// <param name="ctx">Details and utilities for the method being generated.</param>
|
||||
/// <param name="entity">For nested values, the instance holding the values; note
|
||||
/// that this is not always provided - a null means not supplied. Since this is always
|
||||
/// a variable or argument, it is not necessary to consume this value.</param>
|
||||
void EmitRead(Compiler.CompilerContext ctx, Compiler.Local entity);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user