PDComm.PdcommBuffer
클래스
PDComm 네이티브 라이브러리가 소유하는 변경할 수 없는 바이트 버퍼입니다.
public sealed class PdcommBuffer : IDisposable버퍼에는 PdcommBuffer.Create에 전달한 바이트의 복사본이 들어 있습니다. 네이티브 메모리를 해제하려면 버퍼를 해제합니다. 해제하지 않으면 종료자(finalizer)가 해제합니다.
읽기(PdcommBuffer.ToArray와 PdcommBuffer.TryCopy)는 여러 스레드에서 동시에 실행할 수 있습니다. 해제는 진행 중인 읽기가 끝날 때까지 기다린 뒤 네이티브 메모리를 해제합니다.
멤버
Create
메서드
새 네이티브 버퍼에 바이트를 복사합니다.
public static PdcommBuffer Create(ReadOnlySpan<byte> data, nuint maxBytes)바인딩을 처음 호출하면 필요한 경우 PdcommRuntime이 초기화됩니다.
매개변수
| 이름 | 설명 |
|---|---|
data | 복사할 바이트입니다. 비어 있을 수 있습니다. |
maxBytes | 허용하는 최대 길이(바이트)입니다. 프로토콜 상수가 아니라 애플리케이션 정책입니다. |
반환값
호출자가 소유하며 해제해야 하는 새 버퍼입니다.
참고
PdcommException예외:data가maxBytes보다 길거나(PdcommStatus.LimitExceeded) 네이티브 할당이 실패했습니다.
Dispose
메서드
네이티브 버퍼를 해제합니다.
public void Dispose()이 메서드를 여러 번 호출해도 효과가 없습니다.
ToArray
메서드
버퍼의 내용을 새 배열에 복사합니다.
public byte[] ToArray()반환값
버퍼의 바이트를 담은 새 배열입니다.
참고
ObjectDisposedException예외: 버퍼가 해제되었습니다.PdcommException예외: 네이티브 복사가 실패했습니다.
TryCopy
메서드
호출자가 제공한 범위가 충분히 크면 버퍼의 내용을 그 범위에 복사합니다.
public bool TryCopy(Span<byte> destination, out nuint required)매개변수
| 이름 | 설명 |
|---|---|
destination | 바이트를 받는 범위입니다. |
required | 이 메서드가 반환될 때 버퍼의 길이(바이트)를 담습니다. |
반환값
바이트를 복사했으면 true이고, destination이 너무 작으면 false입니다. 이 경우 destination은 바뀌지 않습니다.
참고
ObjectDisposedException예외: 버퍼가 해제되었습니다.PdcommException예외: 대상이 짧은 것 외의 이유로 네이티브 복사가 실패했습니다.