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예외: 라이브러리가 상태를 보고하지 못했습니다.