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; } } } }