protected virtual void Dispose(bool disposing) { if (disposing) { OnServerDisconnected(); if (sessionManagerAdapter != null) { sessionManagerAdapter.ServerConnectedEvent -= OnServerConnected; sessionManagerAdapter.ServerDisconnectedEvent -= OnServerDisconnected; sessionManagerAdapter.SessionClosedEvent -= OnSessionClosed; sessionManagerAdapter.SessionAddedEvent -= OnSessionAdded; sessionManagerAdapter.CreateSucceededEvent -= OnSessionCreatedSuccess; sessionManagerAdapter.CreateFailedEvent -= OnSessionCreatedFail; sessionManagerAdapter.UserChangedEvent -= OnUserChanged; sessionManagerAdapter.UserJoinedSessionEvent -= OnUserJoined; sessionManagerAdapter.UserLeftSessionEvent -= OnUserLeft; sessionManagerAdapter.Dispose(); sessionManagerAdapter = null; } if (sessionManager != null) { sessionManager.Dispose(); sessionManager = null; } } disposed = true; }
public ServerSessionsTracker(SessionManager sessionMgr) { sessionManager = sessionMgr; Sessions = new List <Session>(); if (sessionManager != null) { sessionManagerAdapter = new SessionManagerAdapter(); sessionManagerAdapter.ServerConnectedEvent += OnServerConnected; sessionManagerAdapter.ServerDisconnectedEvent += OnServerDisconnected; sessionManagerAdapter.SessionClosedEvent += OnSessionClosed; sessionManagerAdapter.SessionAddedEvent += OnSessionAdded; sessionManagerAdapter.CreateSucceededEvent += OnSessionCreatedSuccess; sessionManagerAdapter.CreateFailedEvent += OnSessionCreatedFail; sessionManagerAdapter.UserChangedEvent += OnUserChanged; sessionManagerAdapter.UserJoinedSessionEvent += OnUserJoined; sessionManagerAdapter.UserLeftSessionEvent += OnUserLeft; sessionManager.AddListener(sessionManagerAdapter); } }