diff options
Diffstat (limited to 'lib/cosProperty/src/CosProperty.idl')
-rw-r--r-- | lib/cosProperty/src/CosProperty.idl | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/lib/cosProperty/src/CosProperty.idl b/lib/cosProperty/src/CosProperty.idl new file mode 100644 index 0000000000..156fb37ccc --- /dev/null +++ b/lib/cosProperty/src/CosProperty.idl @@ -0,0 +1,192 @@ +#ifndef _COSPROPERTY_IDL +#define _COSPROPERTY_IDL + +#pragma prefix "omg.org" + +module CosPropertyService { + /*****************************************************/ + /* Data Types */ + /*****************************************************/ + typedef string PropertyName; + + struct Property { + PropertyName property_name; + any property_value; + }; + + enum PropertyModeType { + normal, read_only, fixed_normal, fixed_readonly, undefined }; + + struct PropertyDef { + PropertyName property_name; + any property_value; + PropertyModeType property_mode; + }; + + struct PropertyMode { + PropertyName property_name; + PropertyModeType property_mode; + }; + + typedef sequence<PropertyName> PropertyNames; + typedef sequence<Property> Properties; + typedef sequence<PropertyDef> PropertyDefs; + typedef sequence<PropertyMode> PropertyModes; + typedef sequence<CORBA::TypeCode> PropertyTypes; + + interface PropertyNamesIterator; + interface PropertiesIterator; + interface PropertySetFactory; + interface PropertySetDef; + interface PropertySet; + + /*****************************************************/ + /* Exceptions */ + /*****************************************************/ + exception ConstraintNotSupported{}; + exception InvalidPropertyName {}; + exception ConflictingProperty {}; + exception PropertyNotFound {}; + exception UnsupportedTypeCode {}; + exception UnsupportedProperty {}; + exception UnsupportedMode {}; + exception FixedProperty {}; + exception ReadOnlyProperty {}; + + enum ExceptionReason { invalid_property_name, conflicting_property, + property_not_found, unsupported_type_code, + unsupported_property, unsupported_mode, + fixed_property, read_only_property }; + + struct PropertyException { + ExceptionReason reason; + PropertyName failing_property_name; + }; + + typedef sequence<PropertyException> PropertyExceptions; + exception MultipleExceptions { PropertyExceptions exceptions; }; + + /*****************************************************/ + /* Interface Definitions */ + /*****************************************************/ + interface PropertySetFactory { + PropertySet create_propertyset(); + + PropertySet create_constrained_propertyset( in PropertyTypes allowed_property_types, + in Properties allowed_properties) + raises(ConstraintNotSupported); + + PropertySet create_initial_propertyset( in Properties initial_properties) + raises(MultipleExceptions); }; + + /*---------------------------------------------------*/ + interface PropertySetDefFactory { + PropertySetDef create_propertysetdef(); + + PropertySetDef create_constrained_propertysetdef( in PropertyTypes allowed_property_types, + in PropertyDefs allowed_property_defs) + raises(ConstraintNotSupported); + + PropertySetDef create_initial_propertysetdef( in PropertyDefs initial_property_defs) + raises(MultipleExceptions); + }; + + /*---------------------------------------------------*/ + interface PropertySet { + /* Support for defining and modifying properties */ + void define_property( in PropertyName property_name, in any property_value) + raises(InvalidPropertyName, ConflictingProperty, UnsupportedTypeCode, + UnsupportedProperty, ReadOnlyProperty); + + void define_properties( in Properties nproperties) + raises(MultipleExceptions); + + /* Support for Getting Properties and their Names */ + unsigned long get_number_of_properties(); + + void get_all_property_names( in unsigned long how_many, + out PropertyNames property_names, + out PropertyNamesIterator rest); + + any get_property_value( in PropertyName property_name) + raises(PropertyNotFound, InvalidPropertyName); + + boolean get_properties( in PropertyNames property_names, + out Properties nproperties); + + void get_all_properties( in unsigned long how_many, + out Properties nproperties, + out PropertiesIterator rest); + + /* Support for Deleting Properties */ + void delete_property( in PropertyName property_name) + raises(PropertyNotFound, InvalidPropertyName, FixedProperty); + + void delete_properties( in PropertyNames property_names) + raises(MultipleExceptions); + + boolean delete_all_properties(); + + /* Support for Existence Check */ + boolean is_property_defined( in PropertyName property_name) + raises(InvalidPropertyName); + }; + + /*---------------------------------------------------*/ + interface PropertySetDef:PropertySet { + /* Support for retrieval of PropertySet constraints*/ + void get_allowed_property_types( out PropertyTypes property_types); + + void get_allowed_properties( out PropertyDefs property_defs); + + /* Support for defining and modifying properties */ + void define_property_with_mode( in PropertyName property_name, + in any property_value, + in PropertyModeType property_mode) + raises(InvalidPropertyName, ConflictingProperty, UnsupportedTypeCode, + UnsupportedProperty, UnsupportedMode, ReadOnlyProperty); + + void define_properties_with_modes( in PropertyDefs property_defs) + raises(MultipleExceptions); + + /* Support for Getting and Setting Property Modes */ + PropertyModeType get_property_mode( in PropertyName property_name) + raises(PropertyNotFound, InvalidPropertyName); + + boolean get_property_modes( in PropertyNames property_names, + out PropertyModes property_modes); + + void set_property_mode( in PropertyName property_name, + in PropertyModeType property_mode) + raises(InvalidPropertyName, PropertyNotFound, UnsupportedMode); + + void set_property_modes( in PropertyModes property_modes) + raises(MultipleExceptions); + }; + + /*---------------------------------------------------*/ + interface PropertyNamesIterator{ + void reset(); + + boolean next_one( out PropertyName property_name); + + boolean next_n ( in unsigned long how_many, + out PropertyNames property_names); + + void destroy(); + }; + + /*---------------------------------------------------*/ + interface PropertiesIterator { + void reset(); + + boolean next_one( out Property aproperty); + + boolean next_n( in unsigned long how_many, + out Properties nproperties); + + void destroy(); + }; +}; + +#endif |