Class AmazonBus<TRequest>
- Namespace
- Savvyio.Extensions.SimpleQueueService
- Assembly
- Savvyio.Extensions.SimpleQueueService.dll
Represents the base class from which all implementations in need of bus capabilities should derive.
public abstract class AmazonBus<TRequest> : AmazonMessage<TRequest>, IConfigurable<AmazonMessageOptions>, IPublishSubscribeChannel<TRequest>, IPublisher<TRequest>, ISubscriber<TRequest> where TRequest : IRequest
Type Parameters
TRequestThe type of the model to handle.
- Inheritance
-
AmazonMessage<TRequest>AmazonBus<TRequest>
- Implements
-
IPublishSubscribeChannel<TRequest>IPublisher<TRequest>ISubscriber<TRequest>
- Derived
- Inherited Members
Constructors
AmazonBus(IMarshaller, AmazonMessageOptions)
Initializes a new instance of the AmazonBus<TRequest> class.
protected AmazonBus(IMarshaller marshaller, AmazonMessageOptions options)
Parameters
marshallerIMarshallerThe IMarshaller that is used when converting models to messages.
optionsAmazonMessageOptionsThe AmazonMessageOptions used to configure this instance.
Exceptions
- ArgumentNullException
marshallercannot be null - or -optionscannot be null.- ArgumentException
optionsare not in a valid state.
Methods
PublishAsync(IMessage<TRequest>, Action<AsyncOptions>)
Publishes the specified message asynchronous using Publish-Subscribe Channel/Pub-Sub MEP.
public abstract Task PublishAsync(IMessage<TRequest> message, Action<AsyncOptions> setup = null)
Parameters
messageIMessage<TRequest>The message to publish.
setupAction<AsyncOptions>The AsyncOptions which may be configured.
Returns
SubscribeAsync(Func<IMessage<TRequest>, CancellationToken, Task>, Action<SubscribeAsyncOptions>)
Subscribe to one or more message(s) asynchronous using Publish-Subscribe Channel/Pub-Sub MEP.
public abstract Task SubscribeAsync(Func<IMessage<TRequest>, CancellationToken, Task> asyncHandler, Action<SubscribeAsyncOptions> setup = null)
Parameters
asyncHandlerFunc<IMessage<TRequest>, CancellationToken, Task>The function delegate that will handle the message.
setupAction<SubscribeAsyncOptions>The SubscribeAsyncOptions which may be configured.
Returns
See Also
AmazonMessage<TRequest>
IPublishSubscribeChannel<TRequest>