pdcomm_tcp_select
함수
SELECTED 상태로 들어가기 위해 Select.req를 보냅니다.
PdcommStatus pdcomm_tcp_select(PdcommTcpEndpoint *endpoint, PdcommTcpToken *out_token)능동 엔드포인트는 연결할 때마다 이미 Select.req를 자동으로 보냅니다. 이 호출은 Deselect나 거부된 선택 이후 다시 선택할 때 사용합니다. 성공하면 엔드포인트가 #PDCOMM_TCP_SELECTED 상태가 되며, 이는 #PDCOMM_TCP_STATE_CHANGED 이벤트로 보고됩니다. 실패하면 반환된 토큰에 대해 #PDCOMM_TCP_FAILED 이벤트가 생성됩니다(예: #PDCOMM_TCP_SELECT_STATUS 또는 #PDCOMM_TCP_T6_TIMEOUT).
매개변수
| 이름 | 설명 |
|---|---|
endpoint | #PDCOMM_TCP_NOT_SELECTED 상태인 유효한 엔드포인트입니다. |
out_token | 제어 트랜잭션 토큰을 받습니다. 실패하면 항상 모두 0입니다. NULL이 아니어야 합니다. |
반환값
Select.req를 큐에 넣었으면 #PDCOMM_OK를 반환합니다. out_token 또는 endpoint가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔드포인트가 NOT SELECTED 상태가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. Select가 이미 진행 중이거나, 모든 트랜잭션 슬롯이 사용 중이거나, 준비된 이벤트(staged event)가 있거나, 큐가 가득 찼거나, 엔드포인트가 정지하는 중이면 #PDCOMM_BACKPRESSURE를 반환합니다. 시스템 바이트가 소진되면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. #PDCOMM_POISONED를 반환할 수도 있습니다.