/// <summary> /// Removes a module from this channel. /// </summary> /// <param name="module"></param> /// <returns></returns> public ISockNetChannel RemoveModule(ISockNetChannelModule module) { if (modules.Remove(module.GetType().Name)) { SockNetLogger.Log(SockNetLogger.LogLevel.DEBUG, this, "Uninstalling module: [{0}]", module); module.Uninstall(this); } else { throw new Exception("Module [" + module + "] not installed."); } return(this); }
/// <summary> /// Adds a module into this channel. /// </summary> /// <param name="module"></param> /// <returns></returns> public ISockNetChannel AddModule(ISockNetChannelModule module) { ISockNetChannelModule tmp; if (modules.TryAdd(module.GetType().Name, module, out tmp, false)) { SockNetLogger.Log(SockNetLogger.LogLevel.DEBUG, this, "Adding module: [{0}]", module); if (ShouldInstallModule(module)) { SockNetLogger.Log(SockNetLogger.LogLevel.DEBUG, this, "Installing module: [{0}]", module); module.Install(this); } } else { throw new Exception("Module [" + module + "] already installed."); } return(this); }