OSI/AS Programming Manual
Example 1: Session Layer
Sample Programs
E–26 056783 Tandem Computers Incorporated
/* Initialize the user data to a string of the */
/* character "2." Because this is an application using */
/* the OSI/AS Session Layer, we don't set the PCID */
/* field of the user_data structure. This field is */
/* used only by Presentation and ACSE and is ignored by */
/* the OSI/AS Session Layer. */
/* */
user_data_2.header.znum_elements = 1;
user_data_2.element.zlen = num_bytes_to_transfer;
user_data_2.element.ztype = ZAPS_VAL_DATA_TYPE_VALUE;
memset( user_data_2.value, '2', num_bytes_to_transfer );
/* */
/* Initialize functional units, sync, and tokens. */
/* */
/* */
/* The ZL5^FU^ISPRESENT field informs OSI/AS that it */
/* should look at the functional units specified. */
/* During connection establishment, this field must be */
/* set to ZAPS^VAL^TRUE. */
/* */
session_rqmnts_2.zl5_fu_ispresent = ZAPS_VAL_TRUE;
/* Select only the half-duplex functional unit */
session_rqmnts_2.zl5_fu.zhalfduplex = ZAPS_VAL_TRUE;
session_rqmnts_2.zl5_fu.zduplex = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zexceptions = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.ztyped_data = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zneg_release = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zminorsync = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zmajorsync = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zresync = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zexpedited = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zactivity = ZAPS_VAL_FALSE;
session_rqmnts_2.zl5_fu.zcapability_data = ZAPS_VAL_FALSE;
/* Choose 1 to be the initial synchronization point */
/* serial number. */
session_rqmnts_2.zinit_sync = 1;
/* Select the data token to be owned by the other */
/* application ( APPL1 ) */
session_rqmnts_2.zinit_tokens.zrelease =
ZAPS_VAL_TOKEN_NOVALUE;
session_rqmnts_2.zinit_tokens.zdata =
ZAPS_VAL_TOKEN_NOTOWNED;
session_rqmnts_2.zinit_tokens.zminorsync =
ZAPS_VAL_TOKEN_NOVALUE;
session_rqmnts_2.zinit_tokens.u_zmajorsync.zactivity =
ZAPS_VAL_TOKEN_NOVALUE;
printf( "APPL2: connect request\n" );
status =
APS_ASSOC_CONNECTREQ_( &cepi_2
, (int *) &api_environment