AMEvent.cs 767 B

1234567891011121314151617181920212223242526272829
  1. using System;
  2. using Base;
  3. namespace Model
  4. {
  5. public abstract class AMEvent<Message>: IMRegister where Message: AMessage
  6. {
  7. protected abstract void Run(Session session, Message message);
  8. public void Register(IMessageDispather component)
  9. {
  10. ushort opcode = component.GetOpcode(typeof (Message));
  11. component.RegisterHandler<Message>(opcode, Run);
  12. }
  13. }
  14. public abstract class AMRpcEvent<Request, Response> : IMRegister
  15. where Request : ARequest
  16. where Response: AResponse
  17. {
  18. protected abstract void Run(Session scene, Request message, Action<Response> reply);
  19. public void Register(IMessageDispather component)
  20. {
  21. ushort opcode = component.GetOpcode(typeof(Request));
  22. component.RegisterRpcHandler<Request, Response>(opcode, Run);
  23. }
  24. }
  25. }