public LinkProducerBuilder ( Link link, TimeSpan recoveryInterval, ILinkSerializer serializer, TimeSpan?publishTimeout = null, bool?confirmsMode = null, bool?setUserId = null, ILinkMessageIdGenerator messageIdGenerator = null, LinkPublishProperties publishProperties = null, LinkMessageProperties messageProperties = null, ILinkProducerTopologyHandler topologyHandler = null, LinkStateHandler <LinkProducerState> stateHandler = null, LinkStateHandler <LinkChannelState> channelStateHandler = null, LinkTypeNameMapping typeNameMapping = null ) { _link = link ?? throw new ArgumentNullException(nameof(link)); _confirmsMode = confirmsMode ?? false; _setUserId = setUserId ?? true; _publishTimeout = publishTimeout ?? Timeout.InfiniteTimeSpan; _recoveryInterval = recoveryInterval; _messageIdGenerator = messageIdGenerator ?? new LinkGuidMessageIdGenerator(); _publishProperties = publishProperties ?? new LinkPublishProperties(); _messageProperties = messageProperties ?? new LinkMessageProperties(); _topologyHandler = topologyHandler; _stateHandler = stateHandler ?? ((old, @new) => { }); _channelStateHandler = channelStateHandler ?? ((old, @new) => { }); _serializer = serializer; _typeNameMapping = typeNameMapping ?? new LinkTypeNameMapping(); }
private LinkProducerBuilder ( LinkProducerBuilder prev, TimeSpan?recoveryInterval = null, TimeSpan?publishTimeout = null, bool?confirmsMode = null, bool?setUserId = null, ILinkMessageIdGenerator messageIdGenerator = null, LinkPublishProperties publishProperties = null, LinkMessageProperties messageProperties = null, ILinkProducerTopologyHandler topologyHandler = null, LinkStateHandler <LinkProducerState> stateHandler = null, LinkStateHandler <LinkChannelState> channelStateHandler = null, ILinkSerializer serializer = null, LinkTypeNameMapping typeNameMapping = null ) : this ( prev._link, recoveryInterval ?? prev._recoveryInterval, serializer ?? prev._serializer, publishTimeout ?? prev._publishTimeout, confirmsMode ?? prev._confirmsMode, setUserId ?? prev._setUserId, messageIdGenerator ?? prev._messageIdGenerator, publishProperties ?? prev._publishProperties.Clone(), messageProperties ?? prev._messageProperties.Clone(), topologyHandler ?? prev._topologyHandler, stateHandler ?? prev._stateHandler, channelStateHandler ?? prev._channelStateHandler, typeNameMapping ?? prev._typeNameMapping ) { }
public LinkChannel(ILinkConnection connection, LinkStateHandler <LinkChannelState> stateHandler, TimeSpan recoveryInterval) : base(LinkChannelState.Init) { _connection = connection ?? throw new ArgumentNullException(nameof(connection)); _logger = connection.Configuration.LoggerFactory.CreateLogger($"{GetType().Name}({Id:D})") ?? throw new ArgumentException("Cannot create logger", nameof(connection.Configuration.LoggerFactory)); if (recoveryInterval <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(recoveryInterval), "Must be greater than zero"); } _stateHandler = stateHandler ?? throw new ArgumentNullException(nameof(stateHandler)); _recoveryInterval = recoveryInterval; _disposeCts = new CancellationTokenSource(); _disposeCancellation = _disposeCts.Token; _connection.Disposed += ConnectionOnDisposed; _logger.Debug($"Created(connectionId: {_connection.Id:D})"); }
private LinkBuilder( LinkBuilder prev, string connectionName = null, Uri connectionString = null, bool?autoStart = null, TimeSpan?timeout = null, TimeSpan?recoveryInterval = null, ILinkLoggerFactory loggerFactory = null, string appId = null, LinkStateHandler <LinkConnectionState> stateHandler = null, bool?useBackgroundThreadsForConnection = null, ILinkSerializer serializer = null ) : this( connectionName ?? prev._connectionName, connectionString ?? prev._connectionString, autoStart ?? prev._autoStart, timeout ?? prev._timeout, recoveryInterval ?? prev._recoveryInterval, loggerFactory ?? prev._loggerFactory, appId ?? prev._appId, stateHandler ?? prev._stateHandler, useBackgroundThreadsForConnection ?? prev._useBackgroundThreadsForConnection, serializer ?? prev._serializer ) { }
public LinkConsumerBuilder( Link link, TimeSpan recoveryInterval, ILinkSerializer serializer, ushort?prefetchCount = null, bool?autoAck = null, int?priority = null, bool?cancelOnHaFailover = null, bool?exclusive = null, ILinkConsumerErrorStrategy errorStrategy = null, LinkConsumerMessageHandlerBuilder messageHandlerBuilder = null, ILinkConsumerTopologyHandler topologyHandler = null, LinkStateHandler <LinkConsumerState> stateHandler = null, LinkStateHandler <LinkChannelState> channelStateHandler = null, LinkTypeNameMapping typeNameMapping = null ) { _link = link ?? throw new ArgumentNullException(nameof(link)); _reconveryInterval = recoveryInterval; _prefetchCount = prefetchCount ?? 1; _autoAck = autoAck ?? false; _priority = priority ?? 0; _cancelOnHaFailover = cancelOnHaFailover ?? false; _exclusive = exclusive ?? false; _errorStrategy = errorStrategy ?? new LinkConsumerDefaultErrorStrategy(); _messageHandlerBuilder = messageHandlerBuilder; _topologyHandler = topologyHandler; _stateHandler = stateHandler ?? ((old, @new) => { }); _channelStateHandler = channelStateHandler ?? ((old, @new) => { }); _serializer = serializer; _typeNameMapping = typeNameMapping ?? new LinkTypeNameMapping(); }
public LinkConsumerConfiguration( TimeSpan recoveryInterval, ushort prefetchCount, bool autoAck, int priority, bool cancelOnHaFailover, bool exclusive, ILinkConsumerTopologyHandler topologyHandler, LinkStateHandler<LinkConsumerState> stateHandler, ILinkConsumerErrorStrategy errorStrategy, LinkConsumerMessageHandlerDelegate<byte[]> messageHandler, ILinkSerializer serializer ) { if (recoveryInterval < TimeSpan.Zero) throw new ArgumentOutOfRangeException(nameof(recoveryInterval), "Must be greater than TimeSpan.Zero"); if(prefetchCount == 0) throw new ArgumentOutOfRangeException(nameof(prefetchCount), "Must be greater than 0"); RecoveryInterval = recoveryInterval; PrefetchCount = prefetchCount; AutoAck = autoAck; Priority = priority; CancelOnHaFailover = cancelOnHaFailover; Exclusive = exclusive; MessageHandler = messageHandler ?? throw new ArgumentNullException(nameof(messageHandler)); ErrorStrategy = errorStrategy ?? throw new ArgumentNullException(nameof(errorStrategy)); TopologyHandler = topologyHandler ?? throw new ArgumentNullException(nameof(topologyHandler)); StateHandler = stateHandler ?? throw new ArgumentNullException(nameof(stateHandler)); Serializer = serializer; }
private LinkConsumerBuilder( LinkConsumerBuilder prev, TimeSpan?recoveryInterval = null, ushort?prefetchCount = null, bool?autoAck = null, int?priority = null, bool?cancelOnHaFailover = null, bool?exclusive = null, ILinkConsumerErrorStrategy errorStrategy = null, LinkConsumerMessageHandlerBuilder messageHandlerBuilder = null, ILinkConsumerTopologyHandler topologyHandler = null, LinkStateHandler <LinkConsumerState> stateHandler = null, LinkStateHandler <LinkChannelState> channelStateHandler = null, ILinkSerializer serializer = null, LinkTypeNameMapping typeNameMapping = null ) : this ( prev._link, recoveryInterval ?? prev._reconveryInterval, serializer ?? prev._serializer, prefetchCount ?? prev._prefetchCount, autoAck ?? prev._autoAck, priority ?? prev._priority, cancelOnHaFailover ?? prev._cancelOnHaFailover, exclusive ?? prev._exclusive, errorStrategy ?? prev._errorStrategy, messageHandlerBuilder ?? prev._messageHandlerBuilder, topologyHandler ?? prev._topologyHandler, stateHandler ?? prev._stateHandler, channelStateHandler ?? prev._channelStateHandler, typeNameMapping ?? prev._typeNameMapping ) { }
public ILinkBuilder OnStateChange(LinkStateHandler <LinkConnectionState> handler) { if (handler == null) { throw new ArgumentNullException(nameof(handler)); } return(new LinkBuilder(this, stateHandler: handler)); }
public ILinkTopologyBuilder OnStateChange(LinkStateHandler <LinkTopologyState> value) { if (value == null) { throw new ArgumentNullException(nameof(value)); } return(new LinkTopologyBuilder(this, stateHandler: value)); }
public ILinkConsumerBuilder OnChannelStateChange(LinkStateHandler <LinkChannelState> value) { if (value == null) { throw new ArgumentNullException(nameof(value)); } return(new LinkConsumerBuilder(this, channelStateHandler: value)); }
public LinkTopologyConfiguration( TimeSpan recoveryInterval, LinkStateHandler <LinkTopologyState> stateHandler, ILinkTopologyHandler topologyHandler ) { if (recoveryInterval <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(recoveryInterval), "Must be greater than TimeSpan.Zero"); } RecoveryInterval = recoveryInterval; StateHandler = stateHandler ?? throw new ArgumentNullException(nameof(stateHandler)); TopologyHandler = topologyHandler ?? throw new ArgumentException(nameof(topologyHandler)); }
private LinkTopologyBuilder( LinkTopologyBuilder prev, TimeSpan?recoveryInterval = null, LinkStateHandler <LinkTopologyState> stateHandler = null, LinkStateHandler <LinkChannelState> channelStateHandler = null, ILinkTopologyHandler topologyHandler = null ) : this( prev._link, recoveryInterval ?? prev._recoveryInterval, stateHandler ?? prev._stateHandler, channelStateHandler ?? prev._channelStateHandler, topologyHandler ?? prev._topologyHandler ) { }
public LinkTopologyBuilder( Link link, TimeSpan recoveryInterval, LinkStateHandler <LinkTopologyState> stateHandler = null, LinkStateHandler <LinkChannelState> channelStateHandler = null, ILinkTopologyHandler topologyHandler = null ) { _link = link ?? throw new ArgumentNullException(nameof(link)); _recoveryInterval = recoveryInterval; _stateHandler = stateHandler ?? ((old, @new) => { }); _channelStateHandler = channelStateHandler ?? ((old, @new) => { }); _topologyHandler = topologyHandler; }
public LinkConfiguration( string connectionName, Uri connectionString, bool autoStart, TimeSpan timeout, TimeSpan recoveryInterval, ILinkLoggerFactory loggerFactory, string appId, LinkStateHandler <LinkConnectionState> stateHandler, bool useBackgroundThreadsForConnection, ILinkSerializer serializer ) { if (string.IsNullOrWhiteSpace(connectionName)) { throw new ArgumentNullException(nameof(connectionName)); } if (timeout <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(timeout), "Must be greater than TimeSpan.Zero"); } if (recoveryInterval <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(recoveryInterval), "Must be greater than TimeSpan.Zero"); } if (string.IsNullOrWhiteSpace(appId)) { throw new ArgumentNullException(nameof(appId)); } ConnectionName = connectionName.Trim(); ConnectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString)); AutoStart = autoStart; Timeout = timeout; RecoveryInterval = recoveryInterval; LoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); AppId = appId.Trim(); StateHandler = stateHandler ?? throw new ArgumentNullException(nameof(stateHandler)); UseBackgroundThreadsForConnection = useBackgroundThreadsForConnection; Serializer = serializer; }
public LinkProducerConfiguration( TimeSpan publishTimeout, TimeSpan recoveryInterval, ILinkMessageIdGenerator messageIdGenerator, bool confirmsMode, bool setUserId, LinkPublishProperties publishProperties, LinkMessageProperties messageProperties, ILinkProducerTopologyHandler topologyHandler, LinkStateHandler <LinkProducerState> stateHandler, ILinkSerializer serializer, LinkTypeNameMapping typeNameMapping ) { if (publishTimeout < TimeSpan.Zero && publishTimeout != Timeout.InfiniteTimeSpan) { throw new ArgumentOutOfRangeException(nameof(publishTimeout), "Must be greater or equal TimeSpan.Zero or equal Timeout.InfiniteTimeSpan"); } if (recoveryInterval < TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(recoveryInterval), "Must be greater than TimeSpan.Zero"); } PublishTimeout = publishTimeout; RecoveryInterval = recoveryInterval; MessageIdGenerator = messageIdGenerator ?? throw new ArgumentNullException(nameof(messageIdGenerator)); ConfirmsMode = confirmsMode; SetUserId = setUserId; _publishProperties = publishProperties ?? throw new ArgumentNullException(nameof(publishProperties)); _messageProperties = messageProperties ?? throw new ArgumentNullException(nameof(messageProperties)); TopologyHandler = topologyHandler ?? throw new ArgumentNullException(nameof(topologyHandler)); StateHandler = stateHandler ?? throw new ArgumentNullException(nameof(stateHandler)); Serializer = serializer; TypeNameMapping = typeNameMapping ?? throw new ArgumentNullException(nameof(typeNameMapping)); }
public LinkBuilder( string connectionName = null, Uri connectionString = null, bool?autoStart = null, TimeSpan?timeout = null, TimeSpan?recoveryInterval = null, ILinkLoggerFactory loggerFactory = null, string appId = null, LinkStateHandler <LinkConnectionState> stateHandler = null, bool?useBackgroundThreadsForConnection = null, ILinkSerializer serializer = null ) { _connectionName = connectionName ?? "default"; _connectionString = connectionString; _autoStart = autoStart ?? true; _timeout = timeout ?? TimeSpan.FromSeconds(10); _recoveryInterval = recoveryInterval; _loggerFactory = loggerFactory ?? new LinkNullLoggingFactory(); _appId = appId ?? Guid.NewGuid().ToString("D"); _stateHandler = stateHandler ?? ((old, @new) => { }); _useBackgroundThreadsForConnection = useBackgroundThreadsForConnection ?? false; _serializer = serializer; }
public IServiceLinkBuilder OnStateChange(LinkStateHandler <LinkConnectionState> handler) => new ServiceLinkBuilder(_linkBuilder.OnStateChange(handler), SetParameter(nameof(OnStateChange), handler));
public ILinkPullConsumerBuilder OnStateChange(LinkStateHandler <LinkConsumerState> value) { return(new LinkPullConsumerBuilder(this, consumerBuilder: _consumerBuilder.OnStateChange(value))); }