Exemplo n.º 1
0
 public IDetailsListenerBuilder <TRequest, TResponse> OnThread(int threadId)
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.SpecificThread;
     _threadId     = threadId;
     return(this);
 }
Exemplo n.º 2
0
 public IDetailsSubscriptionBuilder <TPayload> OnDedicatedWorker()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType       = DispatchThreadType.SpecificThread;
     _useDedicatedThread = true;
     return(this);
 }
Exemplo n.º 3
0
 public IDetailsListenerBuilder <TRequest, TResponse> OnDedicatedWorker()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType       = DispatchThreadType.ThreadpoolThread;
     _useDedicatedThread = true;
     return(this);
 }
Exemplo n.º 4
0
 public IDetailsParticipantBuilder <TRequest, TResponse> OnDedicatedWorker()
 {
     ValidateDoesNotReadyHaveDispatchType();
     _dispatchType       = DispatchThreadType.SpecificThread;
     _useDedicatedThread = true;
     return(this);
 }
Exemplo n.º 5
0
 public IDetailsParticipantBuilder <TRequest, TResponse> OnThread(int threadId)
 {
     Assert.IsInRange(threadId, nameof(threadId), 1, 65535);
     ValidateDoesNotReadyHaveDispatchType();
     _dispatchType = DispatchThreadType.SpecificThread;
     _threadId     = threadId;
     return(this);
 }
Exemplo n.º 6
0
        public ParticipantBuilder(IScatterGatherBus messageBus, IWorkerPool workerPool)
        {
            Assert.ArgumentNotNull(messageBus, nameof(messageBus));
            Assert.ArgumentNotNull(workerPool, nameof(workerPool));

            _workerPool   = workerPool;
            _dispatchType = DispatchThreadType.NoPreference;
        }
Exemplo n.º 7
0
 public IDetailsSubscriptionBuilder <TPayload> OnThread(int threadId)
 {
     Assert.IsInRange(threadId, nameof(threadId), 0, 65355);
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.SpecificThread;
     _threadId     = threadId;
     return(this);
 }
Exemplo n.º 8
0
        public SubscriptionBuilder(IPubSubBus messageBus, IWorkerPool workerPool)
        {
            Assert.ArgumentNotNull(messageBus, nameof(messageBus));
            Assert.ArgumentNotNull(workerPool, nameof(workerPool));

            _dispatchType = DispatchThreadType.NoPreference;
            _workerPool   = workerPool;
            MessageBus    = messageBus;
            Topics        = null;
        }
Exemplo n.º 9
0
 public IDetailsParticipantBuilder <TRequest, TResponse> OnThreadPool()
 {
     ValidateDoesNotReadyHaveDispatchType();
     _dispatchType = DispatchThreadType.ThreadpoolThread;
     return(this);
 }
Exemplo n.º 10
0
        private ISubscription <TPayload> CreateBaseSubscription(ISubscriberReference <TPayload> actionReference, DispatchThreadType dispatchType, int threadId)
        {
            switch (dispatchType)
            {
            case DispatchThreadType.NoPreference:
                return(new AnyThreadPubSubSubscription <TPayload>(actionReference, _workerPool));

            case DispatchThreadType.AnyWorkerThread:
                return(new AnyThreadPubSubSubscription <TPayload>(actionReference, _workerPool));

            case DispatchThreadType.SpecificThread:
                return(new SpecificThreadPubSubSubscription <TPayload>(actionReference, threadId, _workerPool));

            case DispatchThreadType.ThreadpoolThread:
                return(new ThreadPoolThreadSubscription <TPayload>(_workerPool, actionReference));

            case DispatchThreadType.Immediate:
                return(new ImmediatePubSubSubscription <TPayload>(actionReference));

            default:
                return(new AnyThreadPubSubSubscription <TPayload>(actionReference, _workerPool));
            }
        }
Exemplo n.º 11
0
 public IDetailsSubscriptionBuilder <TPayload> Immediate()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.Immediate;
     return(this);
 }
Exemplo n.º 12
0
 public IDetailsSubscriptionBuilder <TPayload> OnWorker()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.AnyWorkerThread;
     return(this);
 }
Exemplo n.º 13
0
        private IListener <TRequest, TResponse> CreateListener(IListenerReference <TRequest, TResponse> reference, DispatchThreadType dispatchType, int threadId)
        {
            switch (dispatchType)
            {
            case DispatchThreadType.NoPreference:
                return(new AnyThreadListener <TRequest, TResponse>(reference, _workerPool));

            case DispatchThreadType.AnyWorkerThread:
                return(new AnyThreadListener <TRequest, TResponse>(reference, _workerPool));

            case DispatchThreadType.SpecificThread:
                return(new SpecificThreadListener <TRequest, TResponse>(reference, threadId, _workerPool));

            case DispatchThreadType.Immediate:
                return(new ImmediateListener <TRequest, TResponse>(reference));

            case DispatchThreadType.ThreadpoolThread:
                return(new ThreadPoolListener <TRequest, TResponse>(reference, _workerPool));

            default:
                return(new ImmediateListener <TRequest, TResponse>(reference));
            }
        }
Exemplo n.º 14
0
 public IDetailsListenerBuilder <TRequest, TResponse> OnThreadPool()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.ThreadpoolThread;
     return(this);
 }
Exemplo n.º 15
0
 public IDetailsListenerBuilder <TRequest, TResponse> OnWorker()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.AnyWorkerThread;
     return(this);
 }
Exemplo n.º 16
0
        private IParticipant <TRequest, TResponse> CreateParticipant(IParticipantReference <TRequest, TResponse> reference, DispatchThreadType dispatchType, int threadId, string name)
        {
            switch (dispatchType)
            {
            case DispatchThreadType.NoPreference:
                return(new AnyThreadParticipant <TRequest, TResponse>(reference, _workerPool, name));

            case DispatchThreadType.AnyWorkerThread:
                return(new AnyThreadParticipant <TRequest, TResponse>(reference, _workerPool, name));

            case DispatchThreadType.SpecificThread:
                return(new SpecificThreadParticipant <TRequest, TResponse>(reference, threadId, _workerPool, name));

            case DispatchThreadType.ThreadpoolThread:
                return(new ThreadPoolParticipant <TRequest, TResponse>(_workerPool, reference, name));

            case DispatchThreadType.Immediate:
                return(new ImmediateParticipant <TRequest, TResponse>(reference, name));

            default:
                return(new ImmediateParticipant <TRequest, TResponse>(reference, name));
            }
        }
Exemplo n.º 17
0
 public IDetailsSubscriptionBuilder <TPayload> OnThreadPool()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.ThreadpoolThread;
     return(this);
 }
Exemplo n.º 18
0
 public IDetailsParticipantBuilder <TRequest, TResponse> Immediate()
 {
     ValidateDoesNotReadyHaveDispatchType();
     _dispatchType = DispatchThreadType.Immediate;
     return(this);
 }
Exemplo n.º 19
0
 public IDetailsListenerBuilder <TRequest, TResponse> Immediate()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.Immediate;
     return(this);
 }