Previous section.

DCE 1.1: Directory Services
Copyright © 1997 The Open Group

XDS/XOM Header Files

This appendix lists the header files used for the DCE extensions to XDS/XOM: <xdsgds.h>, <xdscds.h>, <xdsext.h> and <xomext.h>. For information on The Open Group standard header files refer to:

<xdsgds.h>

The <xdsgds.h> header declares the object identifiers of directory attribute types and directory object classes supported by the GDS Package (GDSP). It also defines OM classes used to represent the values of the attribute types.

All application programs that include this header must first include the <xom.h> header and the <xds.h> header.

#ifndef _XDSGDS_H
#define _XDSGDS_H

#ifndef XDSGDS_HEADER
#define XDSGDS_HEADER

/* GDS package object identifier */
/* iso(1) identified-organization(3) icd-ecma(0012) 
   member-company(2) siemens-units(1107) sni(1) directory(3) 
   xds-api(100)gdsp(0) */

#define OMP_O_DSX_GDS_PKG   \
"\x2B\x0C\x02\x88\x53\x01\x03\x64\x00"

/*Intermediate object identifier macros */

/* iso(1) identified-organization(3) icd-ecma(0012) 
   member-company(2) siemens-units(1107) sni(1) directory(3) 
   attribute-type(4) ...*/

