OSI/AS Programming Manual
Example 1: Session Layer
Sample Programs
056783 Tandem Computers Incorporated E–13
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 := 1D;
-- 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.zactivity :=
ZAPS^VAL^TOKEN^NOVALUE;
print_aps( "APPL2: connect request" );
status :=
APS_ASSOC_CONNECTREQ_( cepi_2
, api_environment
, local_appl_2
, remote_appl_2
, session_rqmnts_2
, conid_2
, user_data_2
);
IF ( status <> ZAPS^VAL^STATUS^OK ) THEN
CALL display_aps_status( cepi_2, error_connectreq_proc );
--
-- Get OSI address information.
--
error :=
APS_ASSOC_GETPARAM_( cepi_2
, ! conid !
, local_appl
, remote_appl
, ! connect-result !
, ! session-rqmnts !
, ! release-result !
, ! abort-reason !
);