namespace Galactic_Colors_Control_Common.Protocol { /// /// Packet Master Class /// public class Data { public enum DataType { Request, Result, Event }; /// /// Create Packet from bytes /// /// row bytes (remove used bytes) public static Data FromBytes(ref byte[] bytes) { int type; if (!Binary.TryToInt(ref bytes, out type)) return null; switch ((DataType)type) { case DataType.Request: return new RequestData(ref bytes); case DataType.Result: return new ResultData(ref bytes); case DataType.Event: return new EventData(ref bytes); default: return null; } } /// /// Small readable text /// public virtual string ToSmallString() { return null; } /// /// Long readble text /// public virtual string ToLongString() { return null; } /// /// Generate bytes to send /// public virtual byte[] ToBytes() { return new byte[0]; } } }