#define dsP_GDSattributeType(X) \
("\x2B\x0C\x02\x88\x53\x01\x03\x04" #X)

/* iso(1) identified-organization(3) icd-ecma(0012)
   member-company(2) siemens-units(1107) sni(1) directory(3)
   object-class(6) ...*/

#define dsP_GDSobjectClass(X) \
("\x2b\x0c\x02\x88\x53\x01\x03\x06" #X)

#define dsP_gdsp_c(X)    OMP_O_DSX_GDS_PKG #X

/* OM class names (prefixed by DSX_C_)
   Directory attribute types (prefixed by DSX_A_)
   Directory object classes (prefixed by DSX_O_)
*/

/* Directory attribute types */

#define OMP_O_DSX_A_MASTER_KNOWLEDGE dsP_GDSattributeType(\x00)
#define OMP_O_DSX_A_ACL              dsP_GDSattributeType(\x01)
#define OMP_O_DSX_A_TIME_STAMP       dsP_GDSattributeType(\x02)
#define OMP_O_DSX_A_SHADOWED_BY      dsP_GDSattributeType(\x03)
#define OMP_O_DSX_A_SRT              dsP_GDSattributeType(\x04)
#define OMP_O_DSX_A_OCT              dsP_GDSattributeType(\x05)
#define OMP_O_DSX_A_AT               dsP_GDSattributeType(\x06)
#define OMP_O_DSX_A_DEFAULT_DSA      dsP_GDSattributeType(\x08)
#define OMP_O_DSX_A_LOCAL_DSA        dsP_GDSattributeType(\x09)
#define OMP_O_DSX_A_CLIENT           dsP_GDSattributeType(\x0A)
#define OMP_O_DSX_A_DNLIST           dsP_GDSattributeType(\x0B)
#define OMP_O_DSX_A_SHADOWING_JOB    dsP_GDSattributeType(\x0C)
#define OMP_O_DSX_A_CDS_CELL         dsP_GDSattributeType(\x0D)
#define OMP_O_DSX_A_CDS_REPLICA      dsP_GDSattributeType(\x0E)

/* Directory object classes */

#define OMP_O_DSX_O_SCHEMA           dsP_GDSobjectClass(\x00)

/* OM class names */

#define OMP_O_DSX_C_GDS_SESSION         dsP_gdsp_c(\x00)
#define OMP_O_DSX_C_GDS_CONTEXT         dsP_gdsp_c(\x01)
#define OMP_O_DSX_C_GDS_ACL             dsP_gdsp_c(\x02)
#define OMP_O_DSX_C_GDS_ACL_ITEM        dsP_gdsp_c(\x03)

/* OM attribute names */

#define DSX_PASSWORD                    ((OM_type) 850)
#define DSX_DIR_ID                      ((OM_type) 851)
#define DSX_DUAFIRST                    ((OM_type) 852)
#define DSX_DONT_STORE                  ((OM_type) 853)
#define DSX_NORMAL_CLASS                ((OM_type) 854)
#define DSX_PRIV_CLASS                  ((OM_type) 855)
#define DSX_RESIDENT_CLASS              ((OM_type) 856)
#define DSX_USEDSA                      ((OM_type) 857)
#define DSX_DUA_CACHE                   ((OM_type) 858)
#define DSX_MODIFY_PUBLIC               ((OM_type) 859)
#define DSX_READ_STANDARD               ((OM_type) 860)
#define DSX_MODIFY_STANDARD             ((OM_type) 861)
#define DSX_READ_SENSITIVE              ((OM_type) 862)
#define DSX_MODIFY_SENSITIVE            ((OM_type) 863)
#define DSX_INTERPRETATION              ((OM_type) 864)
#define DSX_USER                        ((OM_type) 865)
#define DSX_PREFER_ADM_FUNCS            ((OM_type) 866)
#define DSX_AUTH_MECHANISM              ((OM_type) 867)
#define DSX_AUTH_INFO                   ((OM_type) 868)
#define DSX_SIGN_MECHANISM              ((OM_type) 869)
#define DSX_PROT_REQUEST                ((OM_type) 870)

/* DSX_Interpretation */

enum DSX_Interpretation {
        DSX_SINGLE_OBJECT    = 0,
        DSX_ROOT_OF_SUBTREE  = 1
};

/* DSX_Auth_Mechanism */

enum DSX_Auth_Mechanism {
        DSX_NONE_AT_ALL  = 0,
        DSX_DEFAULT      = 1,
        DSX_SIMPLE       = 2,
        DSX_SIMPLE_PROT1 = 3,
        DSX_SIMPLE_PROT2 = 4,
        DSX_DCE_AUTH     = 5,
        DSX_STRONG       = 6
};

/* DSX_Prot_Request */

enum DSX_Prot_Request {
        DSX_NONE   = 0,
        DSX_SIGNED = 1
};

/* upper bound on string lengths*/

#define DSX_VL_PASSWORD         ((OM_value_length) 16)

#endif  /* XDSGDS_HEADER */

#endif  /* _XDS_GDS_H */

<xdscds.h>

The <xdscds.h> header declares the object identifiers of directory attribute types supported by the Cell Directory Service (CDS).

All application programs that include this header must first include the <xom.h> header and the <xds.h> header.

#ifndef _XDSCDS_H
#define _XDSCDS_H

#ifndef XDSCDS_HEADER
#define XDSCDS_HEADER

/* {iso(1) identified-org(3) osf(22) dce(1) cds(3)
    = "\x2B\x16\x01\x03" */

/* Cell Directory Service attribute types */

#define OMP_O_DSX_A_CDS_Members          "\x2B\x16\x01\x03\x0A"
#define OMP_O_DSX_A_CDS_GroupRevoke      "\x2B\x16\x01\x03\x0B"
#define OMP_O_DSX_A_CDS_CTS              "\x2B\x16\x01\x03\x0C"
#define OMP_O_DSX_A_CDS_UTS              "\x2B\x16\x01\x03\x0D"
#define OMP_O_DSX_A_CDS_Class            "\x2B\x16\x01\x03\x0F"
#define OMP_O_DSX_A_CDS_ClassVersion     "\x2B\x16\x01\x03\x10"
#define OMP_O_DSX_A_CDS_ObjectUUID       "\x2B\x16\x01\x03\x11"
#define OMP_O_DSX_A_CDS_Address          "\x2B\x16\x01\x03\x12"
#define OMP_O_DSX_A_CDS_Replicas         "\x2B\x16\x01\x03\x13"
#define OMP_O_DSX_A_CDS_AllUpTo          "\x2B\x16\x01\x03\x14"
#define OMP_O_DSX_A_CDS_Convergence      "\x2B\x16\x01\x03\x15"
#define OMP_O_DSX_A_CDS_InCHName         "\x2B\x16\x01\x03\x16"
#define OMP_O_DSX_A_CDS_ParentPointer    "\x2B\x16\x01\x03\x17"
#define OMP_O_DSX_A_CDS_DirectoryVersion "\x2B\x16\x01\x03\x18"
#define OMP_O_DSX_A_CDS_UpgradeTo        "\x2B\x16\x01\x03\x19"
#define OMP_O_DSX_A_CDS_LinkTarget       "\x2B\x16\x01\x03\x1B"
#define OMP_O_DSX_A_CDS_LinkTimeout      "\x2B\x16\x01\x03\x1C"
#define OMP_O_DSX_A_CDS_Towers           "\x2B\x16\x01\x03\x1E"
#define OMP_O_DSX_A_CDS_CHName           "\x2B\x16\x01\x03\x20"
#define OMP_O_DSX_A_CDS_CHLastAddress    "\x2B\x16\x01\x03\x22"
#define OMP_O_DSX_A_CDS_CHUpPointers     "\x2B\x16\x01\x03\x23"
#define OMP_O_DSX_A_CDS_CHState          "\x2B\x16\x01\x03\x24"

/* {iso(1) identified-org(3) osf(22) dce(1) gds(2)
    = "\x2B\x16\x01\x02" */

#define OMP_O_DSX_UUID                  "\x2B\x16\x01\x02\x01"
#define OMP_O_DSX_TYPELESS_RDN          "\x2B\x16\x01\x02\x02"

#define OMP_O_DSX_NORMAL_SIMPLE_NAME    "\x2B\x16\x01\x03\x00"
#define OMP_O_DSX_BINARY_SIMPLE_NAME    "\x2B\x16\x01\x03\x02"

#endif  /* XDSCDS_HEADER */
#endif  /* _XDSCDS_H */

<xdsext.h>

The <xdsext.h> header, along with the <xomext.h> header, contain all the defines and function prototypes for the XDS/XOM convenience routines.

All application programs that include this header must first include the <xom.h>, <xds.h>, dsgds.h>, and <xdscds.h> headers.

#ifndef _XDSEXT_H
#define _XDSEXT_H

/*-- Function Prototypes ------------------------------------------*/

OM_return_code
dsX_extract_attr_values(
 OM_private_object     object,         /* IN-The source object           */
 OM_object_identifier  attribute_type, /* IN-Attribute to be extracted   */
 OM_boolean            local_strings,  /* IN-Local strings required      */
 OM_public_object     *values,         /* OUT-Extracted Attribute Values */
 OM_value_position    *total_number);  /* OUT-Number of extracted values */

#endif  /* ifndef _XDSEXT_H */

<xomext.h>

The <xomext.h> header, along with the <xdsext.h> header, contain all the defines and function prototypes for the XDS/XOM convenience routines.

All application programs that include this header must first include the <xom.h>, <xds.h>, <xdsgds.h>, and <xdscds.h> headers.

#ifndef _XOMEXT_H
#define _XOMEXT_H

/*-- Defines for error returns related to XOI ------------------------  */

#define OMX_SUCCESS                ((OM_integer)  0)
#define OMX_CANNOT_READ_SCHEMA     ((OM_integer) -1)
#define OMX_SCHEMA_NOT_READ        ((OM_integer) -2)
#define OMX_NO_START_OBJ_BLOCK     ((OM_integer) -3)
#define OMX_NO_END_OBJ_BLOCK       ((OM_integer) -4)
#define OMX_EMPTY_OBJ_BLOCK        ((OM_integer) -5)
#define OMX_OBJ_FORMAT_ERROR       ((OM_integer) -6)
#define OMX_DUPLICATE_OBJ_ABBRV    ((OM_integer) -7)
#define OMX_DUPLICATE_OBJ_OBJ_ID   ((OM_integer) -8)
#define OMX_NO_START_ATTR_BLOCK    ((OM_integer) -9)
#define OMX_NO_END_ATTR_BLOCK      ((OM_integer) -10)
#define OMX_EMPTY_ATTR_BLOCK       ((OM_integer) -11)
#define OMX_ATTR_FORMAT_ERROR      ((OM_integer) -12)
#define OMX_DUPLICATE_ATTR_ABBRV   ((OM_integer) -13)
#define OMX_DUPLICATE_ATTR_OBJ_ID  ((OM_integer) -14)
#define OMX_NO_START_CLASS_BLOCK   ((OM_integer) -15)
#define OMX_NO_END_CLASS_BLOCK     ((OM_integer) -16)
#define OMX_EMPTY_CLASS_BLOCK      ((OM_integer) -17)
#define OMX_CLASS_FORMAT_ERROR     ((OM_integer) -18)
#define OMX_NO_CLASS_NAME          ((OM_integer) -19)
#define OMX_DUPLICATE_CLASS_BLOCK  ((OM_integer) -20)
#define OMX_CLASS_BLOCK_UNDEFINED  ((OM_integer) -21)
#define OMX_INVALID_ABBRV          ((OM_integer) -22)
#define OMX_INVALID_OBJ_ID         ((OM_integer) -23)
#define OMX_INVALID_CLASS_NAME     ((OM_integer) -24)
#define OMX_INVALID_SYNTAX         ((OM_integer) -25)
#define OMX_MEMORY_INSUFFICIENT    ((OM_integer) -26)
#define OMX_INVALID_PARAMETER      ((OM_integer) -27)
#define OMX_UNKNOWN_ABBRV          ((OM_integer) -28)
#define OMX_UNKNOWN_OBJ_ID         ((OM_integer) -29)
#define OMX_UNKNOWN_OMTYPE         ((OM_integer) -30)

/*-- Defines for error returns related to convenience library ----------*/

#define OMX_MISSING_AVA            ((OM_integer) -101)
#define OMX_MISSING_ABBRV          ((OM_integer) -102)
#define OMX_FORMAT_ERROR           ((OM_integer) -103)
#define OMX_UNKNOWN_ERROR          ((OM_integer) -104)
#define OMX_MISSING_RDN_DELIMITER  ((OM_integer) -105)
#define OMX_MISMATCHED_QUOTES      ((OM_integer) -106)
#define OMX_MISSING_EQUAL_OPERATOR ((OM_integer) -107)
#define OMX_MISSING_ATTR_VALUE     ((OM_integer) -108)
#define OMX_MISSING_ATTR_INFO      ((OM_integer) -109)
#define OMX_MISSING_CLASS_START_OP ((OM_integer) -110)
#define OMX_MISSING_CLASS_END_OP   ((OM_integer) -111)
#define OMX_MISSING_CLASS_VALUE    ((OM_integer) -112)
#define OMX_MISSING_COMP_VALUE     ((OM_integer) -113)
#define OMX_MISMATCHED_BRACKETS    ((OM_integer) -114)
#define OMX_UNEXPECTED_OPERATOR    ((OM_integer) -115)
#define OMX_WRONG_VALUE            ((OM_integer) -116)
#define OMX_UNKNOWN_KEYWORD        ((OM_integer) -117)
#define OMX_MISSING_OPERATOR       ((OM_integer) -118)
#define OMX_MISSING_COMPOUND_OP    ((OM_integer) -119)

/*- Additional Errors returned by the omX_object_to_string function -*/

#define OMX_CLASS_NOT_FOUND_IN_SCHEMA_FILE  ((OM_return_code) 31)

/*-- Function Prototypes ------------------------------------------*/

OM_return_code omX_fill(
 OM_type           type,         /* IN  - Type of Object           */
 OM_syntax         syntax,       /* IN  - Syntax of the object     */
 OM_uint32         length,       /* IN  - Data length              */
 void             *elements,     /* IN  - Data Value               */
 OM_descriptor    *destination); /* OUT - The filled up descriptor */

OM_return_code omX_fill_oid(
 OM_type               type,         /* IN  - Type of Object           */
 OM_object_identifier  object_id,    /* IN  - Value of the object      */
 OM_descriptor        *destination); /* OUT - The filled up descriptor */

OM_return_code omX_extract(
 OM_private_object  object,          /* IN  - Extract from this object    */
 OM_type_list       navigation_path, /* IN  - Leads to the target object  */
 OM_exclusions      exclusions,      /* IN  - Scope of extraction         */
 OM_type_list       included_types,  /* IN  - Objects to be extracted     */
 OM_boolean         local_strings,   /* IN  - Local strings required      */
 OM_value_position  initial_value,   /* IN  - First value to be extracted */
 OM_value_position  limiting_value,  /* IN  - Last value to be extracted  */
 OM_public_object  *values,          /* OUT - Array of extracted objects  */
 OM_value_position *total_number);   /* OUT - Count of extracted objects  */

OM_return_code omX_string_to_object(
 OM_workspace          workspace,     /* IN  - The workspace               */
 OM_string            *string,        /* IN  - The string to be converted  */
 OM_object_identifier  class,         /* IN  - The OM Class to be created  */
 OM_boolean            local_strings, /* IN  - Local strings specified     */
 OM_private_object    *object,        /* OUT - The converted Object        */
 OM_integer           *error_position,/* OUT - Error Position in I/P string*/
 OM_integer           *error_type);   /* OUT - Type of error               */

OM_return_code omX_object_to_string(
    OM_object    object,        /* The Object to be converted          */
    OM_boolean   local_strings, /* To indicate local string conversion */
    OM_string   *string);       /* The converted DN string             */

#endif  /* ifndef _XOMEXT_H */


Please note that the html version of this specification may contain formatting aberrations. The definitive version is available as an electronic publication on CD-ROM from The Open Group.

Contents Index