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 ]