-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathIMessageAdapter.cs
More file actions
61 lines (54 loc) · 2.46 KB
/
IMessageAdapter.cs
File metadata and controls
61 lines (54 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using ViennaNET.Messaging.Configuration;
using ViennaNET.Messaging.Messages;
using ViennaNET.Utils;
namespace ViennaNET.Messaging
{
/// <summary>
/// Описывает возможности, адаптера обмена сообщениями
/// </summary>
public interface IMessageAdapter : IDisposable
{
/// <summary>
/// Признак что адаптер подключен к очереди
/// </summary>
bool IsConnected { get; }
/// <summary>
/// Конфигурация адаптера
/// </summary>
QueueConfigurationBase Configuration { get; }
/// <summary>
/// Подключение к очереди
/// </summary>
void Connect();
/// <summary>
/// Отключиться от очереди
/// </summary>
void Disconnect();
/// <summary>
/// Отправка сообщения
/// </summary>
/// <param name="message">Отправка сообщения</param>
/// <returns>Отправить сообщение с дополнительной информацией</returns>
BaseMessage Send(BaseMessage message);
/// <summary>
/// Получить сообщение из очереди
/// </summary>
/// <param name="correlationId">Correlation id сообщения</param>
/// <param name="timeout">Время ожидания для запроса сообщения</param>
/// <param name="additionalParameters">Дополнительные параметры для приема сообщения</param>
/// <returns>Полученное сообщение</returns>
BaseMessage Receive(string correlationId = null, TimeSpan? timeout = null,
params (string Name, string Value)[] additionalParameters);
/// <summary>
/// Получить сообщение из очереди
/// </summary>
/// <param name="correlationId">Correlation id сообщения</param>
/// <param name="timeout">Время ожидания для запроса сообщения</param>
/// <param name="additionalParameters">Дополнительные параметры для приема сообщения</param>
/// <param name="message">Полученное сообщение</param>
bool TryReceive(
[CanBeNull] out BaseMessage message, [CanBeNull] string correlationId = null, TimeSpan? timeout = null,
params (string Name, string Value)[] additionalParameters);
}
}