27 lines
961 B
C#
27 lines
961 B
C#
using System;
|
|
using System.IO;
|
|
|
|
namespace BITKit
|
|
{
|
|
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);
|
|
}
|
|
} |