using System;
using GameLogic;
namespace GameLogic
{
///
/// Message dispatcher interface.
///
public abstract class ICrypto
{
///
/// Encode interface.
///
/// Mesage data.
/// Encoded message.
public abstract byte[] Encode(byte[] message);
///
/// Decode interface.
///
/// Mesage data.
/// Decoded message.
public abstract byte[] Decode(byte[] data);
}
///
/// Message dispatcher interface.
///
public abstract class IDispatcher {
///
/// Process message.
///
/// Message data.
/// Process result
public abstract bool Process(ByteBuffer data);
}
public class SimpleDispatcher : IDispatcher
{
public event Action processor;
public override bool Process(ByteBuffer data) {
try {
if (data != null && processor!=null)
{
processor.Invoke(data);
}
return true;
}
catch (Exception e)
{
UnityEngine.Debug.LogErrorFormat("Failed to parse network message : {0}", e.Message);
return false;
}
}
}
}