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

            _workerPool   = workerPool;
            _dispatchType = DispatchThreadType.NoPreference;
        }
Example #7
0
 public IDetailsSubscriptionBuilder <TPayload> OnThread(int threadId)
 {
     Assert.IsInRange(threadId, nameof(threadId), 0, 65355);
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.SpecificThread;
     _threadId     = threadId;
     return(this);
 }
Example #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;
        }
Example #9
0
 public IDetailsParticipantBuilder <TRequest, TResponse> OnThreadPool()
 {
     ValidateDoesNotReadyHaveDispatchType();
     _dispatchType = DispatchThreadType.ThreadpoolThread;
     return(this);
 }
Example #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));
            }
        }
Example #11
0
 public IDetailsSubscriptionBuilder <TPayload> Immediate()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.Immediate;
     return(this);
 }
Example #12
0
 public IDetailsSubscriptionBuilder <TPayload> OnWorker()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.AnyWorkerThread;
     return(this);
 }
Example #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));
            }
        }
Example #14
0
 public IDetailsListenerBuilder <TRequest, TResponse> OnThreadPool()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.ThreadpoolThread;
     return(this);
 }
Example #15
0
 public IDetailsListenerBuilder <TRequest, TResponse> OnWorker()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.AnyWorkerThread;
     return(this);
 }
Example #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));
            }
        }
Example #17
0
 public IDetailsSubscriptionBuilder <TPayload> OnThreadPool()
 {
     ValidateDoesNotHaveDispatchType();
     _dispatchType = DispatchThreadType.ThreadpoolThread;
     return(this);
 }
Example #18
0
 public IDetailsParticipantBuilder <TRequest, TResponse> Immediate()
 {
     ValidateDoesNotReadyHaveDispatchType();
     _dispatchType = DispatchThreadType.Immediate;
     return(this);
 }
Example #19
0
 public IDetailsListenerBuilder <TRequest, TResponse> Immediate()
 {
     ValidateDoesNotAlreadyHaveDispatchType();
     _dispatchType = DispatchThreadType.Immediate;
     return(this);
 }