Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ om_copy(3xom) — MAILbus 400 2.0C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

om_copy(3xom)  —  Subroutines

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

Name

om_copy − Creates a copy of an existing private object. 

Syntax

OM_return_code om_copy(original, workspace, copy)
 

Argument Data Type Access
original OM_private object read
workspace OM_workspace read
copy OM_private_object write
return_code OM_return_code

C Binding

OM_return_code om_copy(original, workspace, copy) OM_private_object original,
OM_workspace workspace,
OM_private_object ∗copy

Arguments

OriginalThe original private object. 

WorkspaceThe workspace in which the Service creates the copy. The workspace that the Client specifies in this argument must be one that is associated with a package containing the  class of the original object. 

CopyThe copy of the original object. The Service returns this argument if the Return Code of the routine is OM_SUCCESS. 

Description

 
This routine creates a new private object, the copy, which is an exact but independent copy of an existing private object, the original. The routine also copies the original’s subobjects, if it has any.

The Client can specify a workspace in which the Service should place the copy. If the Client does not do so, the Service places the copy in the original’s workspace. 

Return Values

OM_SUCCESS The routine has completed its task successfully
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_OBJECT You have specified a nonexistent object, or an invalid Handle for an object
OM_NO_SUCH_WORKSPACE You have specified a nonexistent workspace
OM_NOT_PRIVATE There is a public object where there should be a private object
OM_NOT_THE_SERVICES There is a client-generated public object where there should be either a service-generated public object or a private object
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
OM_TOO_MANY_VALUES An implementation limit prevents the addition to an object of another attribute value

Examples

 
The following example shows how to copy an object of the MH class Local NDR (ndr). The copy is ndr_copy. 
 
OM_return_code      result;
OM_private_object   ndr,
                    ndr_copy;
OM_workspace        workspace;
 
result = om_copy     (ndr,           /∗ object to be copied ∗/
                     workspace,      /∗ w/s in which to create copy ∗/
                     &ndr_copy);     /∗ the copy ∗/
 

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