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

PDComm.License

클래스

SECS/GEM 네이티브 라이브러리의 PDComm 라이선스를 설치하고 확인합니다.

public static class License

새 SECS/GEM 통신을 시작하려면 해당 모듈을 허가하는 라이선스가 필요합니다. HSMS 엔드포인트 생성, 정지된 엔드포인트 시작, SECS-I 엔드포인트 생성과 시작(secs-gem), GEM300 기능 카탈로그 생성과 교체(gem300)가 여기에 해당합니다. 라이선스가 없으면 이 호출들은 PdcommStatus.LicenseRequired가 담긴 PdcommException을 던집니다. 이미 실행 중인 엔드포인트는 멈추지 않습니다.

라이브러리는 모든 라이선스 소스를 합쳐서 사용합니다. License.Install에 넘긴 텍스트, PDCOMM_LICENSE(텍스트)와 PDCOMM_LICENSE_FILE(경로) 환경 변수, 애플리케이션 또는 네이티브 라이브러리 옆의 pdcomm.license 파일, 사용자와 시스템 구성 디렉터리입니다. SECS/GEM 런타임 라이선스는 호스트 ID에 묶이며, 이 머신의 ID는 License.HostId로 읽습니다.

설치한 텍스트는 SECS/GEM 라이브러리에만 적용됩니다. 모든 멤버는 스레드에 안전합니다.

PDComm.PdcommRuntime.Initialize(args[0]);
PDComm.License.Install(File.ReadAllText("pdcomm.license"));
Console.WriteLine(PDComm.License.HostId());
Console.WriteLine(PDComm.License.Status().GetProperty("modules").GetProperty("secs-gem").GetProperty("state"));

멤버

HostId

메서드

SECS/GEM 런타임 라이선스에 들어가는 이 머신의 호스트 ID PDH1-XXXX-XXXX-XXXX-XXXX를 가져옵니다.

public static string HostId()

반환값

호스트 ID입니다.

참고

  • NotSupportedException 예외: 로드된 네이티브 라이브러리가 라이선스 API를 내보내지 않습니다.
  • PdcommException 예외: 운영체제 머신 ID를 읽을 수 없으면 PdcommStatus.IoError입니다.

Install

메서드

라이선스 텍스트를 설치하고, 이 메서드로 이전에 설치한 텍스트를 교체합니다.

public static void Install(string text)

매개변수

이름설명
text-----BEGIN PDCOMM LICENSE----- 블록이 하나 이상 들어 있는 최대 1 MiB의 UTF-8 라이선스 텍스트입니다. 빈 문자열을 넘기면 설치한 텍스트를 제거합니다.

참고

  • ArgumentNullException 예외: text가 null입니다.
  • NotSupportedException 예외: 로드된 네이티브 라이브러리가 라이선스 API를 내보내지 않습니다.
  • PdcommException 예외: 서명이 유효한 블록이 없으면 PdcommStatus.InvalidData이며 이전 설치는 유지됩니다. 텍스트가 1 MiB보다 크면 PdcommStatus.InvalidArgument입니다.

Status

메서드

SECS/GEM 라이브러리의 라이선스 상태를 가져옵니다.

public static JsonElement Status()

반환값

build_date, host_id, program, 찾은 라이선스 sources, verification 결과가 붙은 모든 라이선스 블록 licenses, 그리고 modules에 모듈마다 state(licensed, evaluation, missing, expired, not-yet-valid, updates-expired, program-mismatch, host-mismatch 중 하나), granted, days_left가 들어 있는 JSON 객체입니다.

참고

  • NotSupportedException 예외: 로드된 네이티브 라이브러리가 라이선스 API를 내보내지 않습니다.
  • PdcommException 예외: 라이브러리가 상태를 보고하지 못했습니다.