Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="Chinchilla Software Limited">
4 : // // Copyright Chinchilla Software Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System;
10 : using cdmdotnet.Logging;
11 : using Cqrs.Configuration;
12 : using Cqrs.Messages;
13 :
14 : namespace Cqrs.Bus
15 : {
16 : /// <summary>
17 : /// A helper for command and event buses.
18 : /// </summary>
19 : public interface IBusHelper
20 : {
21 : /// <summary>
22 : /// Checks if a white-list or black-list approach is taken, then checks the <see cref="IConfigurationManager"/> to see if a key exists defining if the event is required or not.
23 : /// If the event is required and it cannot be resolved, an error will be raised.
24 : /// Otherwise the event will be marked as processed.
25 : /// </summary>
26 : /// <param name="messageType">The <see cref="Type"/> of the message being processed.</param>
27 1 : bool IsEventRequired(Type messageType);
28 :
29 : /// <summary>
30 : /// Checks if a white-list or black-list approach is taken, then checks the <see cref="IConfigurationManager"/> to see if a key exists defining if the event is required or not.
31 : /// If the event is required and it cannot be resolved, an error will be raised.
32 : /// Otherwise the event will be marked as processed.
33 : /// </summary>
34 : /// <param name="configurationKey">The configuration key to check.</param>
35 3 : bool IsEventRequired(string configurationKey);
36 :
37 : /// <summary>
38 : /// Build a message handler that implements telemetry capturing as well as off thread handling.
39 : /// </summary>
40 : Action<TMessage> BuildTelemeteredActionHandler<TMessage, TAuthenticationToken>(ITelemetryHelper telemetryHelper, Action<TMessage> handler, bool holdMessageLock, string source)
41 : where TMessage : IMessage;
42 :
43 : /// <summary>
44 : /// Build a message handler that implements telemetry capturing as well as off thread handling.
45 : /// </summary>
46 : Action<TMessage> BuildActionHandler<TMessage>(Action<TMessage> handler, bool holdMessageLock)
47 : where TMessage : IMessage;
48 : }
49 : }
|