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

pdcomm_license_install

함수

이 라이브러리에 PDComm 라이선스 텍스트를 설치합니다.

PdcommStatus pdcomm_license_install(const uint8_t *text, size_t size)

선언 위치: #include <pdcomm.h>

텍스트에는 -----BEGIN PDCOMM LICENSE----- 블록이 하나 이상 들어 있으며, 블록 밖의 텍스트는 무시합니다. 이 함수로 이전에 설치한 텍스트를 교체하고, 다른 라이선스 소스와 합쳐서 사용합니다. 다른 소스는 PDCOMM_LICENSE 환경 변수(텍스트), PDCOMM_LICENSE_FILE(경로), 실행 파일 또는 이 라이브러리 옆의 pdcomm.license, 사용자 구성 디렉터리, 시스템 구성 디렉터리입니다. 빈 텍스트(size 0)를 넘기면 설치한 텍스트를 제거합니다.

서명이 유효한 블록이 하나 이상 있으면 그 라이선스가 만료되었거나 다른 호스트용이어도 텍스트를 받아들입니다. 그 결과로 정해진 모듈 상태는 pdcomm_license_status()가 보고합니다. 설치는 프로세스가 끝날 때까지 유지되며, 이 라이브러리에만 적용되고 Modbus나 OPC UA 라이브러리에는 적용되지 않습니다.

매개변수

이름설명
textNUL로 끝나지 않는 UTF-8 라이선스 텍스트입니다. size가 0이면 NULL일 수 있습니다.
sizetext의 바이트 수이며 최대 1048576입니다.

반환값

텍스트를 설치하거나 제거하면 #PDCOMM_OK를 반환합니다. size가 0이 아닌데 text가 NULL이거나, size가 1048576을 넘거나, 텍스트가 UTF-8이 아니면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 서명이 유효한 블록이 하나도 없으면 #PDCOMM_INVALID_DATA를 반환하며 이전 설치는 유지됩니다. 패닉(panic)을 격리했으면 #PDCOMM_INTERNAL_ERROR를 반환합니다.

참고

  • 스레드 안전성: 어느 스레드에서나 호출할 수 있습니다. 새로 설치해도 이미 실행 중인 엔드포인트는 영향을 받지 않습니다.
  • 호출이 반환된 뒤에는 어떤 포인터도 보관하지 않습니다.