Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ om_create(3xom) — MAILbus 400 2.0C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

om_create(3xom)  —  Subroutines

(c) Digital Equipment Corporation. 1994. All rights reserved. 

Name

om_create − Creates a new private object that is an instance of a particular class. 

Syntax

OM_return_code om_create(class, initialise, workspace, object)
 

Argument Data Type Access
class OM_object_identifier read
initialise OM_boolean read
workspace OM_workspace read
object OM_private_object write
return_code OM_return_code

C Binding

OM_return_code om_create(class, initialise, workspace, object) OM_object_identifier class,
OM_boolean initialise,
OM_workspace workspace,
OM_private_object ∗object

Arguments

ClassThe class of the object you are creating. It must be a concrete class. 

InitialiseIf you set this argument to OM_TRUE, the object that you create has some of its attributes initialized. These are the attributes for which initial values are specified in the class definition table. You can find these class definition tables in the documentation for the X.400 and X.500 APIs. 

If you set this argument to OM_FALSE, the object you create has only its Class attribute initialized. 

WorkspaceThe workspace in which the Service should create the object.  The class you specify for the object must be in a package that you have already associated with this workspace. 

ObjectThis is the created object. The Service returns this argument if the Return Code of the routine is OM_SUCCESS. 

Description

 
This routine creates a private object in the workspace that you specify.

You can add new values and replace or remove existing values, any time after the object has been created. In this way, you can create any possible instance of the object’s class. 

Return Values

OM_SUCCESS The routine has completed its task successfully
OM_FUNCTION_DECLINED The routine does not apply to the object to which it is addressed
OM_FUNCTION_INTERRUPTED The routine was aborted by external intervention
OM_MEMORY_INSUFFICIENT There is not enough memory to complete the routine
OM_NETWORK_ERROR The Service cannot use the underlying network
OM_NO_SUCH_CLASS There is an undefined class identifier
OM_NO_SUCH_WORKSPACE You have specified a nonexistent workspace
OM_NOT_CONCRETE A class is abstract, not concrete
OM_PERMANENT_ERROR The Service encountered a permanent problem for which there is no defined error code
OM_POINTER_INVALID An invalid pointer was supplied as a routine argument
OM_SYSTEM_ERROR The Service cannot use the operating system
OM_TEMPORARY_ERROR The Service encountered a temporary problem for which there is no defined error code

Examples

 
The first example shows how to create a private object of Message Handling (MH) class Local Per-recipient NDR, with the Initialise argument set to OM_FALSE; the routine does not initialize any of the object’s attributes.
 
OM_private_object    ndr;
OM_workspace         workspace;
OM_return_code       result;
 
result = om_create (MH_C_LOCAL_PER_RECIP_NDR, /∗ class of object ∗/
                    OM_FALSE,                 /∗ do not init attribs ∗/
                    workspace,                /∗ w/s in which obj created∗/
                    &ndr);                    /∗ created object ∗/
 

The second example shows the creation of a private object of X.500 class Entry-Info-Selection, with the Initialise argument set to OM_TRUE; the routine initializes two of the object’s attributes. 
 
OM_private_object    select_info;
OM_workspace         workspace;
OM_return_code       result;
result = om_create (DS_C_ENTRY_INFO_SELECTION,/∗ class of object ∗/
                     OM_TRUE,                 /∗ initialise attributes ∗/
                     workspace,               /∗ w/s in which obj created∗/
                     &select_info);           /∗ created object ∗/
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026