gtpc2mb0 | C/C++ Language Support User's Guide |
This function changes the conversation from send or
send-pending to receive state in preparation to receive
data. The execution of this function includes the function of the FLUSH
or CONFIRM verb.
Format
#include <tpfmap.h>
void cmptr(unsigned char *conversation_ID,
signed int *return_code);
- conversation_ID
- This is a pointer to an 8-byte character array that contains the
conversation ID. This conversation ID must be the ID returned by the
cminit (INITIALIZE) or cmaccp (ACCEPT_CONVERSATION) that
started this conversation.
- return_code
- This is a pointer to a 4-byte field where the return code is to be
placed.
Return Codes
The following is a list of return codes that can be returned to the program
that called the cmptr function. A complete list of the
return codes and their definitions can be found in Table 45.
When prepare_to_receive_type is set to
CM_PREP_TO_RECEIVE_FLUSH, or prepare_to_receive_type is
set to CM_PREP_TO_RECEIVE_SYNC_LEVEL and sync_level is
CM_NONE, the possible return codes are:
- CM_OK
- CM_PRODUCT_SPECIFIC_ERROR
- CM_PROGRAM_PARAMETER_CHECK -- The specified conversation_ID
is invalid.
- CM_PROGRAM_STATE_CHECK -- The conversation is not in send
or send-pending state.
When prepare_to_receive_type is set to
CM_PREP_TO_RECEIVE_CONFIRM, or prepare_to_receive_type is
set to CM_PREP_TO_RECEIVE_SYNC_LEVEL and sync_level is
CM_CONFIRM, the possible return codes are:
- CM_OK
- CM_CONVERSATION_TYPE_MISMATCH
- CM_DEALLOCATED_ABEND
- CM_PRODUCT_SPECIFIC_ERROR
- CM_PROGRAM_ERROR_PURGING
- CM_PROGRAM_PARAMETER_CHECK -- The specified conversation_ID
is invalid.
- CM_PROGRAM_STATE_CHECK -- The conversation is not in send
or send-pending state.
- CM_RESOURCE_FAILURE_NO_RETRY
- CM_RESOURCE_FAILURE_RETRY
- CM_SVC_ERROR_PURGING
- CM_SYNC_LVL_NOT_SUPPORTED_PGM
- CM_TP_NOT_AVAILABLE_NO_RETRY
- CM_TP_NOT_AVAILABLE_RETRY
- CM_TPN_NOT_RECOGNIZED.
Programming Considerations
- You can execute this function on any I-stream.
- The conversation must be in send or send-pending
state.
- The value supplied in conversation_ID must be the conversation ID
returned by the cmaccp or cminit function.
- The following characteristics can affect this function:
- prepare_to_receive_type
- sync_level
- If the return_code is CM_OK, the conversation enters
receive state.
- This call causes the local program's send buffer to be
flushed.
- If prepare_to_receive_type is
CM_PREP_TO_RECEIVE_CONFIRM, the TPF system EVENT and POST facility is
used to suspend the ECB until the program receives the confirmation
reply. Because the ECB is suspended, all unnecessary resources should
be released before this verb is issued. Failure to do so can cause
serious system degradation.
- If prepare_to_receive_type is
CM_PREP_TO_RECEIVE_CONFIRM and the program does not receive a
confirmation reply in a certain amount of time, TPF/APPC support issues a
DEALLOCATE request to terminate the conversation. The amount of time
that the system waits is determined by the value you specify for the TPRECV
parameter on the SNAKEY macro. See TPF ACF/SNA
Network Generation for information about the SNAKEY macro.
- The remote transaction program enters send,
send-pending, or confirm-send state when it receives the
SEND indication in the status_received parameter of the
cmrcv function. (See cmrcv-Receive Information.) The remote transaction program can then
send data to the local TPF transaction program.
Examples
The following example places the conversation in receive
state.
#include <tpfmap.h>
unsigned char convid[8];
signed int rcode;
.
.
/* set conversation_ID with value returned from accept or initialize */
.
.
cmptr(convid,&rcode);
. /* normal processing path */
.
.
Related Information