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