GardenSmartFox.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using Sfs2X;
  3. using Sfs2X.Core;
  4. using Sfs2X.Entities;
  5. public enum RequestStatus
  6. {
  7. Failed,
  8. Succeed,
  9. Pending,
  10. }
  11. public class GardenSmartFox
  12. {
  13. #region Variable
  14. public User User;
  15. public SmartFox SmartFox;
  16. public BaseLoggor Loggor;
  17. public BaseConnector Connector;
  18. public SFSExtensionManager ExtensionManager;
  19. public PlazaRoomManager PlazaRoomManager;
  20. #endregion
  21. public GardenSmartFox(BaseLoggor baseLoggor, BaseConnector baseConnector)
  22. {
  23. SmartFox = new SmartFox();
  24. Loggor = baseLoggor.Init(this);
  25. Connector = baseConnector.Init(this);
  26. ExtensionManager = new SFSExtensionManager(this);
  27. PlazaRoomManager = new PlazaRoomManager(this);
  28. }
  29. public void ExecuteAfterCheckConection(Action execute, Action<bool, BaseEvent> onConnectResult = null, Action<bool, BaseEvent> onLoginResult = null)
  30. {
  31. if (!SmartFox.IsConnected)
  32. {
  33. Reset();
  34. Connector.Connect();
  35. if (onConnectResult != null)
  36. {
  37. new CounterAction<bool, BaseEvent>
  38. (
  39. (succeed, baseEvent) =>
  40. {
  41. onConnectResult.Invoke(succeed, baseEvent);
  42. }
  43. ).Bind(ref Connector.onConnectResult);
  44. }
  45. if (onLoginResult != null)
  46. {
  47. new CounterAction<bool, BaseEvent>
  48. (
  49. (succeed, baseEvent) =>
  50. {
  51. onLoginResult.Invoke(succeed, baseEvent);
  52. }
  53. ).Bind(ref Loggor.onLoginResult);
  54. }
  55. new CounterAction<BaseEvent>
  56. (
  57. baseEven =>
  58. {
  59. execute.Invoke();
  60. }
  61. ).Bind(ref Loggor.onLogin);
  62. }
  63. else
  64. {
  65. execute.Invoke();
  66. }
  67. }
  68. public void Reset()
  69. {
  70. SmartFox = new SmartFox();
  71. Loggor.Init(this);
  72. Connector.Init(this);
  73. ExtensionManager = new SFSExtensionManager(this);
  74. PlazaRoomManager = new PlazaRoomManager(this);
  75. }
  76. }