다음을 통해 공유


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 설정된 수신

  • Prepare_To_Receive

  • 보내기 유형이 CM_SEND_AND_PREP_TO_RECEIVE 설정된 Send_Data

    파트너 프로그램은 전송 요청을 무시할 수도 있습니다.

    로컬 프로그램이 후속 Receive 호출의 status_received 매개 변수를 통해 다음 값 중 하나를 수신하면 대화 상태가 로컬 프로그램의 SEND로 변경 됩니다 .

  • CM_SEND_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED 및 로컬 프로그램이 확인된 호출로 회신

설명

다음 호출의 request_to_send_received 매개 변수를 통해 파트너 프로그램에서 송신 요청 알림을 받습니다.

  • 확인됨

  • Receive

  • Send_Data

  • Send_Error

  • Test_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 호출을 실행할 수 있습니다.