X/Open Corrigenda: U004

Document: ACSE/Presentation Services API (XAP)

X/Open CAE Specification, 9/93
X/Open reference C303

Contents

XAP-1.14


Change number : XAP-1.14

Title

Fixing XAP header files for all ASE's

Qualifier

Minor Technical (see NOTE in Rationale)

Rationale

When ASE's need to add elements to the ap_cdata_t structure, there needs to be a way for this to be done in the <xap.h> header file because there is no need to have the ASE's know about each other. This is a problem where, for example, in the XAP-TP Preliminary Specification it tells the implementors to #ifdef out the ap_cdata_t structure in the xap.h header file and use the one that is defined in <xap_tp.h> instead. This would be alright if TP was the only ASE, but since an application using TP can also be a user of ROSE, and your implementation supports XAP-ROSE, the XAP-ROSE elements also need to be added to the ap_cdata_t structure. This problem will only continue to get worse as new ASE's are developed and your Library wants to support them.

This Corrigendum addresses the changes that are needed to the XAP_CAE specification. Two other Corrigenda address the corresponding changes necessary for the XAP-TP and XAP-ROSE Preliminary Specifications.

NOTE:
This change is listed as Minor Technical for the XAP Specification; however it is Major Technical for the XAP-TP and XAP-ROSE {Preliminary Specifications.

Change

(1) In Appendix A, Page 221, replace the paragraph describing the XAP Header file with the following:

"This appendix reproduces the basic structures of the <xap.h> header file. When using extensions to XAP, such as XAP-TP or XAP-ROSE, function prototypes which use pointers to cdata ("ap_cdata_t *") instead use "void *" to allow use of the cdata structure of the specific ASE."

Refer to the specific ASE specification for their cdata structure definitions."

(2) In Appendix A, Page 227, replace the Cdata type definition with the following:

/* * Cdata type definition */ typedef struct { long udata_length; /* length of user-data field */ long rsn; /* reason for activity or */ /* abort/release primitives */ long evt; /* event that caused abort */ long sync_p_sn; /* synchronization point */ /* serial number */ long sync_type; /* synchronization type */ long resync_type; /* resynchronization type */ long src; /* source of abort */ long res; /* result of association or */ /* release request */ long res_src; /* source of result */ long diag; /* reason for association */ /* rejection */ unsigned long tokens; /* tokens identifier: */ /* 0 => "tokens absent" */ unsigned long token_assignment; /* tokens assignment */ ap_a_assoc_env_t *env; /* environment attribute */ /* values */ ap_octet_string_t act_id; /* activity identifier */ ap_octet_string_t old_act_id; /* old activity identifier */ ap_old_conn_id_t *old_conn_id; /* old session connection */ /* identifier */ } ap_cdata_t;

Any new ASE extensions which require their own cdata elements will have their own cdata structure defined.

(3) On page 64, ap_free() man-page, before the paragraph commencing "The argument val ...", add the following:

"When an XAP implementation supports further ASEs though XAP extensions, further #define identifiers may be used with ap_free() as follows:

* #define identifiers associated with environment attributes, whose type is not long, which are particular to the ASE. These are the names listed in the "Attribute" column of the environment attribute summary table within the extension specification.

* #define identifiers of the data structures used to represent the values of environment attributes which are particular to the ASE. These data structures are those listed in the Type/Value column of of the environment attribute summary table within the extension specification.

* #define identifiers associated with the ASEs cdata structure and dependent data structures. For example, in the TP extension (XAP-TP) these are:

    C Data Structure     Identifier
    ---------------------------------------
    ap_tp_cdata_t        AP_TP_CDATA_T
    ap_tp_dialog_env_t   AP_TP_DIALOG_ENV_T

and in the ROSE extension (XAP-ROSE) these are:

    C Data Structure     Identifier
    ----------------------------------
    ap_ro_cdata_t        AP_RO_CDATA_T"


If you can't find the information you need, please contact X/Open at any of its offices.


Copyright X/Open Company Limited, © 1995