콘텐츠로 이동
무료 평가 시작

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 예외: 대상이 짧은 것 외의 이유로 네이티브 복사가 실패했습니다.