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

pdcomm::modbus::License

클래스

Modbus 라이브러리에 라이선스 텍스트를 설치하고, 라이선스 상태와 이 호스트의 ID를 읽는 정적 함수입니다.

class License

선언 위치: #include <pdcomm/modbus/pdcomm_modbus_license.hpp>

{"action":"connect"}에는 modbus 모듈 라이선스가 필요하고, 구성에서 Modbus/TCP Security를 켜면 modbus-security도 필요합니다. 라이선스가 없으면 Endpoint::call()이 "code":"license_required"가 들어 있는 오류 응답을 what()으로 돌려주는 std::runtime_error를 던지며, 이미 열린 연결은 계속 동작합니다. 여기서 설치한 라이선스는 PDCOMM_LICENSE(텍스트)와 PDCOMM_LICENSE_FILE(경로) 환경 변수, pdcomm.license 파일과 합쳐서 사용합니다. 각 함수는 임시 엔드포인트에서 명령을 실행하며, 모든 함수는 스레드에 안전합니다.

pdcomm::modbus::License::install(license_text);
std::cout << pdcomm::modbus::License::status() << '\n';

멤버

hostId

메서드

이 호스트의 ID PDH1-XXXX-XXXX-XXXX-XXXX를 반환합니다.

static std::string hostId()

선언 위치: #include <pdcomm/modbus/pdcomm_modbus_license.hpp>

반환값

호스트에 묶인 라이선스가 지정하는 호스트 ID입니다.

참고

  • 예외 std::runtime_error: 머신 ID를 읽을 수 없으면 "code":"host_id_unavailable"과 함께 발생합니다.

install

메서드

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

static void install(const std::string &text)

선언 위치: #include <pdcomm/modbus/pdcomm_modbus_license.hpp>

매개변수

이름설명
text-----BEGIN PDCOMM LICENSE----- 블록이 하나 이상 들어 있는 텍스트입니다. 블록 밖의 텍스트는 무시합니다. 빈 텍스트를 넘기면 설치한 텍스트를 제거합니다.

참고

  • 예외 std::runtime_error: 서명이 검증되는 블록이 없으면 "code":"license_invalid"가 들어 있는 오류 응답을 what()으로 돌려줍니다. 이전 텍스트는 그대로 설치되어 있습니다.

status

메서드

라이선스 상태를 JSON으로 반환합니다.

static std::string status()

선언 위치: #include <pdcomm/modbus/pdcomm_modbus_license.hpp>

반환값

상태 객체입니다. host_id, build_date, sources, verification이 붙은 licenses, 그리고 모듈마다 state, granted, days_left를 담은 modules가 들어 있습니다.

참고

  • 예외 std::runtime_error: 상태를 읽을 수 없으면 발생합니다.