public void RegisterSaslClientFactory(ISaslClientFactory saslClientFactory) { if (saslClientFactory == null) { throw new ArgumentNullException(nameof(saslClientFactory)); } var mechanisms = saslClientFactory.SupportedMechanisms; if (mechanisms.IsEmpty()) { throw new ArgumentException("A SASL Client Factory must support at least one mechanism.", nameof(saslClientFactory)); } foreach (var mechanism in mechanisms) { var factoryInDict = _saslClientFactories.GetOrAdd(mechanism, saslClientFactory); if (factoryInDict != saslClientFactory) { var typeName = factoryInDict.GetType().Name; var msg = $"There is already a SASL Client Factory registered for '{mechanism}': {typeName}"; throw new InvalidOperationException(msg); } } }
public static void RegisterClientFactory(ISaslClientFactory factory) { lock ( _clientFactories ) { _clientFactories.Add(factory); } }
public static ISaslClient CreateClient( string[] mechanisms, string authorizationId, string protocol, string serverName, IDictionary props, ISaslCallbackHandler handler ) { ISaslClientFactory factory = FindFactory(mechanisms, props); if (factory == null) { return(null); } return(factory.CreateClient( mechanisms, authorizationId, protocol, serverName, props, handler )); }