IMessageParser.cs 1.3 KB

1234567891011121314151617181920212223
  1. using System;
  2. namespace Edge.Core.Parser
  3. {
  4. /// <summary>
  5. /// The message parsing is defined as 2 direction convert,
  6. /// 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.
  7. /// 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.
  8. /// </summary>
  9. /// <typeparam name="TRaw">Type for unreadable format data</typeparam>
  10. /// <typeparam name="TMessage">Type for readable object</typeparam>
  11. public interface IMessageParser<TRaw, TMessage> //where TTemplate : MessageTemplateBase
  12. {
  13. event EventHandler<ParsingEventArg<TRaw, TMessage>> Deserializing;
  14. event EventHandler<DeserializeEventArg<TRaw, TMessage>> Deserialized;
  15. event EventHandler<ParsingEventArg<TMessage, TRaw>> Serializing;
  16. event EventHandler<ParsingEventArg<TMessage, TRaw>> Serialized;
  17. event EventHandler<ParsingEventArg<string, TRaw>> FieldSerializing;
  18. event EventHandler<ParsingEventArg<string, TRaw>> FieldSerialized;
  19. TMessage Deserialize(TRaw data);
  20. TRaw Serialize(TMessage message);
  21. }
  22. }