Request_To_Send(CPI-C)
Request_To_Send 호출(함수 이름 cmrts)은 로컬 프로그램에서 데이터를 보내려는 파트너 프로그램에 알 보냅니다.
구문
CM_ENTRY Request_To_Send(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
매개 변수
conversation_ID
제공된 매개 변수입니다. 대화의 식별자를 지정합니다. 이 매개 변수의 값은 Initialize_Conversation 또는 Accept_Conversation 반환되었습니다.
return_code
이 호출에서 반환된 코드입니다. 유효한 반환 코드는 이 항목의 뒷부분에 나와 있습니다.
반환 코드
CM_OK
기본 반환 코드; 호출이 성공적으로 실행되었습니다.
CM_OPERATION_NOT_ACCEPTED
기본 반환 코드; 이 대화에 대한 이전 작업이 불완전합니다.
CM_OPERATION_INCOMPLETE
기본 반환 코드; 작업이 완료되지 않았으며(처리 모드는 차단 해제 전용임) 아직 진행 중입니다. 프로그램은 Wait_For_Conversation 실행하여 작업 완료를 기다리거나 Cancel_Conversation 작업 및 대화를 취소할 수 있습니다. Specify_Windows_Handle 호출된 경우 애플리케이션은 Microsoft® Windows® 메시지의 알림을 기다리며 Wait_For_Conversation 호출하지 않아야 합니다.
CM_PROGRAM_PARAMETER_CHECK
기본 반환 코드; conversation_ID 지정한 값이 잘못되었습니다.
CM_PROGRAM_STATE_CHECK
기본 반환 코드; 대화가 RECEIVE, SEND, SEND_PENDING, CONFIRM, CONFIRM_SEND 또는 CONFIRM_DEALLOCATE 상태가 아닙니다.
CM_PRODUCT_SPECIFIC_ERROR
기본 반환 코드; 제품별 오류가 발생하여 제품 오류 로그에 기록되었습니다.
상태 변경
대화는 RECEIVE, SEND, SEND_PENDING, CONFIRM, CONFIRM_SEND 또는 CONFIRM_DEALLOCATE 상태일 수 있습니다.
상태 변경은 없습니다.
이 요청에 대한 응답으로 파트너 프로그램은 다음 호출 중 하나를 실행하여 대화를 RECEIVE 상태로 변경할 수 있습니다.
수신 유형이 CM_RECEIVE_AND_WAIT 설정된 수신
보내기 유형이 CM_SEND_AND_PREP_TO_RECEIVE 설정된 Send_Data
파트너 프로그램은 전송 요청을 무시할 수도 있습니다.
로컬 프로그램이 후속 Receive 호출의 status_received 매개 변수를 통해 다음 값 중 하나를 수신하면 대화 상태가 로컬 프로그램의 SEND로 변경 됩니다 .
CM_SEND_RECEIVED
CM_CONFIRM_SEND_RECEIVED 및 로컬 프로그램이 확인된 호출로 회신
설명
다음 호출의 request_to_send_received 매개 변수를 통해 파트너 프로그램에서 송신 요청 알림을 받습니다.
-
송신 요청 알림은 즉시 파트너 프로그램으로 전송됩니다. CPI-C는 송신 버퍼가 채워지거나 플러시될 때까지 기다리지 않습니다. 따라서 송신 요청 알림이 순서대로 도착할 수 있습니다. 예를 들어 로컬 프로그램이 SEND 상태이고 Prepare_To_Receive 호출에 이어 Request_To_Send 호출을 발급하는 경우 파트너 프로그램은 RECEIVE 상태의 송신 알림을 받기 전에 송신 요청 알림을 받을 수 있습니다. 이러한 이유로 request_to_send수신 호출을 통해 프로그램에 보고할 수 있습니다.
송신 요청 알림을 받으면 LU(파트너 논리 단위)는 파트너가 request_to_send_received 반환하는 호출을 발급할 때까지 알림을 유지합니다. LU는 대화당 하나의 요청-송신 알림만 유지합니다. 따라서 로컬 프로그램은 TP(파트너 트랜잭션 프로그램)에서 명시적으로 처리하는 것보다 더 많은 Request_To_Send 호출을 실행할 수 있습니다.