153 lines
4.3 KiB
C#
153 lines
4.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using Nettention.Proud;
|
|
|
|
|
|
#pragma warning disable 8981
|
|
|
|
using pb = global::Google.Protobuf;
|
|
using pbc = global::Google.Protobuf.Collections;
|
|
using pbr = global::Google.Protobuf.Reflection;
|
|
using scg = global::System.Collections.Generic;
|
|
|
|
|
|
#pragma warning disable 8625
|
|
|
|
|
|
namespace Protocol
|
|
{
|
|
public class CaliMarshaler : Nettention.Proud.Marshaler
|
|
{
|
|
static bool ReadMessage(Message msg, out ByteArray arr)
|
|
{
|
|
if (msg.Read(out arr) == false)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
static void WriteMessage(Message msg, MemoryStream stream)
|
|
{
|
|
ByteArray by = ByteArray.CopyFrom(stream.ToArray());
|
|
msg.Write(by);
|
|
}
|
|
|
|
public static bool Read(Message msg, out ClientToLogin packet)
|
|
{
|
|
packet = null;
|
|
ByteArray arr;
|
|
if (ReadMessage(msg, out arr) == false)
|
|
return false;
|
|
|
|
packet = ClientToLogin.Parser.ParseFrom(arr.data);
|
|
return true;
|
|
}
|
|
|
|
public static bool Read(Message msg, out ClientToGame packet)
|
|
{
|
|
try
|
|
{
|
|
packet = null;
|
|
ByteArray arr;
|
|
if (ReadMessage(msg, out arr) == false)
|
|
return false;
|
|
|
|
packet = ClientToGame.Parser.ParseFrom(arr.data);
|
|
return true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
var err_msg = $"Exception !!!, Failed to perform in CaliMarshaler.Read() !!! : exception:{e} - {msg.ToString()}";
|
|
throw new System.Runtime.InteropServices.MarshalDirectiveException(err_msg);
|
|
}
|
|
}
|
|
|
|
public static bool Read(Message msg, out ClientToChat packet)
|
|
{
|
|
packet = null;
|
|
ByteArray arr;
|
|
if (ReadMessage(msg, out arr) == false)
|
|
return false;
|
|
|
|
packet = ClientToChat.Parser.ParseFrom(arr.data);
|
|
return true;
|
|
}
|
|
|
|
public static void Write(Message msg, ClientToLogin packet)
|
|
{
|
|
using (MemoryStream stream = new MemoryStream())
|
|
{
|
|
using (pb::CodedOutputStream output = new pb::CodedOutputStream(stream))
|
|
{
|
|
packet.WriteTo(output);
|
|
}
|
|
|
|
WriteMessage(msg, stream);
|
|
}
|
|
}
|
|
|
|
public static void Write(Message msg, ClientToGame packet)
|
|
{
|
|
using (MemoryStream stream = new MemoryStream())
|
|
{
|
|
using (pb::CodedOutputStream output = new pb::CodedOutputStream(stream))
|
|
{
|
|
packet.WriteTo(output);
|
|
}
|
|
|
|
WriteMessage(msg, stream);
|
|
}
|
|
}
|
|
|
|
public static void Write(Message msg, ClientToChat packet)
|
|
{
|
|
using (MemoryStream stream = new MemoryStream())
|
|
{
|
|
using (pb::CodedOutputStream output = new pb::CodedOutputStream(stream))
|
|
{
|
|
packet.WriteTo(output);
|
|
}
|
|
|
|
WriteMessage(msg, stream);
|
|
}
|
|
}
|
|
|
|
public static bool Read(Message msg, out GameProtocol packet)
|
|
{
|
|
try
|
|
{
|
|
packet = null;
|
|
ByteArray arr;
|
|
if (ReadMessage(msg, out arr) == false)
|
|
return false;
|
|
|
|
packet = GameProtocol.Parser.ParseFrom(arr.data);
|
|
return true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
var err_msg = $"Exception !!!, Failed to perform in CaliMarshaler.Read() !!! : exception:{e} - {msg.ToString()}";
|
|
throw new System.Runtime.InteropServices.MarshalDirectiveException(err_msg);
|
|
}
|
|
}
|
|
|
|
public static void Write(Message msg, GameProtocol packet)
|
|
{
|
|
using (MemoryStream stream = new MemoryStream())
|
|
{
|
|
using (pb::CodedOutputStream output = new pb::CodedOutputStream(stream))
|
|
{
|
|
packet.WriteTo(output);
|
|
}
|
|
|
|
WriteMessage(msg, stream);
|
|
}
|
|
}
|
|
}
|
|
}
|