Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ om_put(3xom) — X.500 3.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

om_put(3xom)  —  Subroutines

 
 
 
 
 
 
 
 
 
 

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

 
 

Name

om_put − Places copies of the attribute values of a private or public object into a private object. 
 
 
 
 
 

Syntax

OM_return_code om_put(destination, modification, source, included_types, initial_value, limiting_value)
 

 
destination@OM_private_object@T{ read T} modification@OM_modification@T{ read T} source@OM_object@T{ read T} included_types@OM_type_list@T{ read T} initial_value@OM_value_position@T{ read T} limiting_value@OM_value_position@T{ read T} return_code@T{ OM_return_code T}  

 
 
 
 
 
 

C Binding

 
 
OM_return_code om_put (destination, modification, source, included_types, initial_value, limiting_value)
 
 
 
OM_private_object destination,
 
OM_modification modification,
 
OM_object source,
 
OM_type_list included_types,
 
OM_value_position initial_value,
 
OM_value_position limiting_value
 
 
 
 
 
 
 
 
 

Arguments

 
 
 

Destination
 
The object into which you want to put attribute values. This function does not affect the class of the destination.
 
 

Modification
 
A list of modifications to the attributes selected for copying. The modifications you request determine how the function modifies the destination object with the attributes, that is, where it puts them.
 

 
The Modification argument can have one of the following values:
 
 
 
 

•
 
OM_INSERT_AT_BEGINNING
 

 
The Service inserts the source values before all existing destination values.  This does not affect the existing destination values.
 
 

•
 
OM_INSERT_AT_CERTAIN_POINT
 

 
The Service inserts the source values before the value at a specified position in the destination attribute. This does not affect the existing  destination values.
 
 

•
 
OM_INSERT_AT_END
 

 
The Service inserts the source values after all existing destination values.  This does not affect the existing destination values.
 
 

•
 
OM_REPLACE_ALL
 

 
The Service replaces any destination values with the source values, and  discards the original destination values.
 
 

•
 
OM_REPLACE_CERTAIN_VALUES
 

 
The Service replaces the values at specified positions in the destination attribute with values from the source. The Service discards the original destination attribute values at those positions.
 
 
 
 
 
 

Source
 
The object from which you want to copy attribute values. This function ignores the class of the source.
 
 

Included Types
 
The types of attributes that should be copied to the destination, if they appear in the source. If you do not specify a value for this argument, the Service copies all attributes from the source to the destination.
 
 

Initial Value
 
You need to pass a value for this argument when you select the OM_INSERT_AT_CERTAIN_POINT modification or the OM_REPLACE_CERTAIN_VALUES modification. The following table shows what the Initial Value argument represents in each of these cases.
 

 
 
insert-at-certain-points@T{ The position within each destination attribute at which the Service should insert source values T} replace-certain-values@T{ The first value that the Service should replace T}  

 
 

 
If you give this argument a value that is greater than the number of values present in a destination attribute, or if you use the value OM_ALL_VALUES, the Service takes Initial Value to be equal to the number of values present in the destination attribute.
 
 

Limiting Value
 
You need to pass a value for this argument when you select the OM_REPLACE_CERTAIN_VALUES modification. The argument specifies the position within each destination attribute that is one beyond that of the last value to be replaced. The value of Limiting Value must be greater than that of Initial Value.
 

 
If you give this argument a value that is greater than the number of values present in a destination attribute, or if you use the value OM_ALL_VALUES, the Service takes Limiting Value to be equal to  the number of values present in the destination attribute.
 
 
 
 

Description

 
 
This function places in one private object, the destination, copies of the attribute values of another object, the source. The source can be a public or private object.
 

 
You must specify that the Service does one of the following:
 
 
 
 

•
 
Replace all the values in the destination with values from the source.
 
 

•
 
Replace specified values in the destination with values from the source.
 
 

•
 
Insert values from the source in a particular position in the destination.
 
 
 

 
Only use om_put to copy attributes from the source that occur in the definition of the class to which the destination belongs. 
 
 

 
The Service first converts all string values that are in the local representation into the non-local representation for that syntax.
 
 
 

 
There is no attribute of type C in the source object. The destination object therefore contains no attributes of this type, even though type C is specified in the Included Types argument.
 

 
The destination object contains an attribute, D, which is not affected by om_put. 
 
 
 
 
 
 

Return Values

 
 
 
 

The function has completed its task successfully T} OM_FUNCTION_DECLINED@T{ The function does not apply to the object to which it is addressed T} OM_FUNCTION_INTERRUPTED@T{ The function was aborted by external intervention T} OM_MEMORY_INSUFFICIENT@T{ There is not enough memory to complete the function T} OM_NETWORK_ERROR@T{ The Service cannot use the underlying network T} OM_NO_SUCH_CLASS@T{ There is an undefined class identifier T} OM_NO_SUCH_MODIFICATION@T{ There is an undefined modification identifier T} OM_NO_SUCH_OBJECT@T{ You have specified a nonexistent object, or an invalid Handle for an object T} OM_NO_SUCH_SYNTAX@T{ There is an undefined syntax identifier T} OM_NO_SUCH_TYPE@T{ There is an undefined type identifier T} OM_NOT_CONCRETE@T{ There is an abstract class where there should be a concrete class T} OM_NOT_PRESENT@T{ An expected attribute value is missing T} OM_NOT_PRIVATE@T{ There is a public object where there should be a private object T} OM_PERMANENT_ERROR@T{ The Service encountered a permanent problem for which there is no defined error code T} OM_POINTER_INVALID@T{ An invalid pointer was supplied as a function argument T} OM_SYSTEM_ERROR@T{ The Service cannot use the operating system T} OM_TEMPORARY_ERROR@T{ The Service encountered a temporary problem for which there is no defined error code T} OM_TOO_MANY_VALUES@T{ An implementation limit prevents the addition to an object of another attribute value T} OM_VALUES_NOT_ADJACENT@T{ The descriptors for the values of a particular attribute are not adjacent T} OM_WRONG_VALUE_LENGTH@T{ There is an attribute with a value that violates the value length constraints in force T} OM_WRONG_VALUE_MAKEUP@T{ There is an attribute with a value that violates a constraint of its  syntax T} OM_WRONG_VALUE_NUMBER@T{ There is an attribute with a value that violates the value number constraints in force T} OM_WRONG_VALUE_POSITION@T{ The position specified for an attribute value is invalid T} OM_WRONG_VALUE_SYNTAX@T{ There is an attribute value with an illegal syntax T} OM_WRONG_VALUE_TYPE@T{ There is an attribute value with an illegal type T}  

 
 
 
 
 
 
 
 
 
 
 

Examples

 
 
 
 
The following example shows how to put the values from a public object
 into the private object.
 

Exhibit 0-0.

 
     result = om_put (modification,
                             /∗ destination object ∗/
                      OM_REPLACE_ALL,
                             /∗ type of modification ∗/
                      pub_mod,
                             /∗ source of values to be put ∗/
                      0,0,0);
                             /∗ include all attributes, all positions ∗/
 

 
 
 
 
 
 
 
 
 
 
 
 

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