using System; namespace Edge.Core.Parser { /// <summary> /// The message parsing is defined as 2 direction convert, /// we say the 'forward' direction convert is from an unreadable format data to a readable static type object, like the bytes to object, this is called Deserialize. /// vice versa, the 'backward' direction convert is covert a readable staic type object to an unreadable format data, like covert the object to bytes, this is called Serialize. /// </summary> /// <typeparam name="TRaw">Type for unreadable format data</typeparam> /// <typeparam name="TMessage">Type for readable object</typeparam> public interface IMessageParser<TRaw, TMessage> //where TTemplate : MessageTemplateBase { event EventHandler<ParsingEventArg<TRaw, TMessage>> Deserializing; event EventHandler<DeserializeEventArg<TRaw, TMessage>> Deserialized; event EventHandler<ParsingEventArg<TMessage, TRaw>> Serializing; event EventHandler<ParsingEventArg<TMessage, TRaw>> Serialized; event EventHandler<ParsingEventArg<string, TRaw>> FieldSerializing; event EventHandler<ParsingEventArg<string, TRaw>> FieldSerialized; TMessage Deserialize(TRaw data); TRaw Serialize(TMessage message); } }