00001 #ifndef COS_PROPERTYSERVICE_IDL
00002 #define COS_PROPERTYSERVICE_IDL
00003
00004 #include <orbdefs.idl>
00005
00006 #pragma prefix "omg.org"
00007
00013 module CosPropertyService
00014 {
00015
00016
00018 typedef string PropertyName;
00019
00021 struct Property
00022 {
00023 PropertyName property_name;
00024 any property_value;
00025 };
00026
00028 enum PropertyModeType
00029 {
00030 normal,
00031 read_only,
00032 fixed_normal,
00033 fixed_readonly,
00034 undefined
00035 };
00036
00040 struct PropertyDef
00041 {
00042 PropertyName property_name;
00043 any property_value;
00044 PropertyModeType property_mode;
00045 };
00046
00048 struct PropertyMode
00049 {
00050 PropertyName property_name;
00051 PropertyModeType property_mode;
00052 };
00053
00056 typedef sequence <PropertyName> PropertyNames;
00057
00060 typedef sequence <Property> Properties;
00061
00064 typedef sequence <PropertyDef> PropertyDefs;
00065
00068 typedef sequence <PropertyMode> PropertyModes;
00069
00072 typedef sequence <CORBA::TypeCode> PropertyTypes;
00073
00074 interface PropertyNamesIterator;
00075 interface PropertiesIterator;
00076 interface PropertySetFactory;
00077 interface PropertySetDef;
00078 interface PropertySet;
00079
00080
00081
00086 exception ConstraintNotSupported{};
00087
00091 exception InvalidPropertyName {};
00092
00097 exception ConflictingProperty {};
00098
00100 exception PropertyNotFound {};
00101
00105 exception UnsupportedTypeCode {};
00106
00110 exception UnsupportedProperty {};
00111
00115 exception UnsupportedMode {};
00116
00121 exception FixedProperty {};
00122
00127 exception ReadOnlyProperty {};
00128
00130 enum ExceptionReason
00131 {
00132 invalid_property_name,
00133 conflicting_property,
00134 property_not_found,
00135 unsupported_type_code,
00136 unsupported_property,
00137 unsupported_mode,
00138 fixed_property,
00139 read_only_property
00140 };
00141
00145 struct PropertyException
00146 {
00147 ExceptionReason reason;
00148 PropertyName failing_property_name;
00149 };
00150
00152 typedef sequence <PropertyException> PropertyExceptions;
00153
00162 exception MultipleExceptions
00163 {
00164 PropertyExceptions exceptions;
00165 };
00166
00167
00168
00169 interface PropertySetFactory
00170 {
00173 PropertySet create_propertyset();
00174
00186 PropertySet create_constrained_propertyset
00187 (in PropertyTypes allowed_property_types,
00188 in Properties allowed_properties)
00189 raises (ConstraintNotSupported);
00190
00199 PropertySet create_initial_propertyset
00200 (in Properties initial_properties)
00201 raises (MultipleExceptions);
00202 };
00203
00204 interface PropertySetDefFactory
00205 {
00206
00209 PropertySetDef create_propertysetdef ();
00210
00222 PropertySetDef create_constrained_propertysetdef
00223 (in PropertyTypes allowed_property_types,
00224 in PropertyDefs allowed_property_defs)
00225 raises (ConstraintNotSupported);
00226
00235 PropertySetDef create_initial_propertysetdef
00236 (in PropertyDefs initial_property_defs)
00237 raises (MultipleExceptions);
00238 };
00239
00240 interface PropertySet
00241 {
00242
00243
00262 void define_property
00263 (in PropertyName property_name,
00264 in any property_value)
00265 raises (InvalidPropertyName,
00266 ConflictingProperty,
00267 UnsupportedTypeCode,
00268 UnsupportedProperty,
00269 ReadOnlyProperty);
00270
00279 void define_properties
00280 (in Properties nproperties)
00281 raises (MultipleExceptions);
00282
00283
00284
00289 unsigned long get_number_of_properties ();
00290
00302 void get_all_property_names
00303 (in unsigned long how_mstring,
00304 out PropertyNames property_names,
00305 out PropertyNamesIterator rest);
00306
00316 any get_property_value
00317 (in PropertyName property_name)
00318 raises (PropertyNotFound, InvalidPropertyName);
00319
00333 boolean get_properties
00334 (in PropertyNames property_names,
00335 out Properties nproperties);
00336
00348 void get_all_properties
00349 (in unsigned long how_mstring,
00350 out Properties nproperties,
00351 out PropertiesIterator rest);
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364 void delete_property
00365 (in PropertyName property_name)
00366 raises (PropertyNotFound,
00367 InvalidPropertyName,
00368 FixedProperty);
00369
00378 void delete_properties
00379 (in PropertyNames property_names)
00380 raises (MultipleExceptions);
00381
00387 boolean delete_all_properties ();
00388
00389
00390
00397 boolean is_property_defined
00398 (in PropertyName property_name)
00399 raises (InvalidPropertyName);
00400 };
00401
00402 interface PropertySetDef : PropertySet
00403 {
00404
00405
00409 void get_allowed_property_types
00410 (out PropertyTypes property_types);
00411
00416 void get_allowed_properties
00417 (out PropertyDefs property_defs);
00418
00419
00420
00442 void define_property_with_mode
00443 (in PropertyName property_name,
00444 in any property_value,
00445 in PropertyModeType property_mode)
00446 raises (InvalidPropertyName,
00447 ConflictingProperty,
00448 UnsupportedTypeCode,
00449 UnsupportedProperty,
00450 UnsupportedMode,
00451 ReadOnlyProperty);
00452
00461 void define_properties_with_modes
00462 (in PropertyDefs property_defs)
00463 raises (MultipleExceptions);
00464
00465
00466
00476 PropertyModeType get_property_mode
00477 (in PropertyName property_name)
00478 raises (PropertyNotFound, InvalidPropertyName);
00479
00492 boolean get_property_modes
00493 (in PropertyNames property_names,
00494 out PropertyModes property_modes);
00495
00502 void set_property_mode
00503 (in PropertyName property_name,
00504 in PropertyModeType property_mode)
00505 raises (InvalidPropertyName,
00506 PropertyNotFound,
00507 UnsupportedMode);
00508
00517 void set_property_modes
00518 (in PropertyModes property_modes)
00519 raises(MultipleExceptions);
00520 };
00521
00522 interface PropertyNamesIterator
00523 {
00526 void reset ();
00527
00535 boolean next_one (out PropertyName property_name);
00536
00543 boolean next_n
00544 (in unsigned long how_mstring,
00545 out PropertyNames property_names);
00546
00549 void destroy ();
00550 };
00551
00552 interface PropertiesIterator
00553 {
00556 void reset ();
00557
00565 boolean next_one (out Property aproperty);
00566
00573 boolean next_n
00574 (in unsigned long how_mstring,
00575 out Properties nproperties);
00576
00579 void destroy ();
00580 };
00581 };
00582
00583 #endif