OSI/AS Programming Manual
Example 2: Presentation Layer and ACSE
Sample Programs
E–88 056783 Tandem Computers Incorporated
 , (int *) &user_data
 , tag
 , (int *) &pres_context_result_list
 , pres_default_context_result
 , (int *) &acse_appl_context_name
 );
 wait_for_aps_completion( error_connectrsp_proc );
 if ( status != ZAPS_VAL_STATUS_OK )
 display_aps_status( error_connectrsp_proc );
 /* */
 /* Wait for P-DATA indication. */
 /* */
 wait_for_event( ZAPS_VAL_EVT_DATA_IND );
 /* */
 /* Get P-DATA indication user data. */
 /* */
 retrieve_user_data();
 /* */
 /* Wait for P-TOKEN-GIVE indication. */
 /* */
 wait_for_event( ZAPS_VAL_EVT_TOKEN_GIVE_IND );
 /* */
 /* Find out which tokens were given. */
 /* Note that we know we got the data token. */
 /* */
 error = APS_SYNC_GETPARAM_( cepi
 , /* sync */
 , (int *) &give_tokens
 , /* resync-type */
 , /* exception-reason */
 );
 if ( error != ZAPS_ERR_OK )
 display_aps_error( error_sync_getparam_proc );
 /* */
 /* Set up data (two PDVs) for P-DATA request. */
 /* Normally, this would be generated by an */
 /* ASN.1 compiler. */
 /* */
 user_data.header.znum_elements = 2;
 /* */
 /* Fill out 1st user data element (1st PDV). */
 /* This PDV is for FTAM control. */
 /* */
 user_data_element = (void *) &user_data.element;
 user_data_element->header.ztype =
 ZAPS_VAL_DATA_TYPE_VALUE;
 user_data_element->header.zpcid = 1;
 user_data_element->value[ 0 ] = 0x04; /* octet string */
 user_data_element->value[ 1 ] = 4; /* length */
 memcpy( &user_data.value[ 2 ]










