pdcomm_license_install
함수
이 라이브러리에 PDComm 라이선스 텍스트를 설치합니다.
PdcommStatus pdcomm_license_install(const uint8_t *text, size_t size)텍스트에는 -----BEGIN PDCOMM LICENSE----- 블록이 하나 이상 들어 있으며, 블록 밖의 텍스트는 무시합니다. 이 함수로 이전에 설치한 텍스트를 교체하고, 다른 라이선스 소스와 합쳐서 사용합니다. 다른 소스는 PDCOMM_LICENSE 환경 변수(텍스트), PDCOMM_LICENSE_FILE(경로), 실행 파일 또는 이 라이브러리 옆의 pdcomm.license, 사용자 구성 디렉터리, 시스템 구성 디렉터리입니다. 빈 텍스트(size 0)를 넘기면 설치한 텍스트를 제거합니다.
서명이 유효한 블록이 하나 이상 있으면 그 라이선스가 만료되었거나 다른 호스트용이어도 텍스트를 받아들입니다. 그 결과로 정해진 모듈 상태는 pdcomm_license_status()가 보고합니다. 설치는 프로세스가 끝날 때까지 유지되며, 이 라이브러리에만 적용되고 Modbus나 OPC UA 라이브러리에는 적용되지 않습니다.
매개변수
| 이름 | 설명 |
|---|---|
text | NUL로 끝나지 않는 UTF-8 라이선스 텍스트입니다. size가 0이면 NULL일 수 있습니다. |
size | text의 바이트 수이며 최대 1048576입니다. |
반환값
텍스트를 설치하거나 제거하면 #PDCOMM_OK를 반환합니다. size가 0이 아닌데 text가 NULL이거나, size가 1048576을 넘거나, 텍스트가 UTF-8이 아니면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 서명이 유효한 블록이 하나도 없으면 #PDCOMM_INVALID_DATA를 반환하며 이전 설치는 유지됩니다. 패닉(panic)을 격리했으면 #PDCOMM_INTERNAL_ERROR를 반환합니다.
참고
- 스레드 안전성: 어느 스레드에서나 호출할 수 있습니다. 새로 설치해도 이미 실행 중인 엔드포인트는 영향을 받지 않습니다.
- 호출이 반환된 뒤에는 어떤 포인터도 보관하지 않습니다.