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