MessageParser.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. namespace XGame.Framework.Network.Protobuf
  3. {
  4. public class MessageParser
  5. {
  6. private Func<IMsgParser> factory;
  7. public MessageParser(Func<IMsgParser> factory)
  8. {
  9. this.factory = factory;
  10. }
  11. public IMsgParser CreateTemplate()
  12. {
  13. return factory();
  14. }
  15. //
  16. // public IMsgParser ParseFrom(CodedInputStream input)
  17. // {
  18. // IMsgParser parser = factory();
  19. // parser.MergeFrom(input);
  20. // return parser;
  21. // }
  22. }
  23. // public sealed class MessageParser<T> : MessageParser where T : IMsgParser
  24. // {
  25. // private readonly Func<T> factory;
  26. //
  27. // public MessageParser(Func<T> factory) : base(() => factory())
  28. // {
  29. // this.factory = factory;
  30. // }
  31. //
  32. // internal T CreateTemplate()
  33. // {
  34. // return factory();
  35. // }
  36. //
  37. //// public new T ParseFrom(CodedInputStream input)
  38. //// {
  39. //// T message = factory();
  40. //// message.MergeFrom(input);
  41. //// return message;
  42. //// }
  43. // }
  44. }