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

더 자세히 ...

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

Public 멤버 함수

 RawAvailableMessageFrameCodec ()
 RawAvailableMessageFrameCodec (int bufferSize)
async Task WriteFrameAsync (Stream stream, byte[] payload, CancellationToken cancellationToken=default)
async Task< byte[]?> ReadFrameAsync (Stream stream, CancellationToken cancellationToken=default)

Private 속성

readonly int _bufferSize

상세한 설명

현재 수신 가능한 바이트를 즉시 하나의 원시 메시지 프레임으로 처리합니다.

TCP 자체에는 메시지 경계가 없으므로 테스트 도구나 단순 문자열 통신을 위한 호환 모드입니다. 업무 프로토콜에는 길이 접두사 또는 구분자 코덱을 권장합니다.

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

생성자 & 소멸자 문서화

◆ RawAvailableMessageFrameCodec() [1/2]

Dreamine.Communication.Core.Framing.RawAvailableMessageFrameCodec.RawAvailableMessageFrameCodec ( )
inline

기본 8KiB 수신 버퍼로 코덱을 초기화합니다.

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

42 : this(8192)
43 {
44 }

◆ RawAvailableMessageFrameCodec() [2/2]

Dreamine.Communication.Core.Framing.RawAvailableMessageFrameCodec.RawAvailableMessageFrameCodec ( int bufferSize)
inline

지정한 수신 버퍼 크기로 코덱을 초기화합니다.

매개변수
bufferSize한 번의 읽기에 사용할 최대 버퍼 바이트 수입니다.
예외
ArgumentOutOfRangeException값이 0 이하인 경우 발생합니다.

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

71 {
72 if (bufferSize <= 0)
73 {
74 throw new ArgumentOutOfRangeException(nameof(bufferSize));
75 }
76
77 _bufferSize = bufferSize;
78 }

다음을 참조함 : _bufferSize.

멤버 함수 문서화

◆ ReadFrameAsync()

async Task< byte[]?> Dreamine.Communication.Core.Framing.RawAvailableMessageFrameCodec.ReadFrameAsync ( Stream stream,
CancellationToken cancellationToken = default )
inline

스트림에서 현재 수신 가능한 데이터를 한 번 읽어 하나의 프레임으로 반환합니다.

매개변수
stream읽을 스트림입니다.
cancellationToken읽기 취소 요청을 감시하는 토큰입니다.
반환값
읽은 바이트이며, 스트림이 종료되면 null입니다.
예외
ArgumentNullExceptionstreamnull인 경우 발생합니다.
OperationCanceledException작업 취소가 요청된 경우 발생할 수 있습니다.

Dreamine.Communication.Core.Framing.IMessageFrameCodec를 구현.

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

199 {
200 ArgumentNullException.ThrowIfNull(stream);
201
202 var buffer = ArrayPool<byte>.Shared.Rent(_bufferSize);
203
204 try
205 {
206 var read = await stream.ReadAsync(
207 buffer.AsMemory(0, _bufferSize),
208 cancellationToken)
209 .ConfigureAwait(false);
210
211 if (read == 0)
212 {
213 return null;
214 }
215
216 var payload = new byte[read];
217 Buffer.BlockCopy(buffer, 0, payload, 0, read);
218
219 return payload;
220 }
221 finally
222 {
223 ArrayPool<byte>.Shared.Return(buffer);
224 }
225 }

다음을 참조함 : _bufferSize.

◆ WriteFrameAsync()

async Task Dreamine.Communication.Core.Framing.RawAvailableMessageFrameCodec.WriteFrameAsync ( Stream stream,
byte[] payload,
CancellationToken cancellationToken = default )
inline

길이 또는 구분자를 추가하지 않고 페이로드를 그대로 비동기 기록합니다.

매개변수
stream기록할 스트림입니다.
payload그대로 기록할 메시지 데이터입니다.
cancellationToken쓰기 취소 요청을 감시하는 토큰입니다.
반환값
비동기 쓰기 작업입니다.
예외
ArgumentNullException스트림 또는 페이로드가 null인 경우 발생합니다.
OperationCanceledException작업 취소가 요청된 경우 발생할 수 있습니다.

Dreamine.Communication.Core.Framing.IMessageFrameCodec를 구현.

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

140 {
141 ArgumentNullException.ThrowIfNull(stream);
142 ArgumentNullException.ThrowIfNull(payload);
143
144 await stream.WriteAsync(payload, cancellationToken).ConfigureAwait(false);
145 await stream.FlushAsync(cancellationToken).ConfigureAwait(false);
146 }

멤버 데이터 문서화

◆ _bufferSize

readonly int Dreamine.Communication.Core.Framing.RawAvailableMessageFrameCodec._bufferSize
private

buffer Size 값을 보관합니다.

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

다음에 의해서 참조됨 : RawAvailableMessageFrameCodec(), ReadFrameAsync().


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