protected MessageCorrelationManagerBase(IMemoryCache cache, ILogger logger, IChangeTokenProvider changeTokenProvider) { PendingRequests = cache; Logger = logger; _entryOptions = () => new MemoryCacheEntryOptions() .AddExpirationToken(changeTokenProvider.GetChangeToken()) .RegisterPostEvictionCallback(EvictionCallback); }
public RpcMessageCorrelationManager(IMemoryCache cache, ILogger logger, IChangeTokenProvider changeTokenProvider, IScheduler scheduler = null) : base(cache, logger, changeTokenProvider) { var observableScheduler = scheduler ?? Scheduler.Default; _evictionEvent = new ReplaySubject <ICacheEvictionEvent <ProtocolMessage> >(0, observableScheduler); EvictionEvents = _evictionEvent.AsObservable(); }
public DiscoveryTestBuilder WithPeerMessageCorrelationManager(IPeerMessageCorrelationManager peerMessageCorrelationManager = default, IReputationManager reputationManager = default, IMemoryCache memoryCache = default, IChangeTokenProvider changeTokenProvider = default) { _peerCorrelationManager = peerMessageCorrelationManager ?? DiscoveryHelper.MockCorrelationManager(_scheduler, reputationManager, memoryCache, changeTokenProvider, _logger); return(this); }
public static IPeerMessageCorrelationManager MockCorrelationManager(IScheduler scheduler, IReputationManager reputationManager = default, IMemoryCache memoryCache = default, IChangeTokenProvider changeTokenProvider = default, ILogger logger = default) { return(new PeerMessageCorrelationManager( reputationManager ?? Substitute.For <IReputationManager>(), memoryCache ?? Substitute.For <IMemoryCache>(), logger ?? Substitute.For <ILogger>(), changeTokenProvider ?? new TtlChangeTokenProvider(3), scheduler)); }
public PeerMessageCorrelationManager(IReputationManager reputationManager, IMemoryCache cache, ILogger logger, IChangeTokenProvider changeTokenProvider, IScheduler scheduler = null) : base(cache, logger, changeTokenProvider) { var streamScheduler = scheduler ?? Scheduler.Default; _reputationEvent = new ReplaySubject <IPeerReputationChange>(0, streamScheduler); ReputationEventStream = _reputationEvent.AsObservable(); _evictionEvent = new ReplaySubject <KeyValuePair <ICorrelationId, PeerId> >(0, streamScheduler); EvictionEventStream = _evictionEvent.AsObservable(); reputationManager.MergeReputationStream(ReputationEventStream); }
protected MessageCorrelationManagerTests() { SubbedLogger = Substitute.For <ILogger>(); ChangeTokenProvider = Substitute.For <IChangeTokenProvider>(); var changeToken = Substitute.For <IChangeToken>(); ChangeTokenProvider.GetChangeToken().Returns(changeToken); Cache = Substitute.For <IMemoryCache>(); _senderPeerId = PeerIdHelper.GetPeerId("sender"); PeerIds = new[] { PeerIdHelper.GetPeerId("peer1"), PeerIdHelper.GetPeerId("peer2"), PeerIdHelper.GetPeerId("peer3") }; }