NWDSDefineClass(3nw)


NWDSDefineClass -- adds a new object class definition to the Directory Schema

Synopsis

   #include <nwnet.h> 
   or 
   #include <nwdssch.h> 
   

NWDSCCODE N_API NWDSDefineClass (NWDSContextHandle context, pnstr8 className, pClass_Info_T classInfo, pBuf_T classItems);

Description

The parameters are as follows:

context
(IN) Specifies the Directory context for the request.

className
(IN) Points to the name of the new object class.

classInfo
(IN) Points to the class flags and ASN.1 ID for the new class.

classItems
(IN) Points to the remaining class definition.

Return values

0x0000
SUCCESSFUL

Negative Value
Negative values indicate errors. For errors returned by Directory Services, see ``Directory Services OS Errors'' (-001 to -255), ``Directory Services Client Library Errors'' (-301 to -399), or ``Directory Services Agent in the Server Errors'' (-601 to -699).

0x8996
SERVER_OUT_OF_MEMORY

0x89E2
TOO_FEW_FRAGMENTS

0x89E3
TOO_MANY_FRAGMENTS

0x89E4
PROTOCOL_VIOLATION

0x89E5
SIZE_LIMIT_EXCEEDED

0x89FD
UNKNOWN_REQUEST

0x89FD
INVALID_PACKET_LENGTH

0x89FE
BAD_PACKET

0x89FF
Failure not related to Directory Services

Notices

The name of the new object class must be unique within the Directory Schema class definitions. The names of the classes for the Base Schema are listed in the ``Expanded Class Definitions'' chapter of NetWare Directory Services Schema Specification. New object classes added by other applications must be read from the Schema on a server by calling NWDSReadClassDef.

New object-class names should be cleared through Developer Support in order to guarantee uniqueness.

classItems points to a request buffer containing additional information that defines the object. This buffer contains a sequence of five lists containing either class names or attribute names. The lists must occur in the following order.

  1. Super Class Names

  2. Containment Class Names

  3. Naming Attribute Names

  4. Mandatory Attribute Names

  5. Optional Attribute Names

Defining a new object class for the Directory Schema is done with the following steps:

  1. Allocate a request buffer by calling NWDSAllocBuf.

  2. Initialize the request buffer for a DSV_DEFINE_CLASS operation by calling NWDSInitBuf.

  3. Prepare the request buffer for storing object-class names in the Super Class Names list by calling NWDSBeginClassItem.

  4. Place the desired object-class names in the Super Class List by calling NWDSPutClassItem once for each object-class names to be placed in the list.

  5. Prepare the request buffer for storing object-class names in the Containment Class Names list by calling NWDSBeginClassItem.

  6. Place the desired object-class names in the Containment Class Names list by calling NWDSPutClassItem once for each object-class name to be placed in the list.

  7. Prepare the request buffer for storing naming-attribute names in the Naming Attributes List by calling NWDSBeginClassItem.

  8. Place the desired naming-attribute names in the Naming Attributes List by calling NWDSPutClassItem once for each naming-attribute names to be placed in the list.

  9. Prepare the request buffer for storing attribute names in the Mandatory Attribute Names list by calling NWDSBeginClassItem.

  10. Place the desired attribute names in the Mandatory Attribute Names list by calling NWDSPutClassItem once for each attribute name to be placed in the list.

  11. Prepare the request buffer for storing attribute names in the Optional Attribute Names list by calling NWDSBeginClassItem.

  12. Place the desired attribute names in the Optional Attribute Names list by calling NWDSPutClassItem once for each attribute name to be added to the list.

  13. Add the object-class definition to the Directory Schema by calling NWDSDefineClass.

  14. Free the request buffer by calling NWDSFreeBuf.


NOTE:

If you do not have any object names or attribute names you want to add to one of the lists, you must still call NWDSBeginClassItem to move to the list. You then immediately call NWDSBeginClassItem again to move to the next list.


Services

Directory

NCP calls

0x2222 23 17 Get File Server Information
0x2222 23 22 Get Station's Logged Info (old)
0x2222 23 28 Get Station's Logged Info
0x2222 104 01 Ping for NDS NCP
0x2222 104 02 Send NDS Fragmented Request/Reply

References

NWDSDefineAttr(3nw), NWDSModifyClassDef(3nw)
30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.