pdcomm_gem_program_at
함수
저장된 프로그램 하나를 위치로 지정해 복사합니다.
PdcommStatus pdcomm_gem_program_at(PdcommTcpEndpoint *endpoint, size_t index, PdcommSecsItem **out_id, PdcommSecsItem **out_body)프로그램은 삽입 순서를 유지합니다. 프로그램을 교체해도 위치는 그대로입니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | 프로그램 저장소가 있는 엔드포인트입니다. |
index | 0부터 시작하는 프로그램 인덱스입니다. |
out_id | 새 PPID 항목을 받습니다. 먼저 NULL로 설정됩니다. NULL이 아니어야 합니다. |
out_body | 새 PPBODY 항목을 받습니다. 먼저 NULL로 설정됩니다. NULL이 아니어야 합니다. |
반환값
성공하면 #PDCOMM_OK를 반환합니다. 출력 포인터나 endpoint가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 프로그램 저장소가 구성되지 않았으면 #PDCOMM_INVALID_STATE를 반환합니다. index가 끝을 넘으면 #PDCOMM_OUT_OF_RANGE를 반환합니다. 준비된 TCP 이벤트(staged event)가 대기 중이면 #PDCOMM_BACKPRESSURE를 반환합니다. 그 밖에 #PDCOMM_LIMIT_EXCEEDED, #PDCOMM_ALLOCATION_FAILED, #PDCOMM_POISONED를 반환할 수 있습니다.
참고
- 소유권: pdcomm_secs_destroy()로 두 항목을 모두 해제합니다. 실패하면 어느 출력에도 항목이 없습니다.