public ClientManagerImpl(ClientManagerConfig config, ClientListener listener, Manager wrapper) { this.config = config; this.listener = listener; this.wrapper = wrapper; this.dispatcher = config.getDispatcher(); Exception e = dispatcher.run(() => this.listener.onManagerInitialized(this, config)); if (e != null) { throw e; } this.autoReconnect = config.isAutoReconnect(); state = State.INIT; doConnect(); }
public static Manager add(ClientManagerConfig config, ClientListener listener, Manager wrapper) { lock (closeables) { if (closed) { throw new Exception("engine is not running!"); } Manager manager = new ClientManagerImpl(config, listener, wrapper); closeables.Add(manager, true); if (wrapper != null && !closeables.ContainsKey(wrapper)) { closeables.Add(wrapper, true); } return(manager); } }