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

PDComm.Gem300CapabilityCatalog

클래스

리비전이 관리되는 GEM300 기능 프로필의 로컬 카탈로그입니다.

public sealed class Gem300CapabilityCatalog : GemOwnedSnapshot

카탈로그는 네이티브 메모리에 보관되는 애플리케이션 메타데이터입니다. 끝점에 연결되지 않으며 메시지를 보내지 않습니다. 리비전 0의 빈 상태로 시작하며, 내용을 바꾸는 변경이 있을 때마다 리비전이 1씩 증가합니다.

한 카탈로그에 대한 호출은 내부 잠금으로 직렬화됩니다. 사용이 끝나면 카탈로그를 해제합니다. 카탈로그에서 가져온 스냅샷은 카탈로그가 변경되거나 해제된 뒤에도 유효합니다.

멤버

Gem300CapabilityCatalog

생성자

지정한 한도로 빈 카탈로그를 만듭니다.

public Gem300CapabilityCatalog(Gem300CapabilityOptions options)

매개변수

이름설명
options카탈로그 한도입니다. 모든 한도는 0이 아니어야 하고, Gem300CapabilityOptions.MaxCapabilitiesPerProfile은 4를 넘을 수 없습니다.

참고

  • ArgumentNullException 예외: options가 null입니다.
  • NotSupportedException 예외: 로드된 네이티브 라이브러리가 GEM300 기능 카탈로그 함수를 내보내지 않습니다.
  • PdcommException 예외: 한도가 0이거나 Gem300CapabilityOptions.MaxCapabilitiesPerProfile이 4를 넘으면 PdcommStatus.LimitExceeded입니다.

Clear

메서드

카탈로그에서 모든 프로필을 제거합니다.

public Gem300CatalogChange Clear()

반환값

호출 후의 리비전과 제거된 것이 있는지 여부입니다. 빈 카탈로그를 지우면 아무것도 바뀌지 않습니다.

참고

  • ObjectDisposedException 예외: 카탈로그가 해제되었습니다.
  • PdcommException 예외: 네이티브 라이브러리가 호출을 거부했습니다.

GetInfo

메서드

카탈로그의 리비전과 크기를 가져옵니다.

public Gem300CapabilityCatalogInfo GetInfo()

반환값

리비전, 프로필 수와 기능 수, 식별자 전체 바이트 수입니다.

참고

  • ObjectDisposedException 예외: 카탈로그가 해제되었습니다.
  • PdcommException 예외: 네이티브 라이브러리가 호출을 거부했습니다.

Replace

메서드

카탈로그 전체를 지정한 프로필로 교체합니다.

public Gem300CatalogChange Replace(IReadOnlyList<Gem300CapabilityProfile> profiles)

입력은 전체 단위로 검증되고 복사됩니다. 호출이 실패하면 카탈로그는 바뀌지 않습니다.

매개변수

이름설명
profiles순서대로 나열한 프로필입니다. 빈 목록을 전달하면 카탈로그가 지워집니다.

반환값

새 리비전과 내용이 바뀌었는지 여부입니다. 같은 내용으로 카탈로그를 교체하면 아무것도 바뀌지 않습니다.

참고

  • ArgumentNullException 예외: profiles, 프로필, 기능 또는 식별자가 null입니다.
  • ArgumentException 예외: 식별자에 잘못된 UTF-16 서로게이트 시퀀스가 있습니다.
  • ObjectDisposedException 예외: 카탈로그가 해제되었습니다.
  • PdcommException 예외: 프로필에 기능이 없거나, 식별자가 비어 있거나 0x21~0x7E 범위 밖의 바이트를 포함하거나, 프로필 식별자가 반복되거나, 한 프로필 안에서 기능 식별자나 축이 반복되거나, 열거형 값이 정의되지 않았으면 PdcommStatus.InvalidArgument입니다. 프로필이 카탈로그 한도를 초과하면 PdcommStatus.LimitExceeded입니다.

Snapshot

메서드

카탈로그의 변경할 수 없는 복사본을 만듭니다.

public Gem300CapabilitySnapshot Snapshot()

스냅샷은 카탈로그가 교체되거나 지워지거나 해제된 뒤에도 유효합니다.

반환값

현재 내용과 리비전의 스냅샷입니다. 호출자가 소유하며 해제해야 합니다.

참고

  • ObjectDisposedException 예외: 카탈로그가 해제되었습니다.
  • PdcommException 예외: 네이티브 라이브러리가 카탈로그를 복사하지 못했습니다.