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 ∗/