/// <summary> /// Unregisters the given <see cref="IMuxActivityLoggerClient"/> from the <see cref="RegisteredMuxClients"/> list. /// Silently ignores unregistered client. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public virtual IMuxActivityLoggerClientRegistrar UnregisterMuxClient(IMuxActivityLoggerClient client) { if (client == null) { throw new ArgumentNullException("client"); } DoRemove(client); return(this); }
/// <summary> /// Registers an <see cref="IMuxActivityLoggerClient"/> to the <see cref="RegisteredMuxClients"/> list. /// Duplicate IMuxActivityLoggerClient are silently ignored. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public virtual IMuxActivityLoggerClientRegistrar RegisterMuxClient(IMuxActivityLoggerClient client) { if (client == null) { throw new ArgumentNullException("client"); } if (!_clients.Contains(client)) { DoAdd(client); } return(this); }
/// <summary> /// Unregisters the given <see cref="IMuxActivityLoggerClient"/> from the <see cref="IMuxActivityLoggerClientRegistrar.RegisteredMuxClients">RegisteredMuxClients</see> list. /// Silently ignores unregistered client but throws an <see cref="InvalidOperationException"/> if it belongs to <see cref="NonRemoveableClients"/> list. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public override IMuxActivityLoggerClientRegistrar UnregisterMuxClient(IMuxActivityLoggerClient client) { if (client == null) { throw new ArgumentNullException("client"); } if (_nonRemoveableClients.Contains(client)) { throw new InvalidOperationException(R.ActivityLoggerNonRemoveableClient); } DoRemove(client); return(this); }
/// <summary> /// Registers an <see cref="IMuxActivityLoggerClient"/> to the <see cref="IMuxActivityLoggerClientRegistrar.RegisteredMuxClients">RegisteredMuxClients</see> list. /// Removes the <paramref name="client"/> from <see cref="RegisteredClients"/> if /// it is also a <see cref="IActivityLoggerClient"/> to avoid stuttering. /// Duplicate IMuxActivityLoggerClient are silently ignored. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public override IMuxActivityLoggerClientRegistrar RegisterMuxClient(IMuxActivityLoggerClient client) { if (client == null) { throw new ArgumentNullException("client"); } if (!RegisteredMuxClients.Contains(client)) { IActivityLoggerClient c = client as IActivityLoggerClient; if (c != null) { _clients.Remove(c); } DoAdd(client); } return(this); }
/// <summary> /// Registers an <see cref="IActivityLoggerClient"/> to the <see cref="RegisteredClients"/> list. /// Removes the <paramref name="client"/> from <see cref="IMuxActivityLoggerClientRegistrar.RegisteredMuxClients">RegisteredMuxClients</see> if /// it is also a <see cref="IMuxActivityLoggerClient"/> to avoid stuttering. /// Duplicate IActivityLoggerClient are silently ignored. /// </summary> /// <param name="client">An <see cref="IActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public IActivityLoggerClientRegistrar RegisterClient(IActivityLoggerClient client) { if (client == null) { throw new ArgumentNullException("client"); } if (!_clients.Contains(client)) { IMuxActivityLoggerClient mux = client as IMuxActivityLoggerClient; if (mux != null) { DoRemove(mux); } _clients.Insert(0, client); } return(this); }
public IMuxActivityLoggerClientRegistrar UnregisterMuxClient(IMuxActivityLoggerClient client) { return(this); }
/// <summary> /// Directly removes the client from the list. /// </summary> /// <param name="client">The client to remove.</param> /// <returns>True if has been found and removed.</returns> protected bool DoRemove( IMuxActivityLoggerClient client ) { return _clients.Remove( client ); }
/// <summary> /// Directly adds the client into the list. No check is done. /// </summary> /// <param name="client">The client to add.</param> protected void DoAdd( IMuxActivityLoggerClient client ) { _clients.Insert( 0, client ); }
/// <summary> /// Unregisters the given <see cref="IMuxActivityLoggerClient"/> from the <see cref="RegisteredMuxClients"/> list. /// Silently ignores unregistered client. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public virtual IMuxActivityLoggerClientRegistrar UnregisterMuxClient( IMuxActivityLoggerClient client ) { if( client == null ) throw new ArgumentNullException( "client" ); DoRemove( client ); return this; }
/// <summary> /// Registers an <see cref="IMuxActivityLoggerClient"/> to the <see cref="RegisteredMuxClients"/> list. /// Duplicate IMuxActivityLoggerClient are silently ignored. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public virtual IMuxActivityLoggerClientRegistrar RegisterMuxClient( IMuxActivityLoggerClient client ) { if( client == null ) throw new ArgumentNullException( "client" ); if( !_clients.Contains( client ) ) DoAdd( client ); return this; }
/// <summary> /// Directly removes the client from the list. /// </summary> /// <param name="client">The client to remove.</param> /// <returns>True if has been found and removed.</returns> protected bool DoRemove(IMuxActivityLoggerClient client) { return(_clients.Remove(client)); }
/// <summary> /// Directly adds the client into the list. No check is done. /// </summary> /// <param name="client">The client to add.</param> protected void DoAdd(IMuxActivityLoggerClient client) { _clients.Insert(0, client); }
public IMuxActivityLoggerClientRegistrar UnregisterMuxClient( IMuxActivityLoggerClient client ) { return this; }
/// <summary> /// Unregisters the given <see cref="IMuxActivityLoggerClient"/> from the <see cref="IMuxActivityLoggerClientRegistrar.RegisteredMuxClients">RegisteredMuxClients</see> list. /// Silently ignores unregistered client but throws an <see cref="InvalidOperationException"/> if it belongs to <see cref="NonRemoveableClients"/> list. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public override IMuxActivityLoggerClientRegistrar UnregisterMuxClient( IMuxActivityLoggerClient client ) { if( client == null ) throw new ArgumentNullException( "client" ); if( _nonRemoveableClients.Contains( client ) ) throw new InvalidOperationException( R.ActivityLoggerNonRemoveableClient ); DoRemove( client ); return this; }
/// <summary> /// Registers an <see cref="IMuxActivityLoggerClient"/> to the <see cref="IMuxActivityLoggerClientRegistrar.RegisteredMuxClients">RegisteredMuxClients</see> list. /// Removes the <paramref name="client"/> from <see cref="RegisteredClients"/> if /// it is also a <see cref="IActivityLoggerClient"/> to avoid stuttering. /// Duplicate IMuxActivityLoggerClient are silently ignored. /// </summary> /// <param name="client">An <see cref="IMuxActivityLoggerClient"/> implementation.</param> /// <returns>This object to enable fluent syntax.</returns> public override IMuxActivityLoggerClientRegistrar RegisterMuxClient( IMuxActivityLoggerClient client ) { if( client == null ) throw new ArgumentNullException( "client" ); if( !RegisteredMuxClients.Contains( client ) ) { IActivityLoggerClient c = client as IActivityLoggerClient; if( c != null ) _clients.Remove( c ); DoAdd( client ); } return this; }