aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cosProperty/src/CosProperty.idl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cosProperty/src/CosProperty.idl')
-rw-r--r--lib/cosProperty/src/CosProperty.idl192
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