This commit is contained in:
CortexCore
2023-06-05 16:25:06 +08:00
parent 9027120bb8
commit 4565ff2e35
2947 changed files with 0 additions and 0 deletions

36
Core/Net/NetMessage.cs Normal file
View File

@@ -0,0 +1,36 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
namespace BITKit
{
public interface INetMessage { }
public interface INetMessageReader
{
void Initialize();
Type GetMessageType();
object ReadBinaryAsObject(BinaryReader reader);
void WriteBinaryAsObject(BinaryWriter writer, Object value);
}
public interface INetMessageReader<T> : INetMessageReader
{
T ReadBinary(BinaryReader reader);
void WriteBinary(BinaryWriter writer, T value);
}
public abstract class NetMessageReader<T> : INetMessageReader<T>
{
public Type GetMessageType() => typeof(T);
public virtual void Initialize() { }
public abstract T ReadBinary(BinaryReader reader);
public object ReadBinaryAsObject(BinaryReader reader) => ReadBinary(reader);
public abstract void WriteBinary(BinaryWriter writer, T value);
public void WriteBinaryAsObject(BinaryWriter writer, object value) => WriteBinary(writer, (T)value);
}
public interface INetMessager : IDiagnostics
{
void Init();
void Send<T>(T message);
void Register<T>(Action<T> action);
void UnRegister<T>(Action<T> action);
}
}