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

PDComm.HsmsEvent

클래스

HSMS 끝점에서 가져온 이벤트 하나입니다. 상태 변경, 수신 메시지, 실패 또는 오류입니다.

public sealed class HsmsEvent : IDisposable

무엇이 일어났는지 알아보려면 HsmsEvent.GetInfo를 호출합니다. 수신 메시지이면 HsmsEvent.GetBody, HsmsEvent.TryCopyBody 또는 HsmsEvent.DecodeBody로 본문을 읽고, 응답을 기대하는 1차 메시지에는 HsmsEndpoint.Reply 또는 HsmsWorker.ReplyAsync로 응답합니다.

이벤트는 데이터의 변경할 수 없는 네이티브 복사본을 소유하며, 이 복사본은 끝점을 해제한 뒤에도 유효합니다. 사용이 끝나면 이벤트를 해제합니다. 해제하지 않으면 종료자(finalizer)가 해제합니다. 모든 멤버는 스레드로부터 안전합니다.

멤버

DecodeBody

메서드

수신 메시지의 본문을 SECS-II 아이템으로 디코딩합니다.

public SecsItem? DecodeBody(SecsLimits limits)

매개변수

이름설명
limits디코딩된 아이템이 충족해야 하는 한도입니다.

반환값

호출자가 소유하며 해제해야 하는 새 아이템이거나, 이벤트에 본문이 없으면 null입니다.

참고

  • ObjectDisposedException 예외: 이벤트가 해제되었습니다.
  • PdcommException 예외: 본문을 복사할 수 없거나 limits 안에서 디코딩되지 않습니다. SecsItem.Decode를 참고합니다.

Dispose

메서드

이벤트의 네이티브 데이터를 해제합니다.

public void Dispose()

이 메서드를 여러 번 호출해도 효과가 없습니다.

GetBody

메서드

수신 메시지의 인코딩된 SECS-II 본문을 복사합니다.

public byte[] GetBody()

반환값

본문을 담은 새 배열입니다. 메시지에 본문이 없거나 이벤트가 메시지가 아니면 비어 있습니다.

참고

  • ObjectDisposedException 예외: 이벤트가 해제되었습니다.
  • PdcommException 예외: 네이티브 복사가 실패했습니다.

GetInfo

메서드

이벤트의 종류, 헤더, 토큰, 종류별 값을 가져옵니다.

public HsmsEventInfo GetInfo()

반환값

이벤트의 설명입니다.

참고

  • ObjectDisposedException 예외: 이벤트가 해제되었습니다.
  • PdcommException 예외: 네이티브 호출이 실패했습니다.

TryCopyBody

메서드

호출자가 제공한 범위가 충분히 크면 인코딩된 SECS-II 본문을 그 범위에 복사합니다.

public bool TryCopyBody(Span<byte> destination, out nuint required)

매개변수

이름설명
destination본문을 받는 범위입니다.
required이 메서드가 반환될 때 본문 크기(바이트)를 담습니다.

반환값

본문을 복사했으면 true이고, destination이 너무 작으면 false입니다. 이 경우 destination은 바뀌지 않습니다.

참고

  • ObjectDisposedException 예외: 이벤트가 해제되었습니다.
  • PdcommException 예외: 대상이 짧은 것 외의 이유로 네이티브 복사가 실패했습니다.