Dreamine.Communication.Core 1.0.2
Dreamine.Communication.Core 통신 기능과 관련 API를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.Communication.Core.Buses.InMemoryMessageBus 클래스 참조sealed

더 자세히 ...

Dreamine.Communication.Core.Buses.InMemoryMessageBus에 대한 상속 다이어그램 :
Dreamine.Communication.Core.Buses.InMemoryMessageBus에 대한 협력 다이어그램:

Public 멤버 함수

Task ConnectAsync (CancellationToken cancellationToken=default)
async Task PublishAsync (MessageEnvelope message, CancellationToken cancellationToken=default)
Task SubscribeAsync (string route, Func< MessageEnvelope, CancellationToken, Task > handler, CancellationToken cancellationToken=default)
Task DisconnectAsync (CancellationToken cancellationToken=default)
ValueTask DisposeAsync ()

속성

ConnectionState State = ConnectionState.Disconnected [get, private set]
TransportKind Kind [get]

Private 속성

readonly ConcurrentDictionary< string, List< Func< MessageEnvelope, CancellationToken, Task > > > _handlers = new()

상세한 설명

프로세스 메모리 안에서 라우트별 메시지를 발행하고 구독하는 메시지 버스입니다.

InMemoryMessageBus.cs 파일의 20 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ ConnectAsync()

Task Dreamine.Communication.Core.Buses.InMemoryMessageBus.ConnectAsync ( CancellationToken cancellationToken = default)
inline

메모리 메시지 버스를 연결 상태로 전환합니다.

매개변수
cancellationToken연결 작업 취소 요청을 감시하는 토큰입니다.
반환값
완료된 비동기 연결 작업입니다.
예외
OperationCanceledException작업 취소가 요청된 경우 발생합니다.

InMemoryMessageBus.cs 파일의 84 번째 라인에서 정의되었습니다.

85 {
86 cancellationToken.ThrowIfCancellationRequested();
87 State = ConnectionState.Connected;
88 return Task.CompletedTask;
89 }

다음을 참조함 : State.

◆ DisconnectAsync()

Task Dreamine.Communication.Core.Buses.InMemoryMessageBus.DisconnectAsync ( CancellationToken cancellationToken = default)
inline

메모리 메시지 버스를 연결 해제 상태로 전환합니다.

매개변수
cancellationToken연결 해제 작업 취소 요청을 감시하는 토큰입니다.
반환값
완료된 비동기 연결 해제 작업입니다.
예외
OperationCanceledException작업 취소가 요청된 경우 발생합니다.

InMemoryMessageBus.cs 파일의 294 번째 라인에서 정의되었습니다.

295 {
296 cancellationToken.ThrowIfCancellationRequested();
297 State = ConnectionState.Disconnected;
298 return Task.CompletedTask;
299 }

다음을 참조함 : State.

◆ DisposeAsync()

ValueTask Dreamine.Communication.Core.Buses.InMemoryMessageBus.DisposeAsync ( )
inline

등록된 처리기를 제거하고 버스를 연결 해제 상태로 전환합니다.

반환값
완료된 비동기 해제 작업입니다.

InMemoryMessageBus.cs 파일의 317 번째 라인에서 정의되었습니다.

318 {
319 _handlers.Clear();
320 State = ConnectionState.Disconnected;
321 return ValueTask.CompletedTask;
322 }

다음을 참조함 : _handlers, State.

◆ PublishAsync()

async Task Dreamine.Communication.Core.Buses.InMemoryMessageBus.PublishAsync ( MessageEnvelope message,
CancellationToken cancellationToken = default )
inline

메시지 라우트에 등록된 모든 처리기에 메시지를 비동기적으로 발행합니다.

매개변수
message발행할 메시지입니다.
cancellationToken처리기 실행 취소 요청을 감시하는 토큰입니다.
반환값
등록된 처리기의 비동기 실행 작업입니다.
예외
ArgumentNullExceptionmessagenull인 경우 발생합니다.
InvalidOperationException메시지 버스가 연결되지 않은 경우 발생합니다.
OperationCanceledException작업 취소가 요청된 경우 발생합니다.

InMemoryMessageBus.cs 파일의 147 번째 라인에서 정의되었습니다.

150 {
151 ArgumentNullException.ThrowIfNull(message);
152
153 if (State != ConnectionState.Connected)
154 {
155 throw new InvalidOperationException("The message bus is not connected.");
156 }
157
158 if (!_handlers.TryGetValue(message.Route, out var handlers))
159 {
160 return;
161 }
162
163 List<Func<MessageEnvelope, CancellationToken, Task>> snapshot;
164
165 lock (handlers)
166 {
167 snapshot = new List<Func<MessageEnvelope, CancellationToken, Task>>(handlers);
168 }
169
170 foreach (var handler in snapshot)
171 {
172 cancellationToken.ThrowIfCancellationRequested();
173 await handler(message, cancellationToken).ConfigureAwait(false);
174 }
175 }

다음을 참조함 : _handlers, State.

◆ SubscribeAsync()

Task Dreamine.Communication.Core.Buses.InMemoryMessageBus.SubscribeAsync ( string route,
Func< MessageEnvelope, CancellationToken, Task > handler,
CancellationToken cancellationToken = default )
inline

지정한 라우트에 비동기 메시지 처리기를 등록합니다.

매개변수
route구독할 메시지 라우트입니다.
handler수신 메시지를 처리할 비동기 대리자입니다.
cancellationToken구독 작업 취소 요청을 감시하는 토큰입니다.
반환값
완료된 비동기 구독 작업입니다.
예외
ArgumentExceptionroute 가 비어 있는 경우 발생합니다.
ArgumentNullExceptionhandlernull인 경우 발생합니다.
OperationCanceledException작업 취소가 요청된 경우 발생합니다.

InMemoryMessageBus.cs 파일의 241 번째 라인에서 정의되었습니다.

245 {
246 ArgumentException.ThrowIfNullOrWhiteSpace(route);
247 ArgumentNullException.ThrowIfNull(handler);
248 cancellationToken.ThrowIfCancellationRequested();
249
250 var handlers = _handlers.GetOrAdd(
251 route,
252 _ => new List<Func<MessageEnvelope, CancellationToken, Task>>());
253
254 lock (handlers)
255 {
256 handlers.Add(handler);
257 }
258
259 return Task.CompletedTask;
260 }

다음을 참조함 : _handlers.

멤버 데이터 문서화

◆ _handlers

readonly ConcurrentDictionary<string, List<Func<MessageEnvelope, CancellationToken, Task> > > Dreamine.Communication.Core.Buses.InMemoryMessageBus._handlers = new()
private

handlers 값을 보관합니다.

InMemoryMessageBus.cs 파일의 30 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : DisposeAsync(), PublishAsync(), SubscribeAsync().

속성 문서화

◆ Kind

TransportKind Dreamine.Communication.Core.Buses.InMemoryMessageBus.Kind
get

메모리 내부 전송 방식을 가져옵니다.

InMemoryMessageBus.cs 파일의 50 번째 라인에서 정의되었습니다.

◆ State

ConnectionState Dreamine.Communication.Core.Buses.InMemoryMessageBus.State = ConnectionState.Disconnected
getprivate set

메시지 버스의 현재 연결 상태를 가져옵니다.

InMemoryMessageBus.cs 파일의 40 번째 라인에서 정의되었습니다.

40{ get; private set; } = ConnectionState.Disconnected;

다음에 의해서 참조됨 : ConnectAsync(), DisconnectAsync(), DisposeAsync(), PublishAsync().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: