snalu62_receive_expedited_data(3) — Subroutines
NAME
snalu62_receive_expedited_data − Receives data sent by the remote transaction program in an expedited manner.
LIBRARY
/usr/shlib/libsnatprm.so
SYNOPSIS
#include <sna/snatprmdf.h>
STATUS_RTN snalu62_receive_expedited_data(
RES_ID resource,
STATUS_VEC status_vec,
UINT32 return_control,
UINT32 ∗length,
UINT8 ∗rts_recv,
UINT8 ∗exp_data_recv,
unsigned char ∗data,
ASYNC_INFO ∗wait_object
);
Valid Conversation States
HDX: All except Reset and Deallocate-Pending
FDX: All except Reset
SUPPLIED PARAMETERS
resource
A RES_ID structure specifying the resource ID assigned to the conversation by the interface. This ID is returned by the snalu62_allocate, snalu62_attach_listen, or snalu62_receive_allocate verb.
return_control
A UINT32 value specifying when the interface should return control to the program. Specify one of the following values:
•SNALU62_C_WHEN_EXP_DATA_RECV (the default)
The interface should return when it receives expedited data for this conversation.
•SNALU62_C_IMMEDIATE
The interface should return immediately and set the exp_data_recv parameter to indicate whether any expedited data was found for this conversation.
wait_object
A pointer to an ASYNC_INFO structure specifying whether the interface should process this verb in a blocking or non-blocking manner.
SUPPLIED AND RETURNED PARAMETER
length
A pointer to a UINT32 location specifying the maximum length of data that this program can receive. Specify a value from 0 to 86.
This location also receives a value indicating the actual size of the data received and placed in the data parameter. If the length specified is insufficient for the received data (including a length of 0) the value returned in this parameter indicates the amount of data received. However, the interface does not place any data into the buffer, instead, it returns a primary return code of BUFTOOSM. The transaction program can issue another snalu62_receive_immediate verb with a larger buffer to receive the data.
RETURNED PARAMETERS
status_vec
A pointer to a STATUS_VEC array to receive the completion status information.
rts_recv
A pointer to a UINT8 location to receive a boolean value indicating whether the remote transaction program has requested permission to send data. A value of TRUE (1) indicates the remote program is requesting to send data. A value of FALSE (0) indicates the remote program has not requested to send data. For full-duplex conversations, the interface always returns a value of FALSE for this parameter.
exp_data_recv
A pointer to a UINT8 location to receive a boolean value indicating whether an expedited data notification has been received. A value of TRUE (1) indicates an expedited data notification has been received. A value of FALSE (0) indicates no expedited data notification has been received.
data
A pointer to a char buffer to receive the data sent by the remote transaction program.
DESCRIPTION
This verb always functions in a full-duplex manner; that is, either transaction partner can issue this verb at any time without waiting for the partner program. If no data is available, the transaction program has the option of waiting for data to arrive or proceeding with other processing. This full-duplex nature means both programs must cooperate in establishing a protocol for when to send and receive expedited data. As the name implies, this verb is designed to receive data of a more urgent nature than normal-flow data.
The interface returns the SNALU62_S_CONVEND return code when a receive expedited data request is outstanding and the partner transaction program issues a normal or ABEND conversation deallocation. This code signals that the interface has closed the expedited-receive queue. Any subsequent snalu62_receive_expedited_data verbs also receive the SNALU62_S_CONVEND return code.
RESTRICTIONS
None
RETURN VALUES
SNALU62_S_OKnormal successful completion
SNALU62_S_BUFTOOSM
buffer too small for received data
SNALU62_S_CONVCANC
conversation canceled
SNALU62_S_CONVEND
conversation ended
SNALU62_S_EXPDNSUP
expedited data not supported by LU
SNALU62_S_OPINCOMP
non-blocking operation not completed
SNALU62_S_OPNOTACC
non-blocking operation not accepted
SNALU62_S_PARERR
parameter error, function-name
SNALU62_S_PRGPARCHK
program parameter check
SNALU62_S_STAERR
LU6.2 verb function-name invalid with conversation in current state
SNALU62_S_UNSUC
verb did not execute successfully
ERRORS
None
RELATED INFORMATION
Functions: snalu62_send_expedited
Manuals: Compaq SNA APPC/LU6.2 Programming Interface for Tru64 UNIX Programming and IBM’s Systems Network Architecture Transaction Programmer’s Reference Manual for LU Type 6.2.