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

pdcomm_gem_configure_programs

함수

GEM 엔드포인트에 공정 프로그램(process program) 저장소를 연결합니다.

PdcommStatus pdcomm_gem_configure_programs(PdcommTcpEndpoint *endpoint, const PdcommGemProgramOptions *options, const char *path, size_t path_length)

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

엔드포인트가 정지된 동안, GEM 호스트 또는 장비 역할을 구성한 뒤 한 번 호출합니다. NULL과 0인 path_length를 전달하면 저장소는 RAM에 있습니다. 경로를 지정하면 저장소는 <path>.lock에 대한 배타적 잠금 아래에서 크기가 제한된 스냅샷 파일을 열고 검증합니다. 상위 디렉터리는 이미 있어야 합니다. 파일이 없으면 빈 저장소로 시작하며, 첫 변경 때 파일을 기록합니다. 열기나 로드에 실패하면 저장소를 연결하지 않으며, 손상된 파일을 빈 카탈로그로 덮어쓰지 않습니다.

매개변수

이름설명
endpointGEM 호스트 또는 장비로 구성된 Stopped 상태의 엔드포인트입니다.
options한도와 정책입니다. version은 #PDCOMM_GEM_PROGRAM_OPTIONS_VERSION이고 reserved는 0이어야 합니다.
path끝에 NUL이 없는 UTF-8 스냅샷 경로이거나, RAM이면 NULL입니다. 중간에 NUL 바이트가 있으면 거부합니다.
path_lengthpath의 길이(바이트)입니다. 0이면 RAM을 선택합니다.

반환값

성공하면 #PDCOMM_OK를 반환합니다. endpoint 또는 options가 NULL이거나, struct_size가 너무 작거나, version 또는 reserved가 잘못되었거나, 허가 정책을 알 수 없거나, 길이가 0이 아닌데 path가 NULL이거나, 경로가 올바른 UTF-8이 아니거나 NUL을 포함하거나 파일 이름이 없으면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔드포인트가 정지 상태가 아니거나, GEM이 구성되지 않았거나, 프로그램 저장소가 이미 연결되어 있으면 #PDCOMM_INVALID_STATE를 반환합니다. 준비된 TCP 이벤트(staged event)가 대기 중이거나 다른 소유자가 스냅샷 잠금을 잡고 있으면 #PDCOMM_BACKPRESSURE를 반환합니다. 파일이 max_serialized_bytes를 넘거나 내용이 저장소 한도를 넘으면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 스냅샷이 손상되었으면 #PDCOMM_INVALID_DATA를 반환합니다. 파일 시스템 오류이면 #PDCOMM_IO_ERROR를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED 또는 #PDCOMM_POISONED를 반환할 수 있습니다.

참고

  • 스냅샷 잠금은 엔드포인트가 해제될 때까지 유지됩니다.