# CosPropertyService_PropertySet

### MODULE

CosPropertyService_PropertySet

### MODULE SUMMARY

This module implements the OMG CosPropertyService::PropertySet interface.

### DESCRIPTION

To get access to the record definitions for the structures use:
`-include_lib("cosProperty/include/CosPropertyService.hrl").`

### EXPORTS

`define_property(PropertySet, Name, Value) -> Reply`

Types:

`PropertySet = #objref`
`Name = non-empty string()`
`Value = #any`
`Reply = ok | {'EXCEPTION', #CosPropertyService_InvalidPropertyName{}} | {'EXCEPTION', #CosPropertyService_ConflictingProperty{}} | {'EXCEPTION', #CosPropertyService_UnsupportedTypeCode{}} | {'EXCEPTION', #CosPropertyService_UnsupportedProperty{}} | {'EXCEPTION', #CosPropertyService_ReadOnlyProperty{}}`

This operation adds a new property to the given object. Depending on which initial arguments was supplied when starting the object several exceptions may be raised.

`define_properties(PropertySet, Properties) -> Reply`

Types:

`PropertySet = #objref`
`Properties = [#'CosPropertyService_Property'{property_name = Name, property_value = Value}]`
`Name = string()`
`Value = #any`
`Reply = ok | {'EXCEPTION', #CosPropertyService_MultipleExceptions{exceptions = Excs}}`
`Excs = [#'CosPropertyService_PropertyException{reason = Reason, failing_property_name = Name}]`
`Reason = invalid_property_name | conflicting_property | property_not_found | unsupported_type_code | unsupported_property | unsupported_mode | fixed_property | read_only_property`

This operation adds several new properties to the given object. Depending on which initial arguments was supplied when starting the object an exceptions may be raised listing the properties failing.

`get_number_of_properties(PropertySet) -> ulong()`

Types:

`PropertySet = #objref`

This operation returns the number of properties associated with the target object.

`get_all_property_names(PropertySet, Max) -> Reply`

Types:

`PropertySet = NamesIterator = #objref`
`Max = ulong()`
`Reply = {ok, Names, NamesIterator}`
`Names = [string()]`

This operation returns up to `Max` property names. If the target object have additional associated properties they will be put in the returned Iterator, otherwise the Iterator will be a `NIL` object.

`get_property_value(PropertySet, Name) -> Reply`

Types:

`PropertySet = #objref`
`Name = string()`
`Reply = #any | {'EXCEPTION', #CosPropertyService_PropertyNotFound{}} | {'EXCEPTION', #CosPropertyService_InvalidPropertyName{}}`

This operation returns the property value associated with given name. If no such property exists or the given name is an empty string an exception will be raised.

`get_properties(PropertySet, Names) -> Reply`

Types:

`PropertySet = #objref`
`Names = [string()]`
`Reply = {boolean(), Properties}`
`Properties = [#'CosPropertyService_Property'{property_name = Name, property_value = Value}]`

This operation returns all properties associated with given names. If the boolean flag is true all properties where retrieved correctly, otherwise, all properties with the type `tk_void` was not found.

`get_all_properties(PropertySet, Max) -> Reply`

Types:

`PropertySet = PropertiesIterator = #objref`
`Reply = {ok, Properties, PropertiesIterator}`
`Properties = [#'CosPropertyService_Property'{property_name = Name, property_value = Value}]`

This operation return a list `Max` properties or less. If more properties are associated with the target object they will be put in the `PropertiesIterator`. If the object had less than `Max` associated properties the Iterator will be a `NIL` object.

`delete_property(PropertySet, Name) -> Reply`

Types:

`PropertySet = #objref`
`Name = string()`
`Reply = ok | {'EXCEPTION', #CosPropertyService_FixedProperty{}} | {'EXCEPTION', #CosPropertyService_PropertyNotFound{}} | {'EXCEPTION', #CosPropertyService_InvalidPropertyName{}}`

This operation tries to delete the property with given Name. An exception which indicates why it failed is raised if so needed.

`delete_properties(PropertySet, Names) -> Reply`

Types:

`PropertySet = #objref`
`Names = [string()]`
`Reply = ok | {'EXCEPTION', #CosPropertyService_MultipleExceptions{exceptions = Excs}}`
`Excs = [#'CosPropertyService_PropertyException{reason = Reason, failing_property_name = Name}]`
`Reason = invalid_property_name | conflicting_property | property_not_found | unsupported_type_code | unsupported_property | unsupported_mode | fixed_property | read_only_property`

This operation tries to delete all given Properties. If one or more removal fails an exception is raised which describe why.

`delete_all_properties(PropertySet) -> boolean()`

Types:

`PropertySet = #objref`

This operation deletes all properties. The boolean flag, if set to false, indicates that it was not possible to remove one or more properties, e.g., may be read only.

`is_property_defined(PropertySet, Name) -> Reply`

Types:

`PropertySet = #objref`
`Name = non-empty string()`
`Reply = boolean() | {'EXCEPTION', #CosPropertyService_InvalidPropertyName{}}`

This operation returns true if the target have an associated property with given name.

### AUTHORS

Support - support@erlang.ericsson.se

cosProperty 1.1
Copyright © 1991-2003 Ericsson Utvecklings AB