OpenRTM  1.0.0
SDOPackage.idl
Go to the documentation of this file.
00001 //Platform Independent Model (PIM) and Platform Specific Model (PSM)
00002 //for Super Distributed Objects (SDO) Specification, v1.1 - OMG IDL Summary File
00003 //Object Management Group, Inc.
00004 //Copyright (c) 2003, Fraunhofer FOKUS
00005 //Copyright (c) 2003, Hitachi, Ltd.
00006 //The companies listed above have granted to the Object Management Group, Inc. 
00007 //(OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and 
00008 //distribute this document and to modify this document and distribute copies of 
00009 //the modified version. Each of the copyright holders listed above has agreed 
00010 //that no person shall be deemed to have infringed the copyright in the included 
00011 //material of any such copyright holder by reason of having used the 
00012 //specification set forth herein or having conformed any computer software to 
00013 //the specification. 
00014 //
00015 //This file contains OMG IDL from the Naming Service Specification, v1.2.
00016 //OMG regularly publishes a summary file that contains all the "code" parts of 
00017 //an OMG formal document. Every formal document line that is IDL, PIDL, or 
00018 //language code is included in the summary file. The reason for such a listing 
00019 //is to give readers an electronic version of the "code" so that they can 
00020 //extract pieces of it. Readers might want to test an example, include it in 
00021 //their own code, or use it for documentation purposes. Having the code lines 
00022 //available electronically means there is less likelihood of a transcription 
00023 //error. 
00024 //
00025 // ver 1.0  formal/2004-11-02
00026 // ver 1.1  (RTF report: dtc/2008-03-05)
00027 //
00028 //SDOPackage.idl
00029 
00030 #ifndef    _SDO_PACKAGE_IDL_
00031 #define    _SDO_PACKAGE_IDL_
00032 
00033 #ifdef TAO_IDL
00034 #include <orb.idl>
00035 #endif
00036 #ifdef USE_MONITORING
00037 #include <CosNotifyComm.idl>
00038 #endif
00039 #ifndef ORBIT2_IDL
00040 #define TypeCode CORBA::TypeCode
00041 #endif
00042 
00044 #pragma prefix "org.omg"
00045 #define exception_body { string description; }
00046 
00047 module SDOPackage
00048 {
00049   interface SDO;
00050   interface SDOService;
00051   interface SDOSystemElement;
00052   interface Configuration;
00053   interface Monitoring;
00054   interface Organization;
00055   
00057   typedef sequence<string>       StringList;
00058   typedef sequence<SDO>          SDOList;
00059   typedef sequence<Organization> OrganizationList;
00060   typedef string                 UniqueIdentifier;
00061 
00062   struct NameValue
00063   {
00064     string name;
00065     any value;
00066   };
00067 
00068   typedef sequence<NameValue>   NVList;
00069 
00070   enum NumericType
00071   {
00072     SHORT_TYPE,
00073     LONG_TYPE,
00074     FLOAT_TYPE,
00075     DOUBLE_TYPE
00076   };
00077 
00078   union Numeric switch (NumericType)
00079   {
00080   case SHORT_TYPE:  short short_value;
00081   case LONG_TYPE: long long_value;
00082   case FLOAT_TYPE: float float_value;
00083   case DOUBLE_TYPE: double double_value;
00084   };
00085 
00086   struct EnumerationType
00087   {
00088     StringList enumerated_values;
00089   };
00090 
00091   struct RangeType
00092   {
00093     Numeric min;
00094     Numeric max;
00095     boolean min_inclusive;
00096     boolean max_inclusive;
00097   };
00098 
00099   struct IntervalType
00100   {
00101     Numeric min;
00102     Numeric max;
00103     boolean min_inclusive;
00104     boolean max_inclusive;
00105     Numeric step;
00106   };
00107 
00108   enum ComplexDataType
00109   {
00110     ENUMERATION, RANGE, INTERVAL
00111   };
00112 
00113   union AllowedValues switch (ComplexDataType)
00114   {
00115   case ENUMERATION:    EnumerationType allowed_enum;
00116   case INTERVAL:       IntervalType allowed_interval;
00117   case RANGE:          RangeType   allowed_range;
00118   };
00119 
00120   struct Parameter
00121   {
00122     string         name;
00123 #ifndef ORBIT2_IDL
00124     TypeCode       type;
00125 #else
00126     TypeCode       type;
00127 #endif
00128     AllowedValues  allowed_values;
00129   };
00130 
00131   typedef sequence<Parameter> ParameterList;
00132   struct OrganizationProperty
00133   {
00134     NVList properties;
00135   };
00136   enum DependencyType
00137   {
00138     OWN,
00139     OWNED,
00140     NO_DEPENDENCY
00141   };
00142 
00143   struct DeviceProfile
00144   {
00145     string device_type;
00146     string manufacturer;
00147     string model;
00148     string version;
00149     NVList properties;
00150   };
00151 
00152   struct ServiceProfile
00153   {
00154     string id;
00155     string interface_type;
00156     NVList properties;
00157     SDOService service;
00158   };
00159 
00160   typedef sequence <ServiceProfile> ServiceProfileList;
00161   struct ConfigurationSet
00162   {
00163     string id;
00164     string description;
00165     NVList configuration_data;
00166   };
00167 
00168   typedef sequence<ConfigurationSet> ConfigurationSetList;
00169 
00170 
00172   exception NotAvailable             exception_body;
00173   exception InterfaceNotImplemented  exception_body;
00174   exception InvalidParameter         exception_body;
00175   exception InternalError            exception_body;
00176   
00178   interface SDOSystemElement
00179   {
00180     OrganizationList get_owned_organizations()
00181       raises (NotAvailable,InternalError);
00182   };
00183   interface SDO : SDOSystemElement
00184   {
00185     UniqueIdentifier get_sdo_id()
00186       raises (NotAvailable, InternalError);
00187     string get_sdo_type()
00188       raises (NotAvailable, InternalError);
00189     DeviceProfile get_device_profile ()
00190       raises (NotAvailable, InternalError);
00191     ServiceProfileList get_service_profiles ()
00192       raises (NotAvailable, InternalError);
00193     ServiceProfile get_service_profile (in UniqueIdentifier id)
00194       raises (InvalidParameter, NotAvailable, InternalError);
00195     SDOService get_sdo_service (in UniqueIdentifier id) 
00196       raises (InvalidParameter, NotAvailable, InternalError);
00197     Configuration get_configuration ()
00198       raises (InterfaceNotImplemented, NotAvailable, InternalError);
00199     Monitoring get_monitoring ()
00200       raises (InterfaceNotImplemented, NotAvailable, InternalError);
00201     OrganizationList get_organizations ()
00202       raises (NotAvailable, InternalError);
00203     NVList get_status_list ()
00204       raises (NotAvailable, InternalError);
00205     any get_status (in string nme)
00206       raises (InvalidParameter, NotAvailable, InternalError);
00207   };
00208 
00209 
00210   interface Configuration
00211   {
00212     boolean set_device_profile (in DeviceProfile dProfile)
00213       raises (InvalidParameter, NotAvailable, InternalError);
00214     boolean add_service_profile (in ServiceProfile sProfile)
00215       raises (InvalidParameter, NotAvailable, InternalError);
00216     boolean add_organization (in Organization organization_object)
00217       raises (InvalidParameter, NotAvailable, InternalError);
00218     boolean remove_service_profile (in UniqueIdentifier id)
00219       raises (InvalidParameter, NotAvailable, InternalError);
00220     boolean remove_organization (in UniqueIdentifier organization_id)
00221       raises (InvalidParameter, NotAvailable, InternalError);
00222     ParameterList get_configuration_parameters ()
00223       raises (NotAvailable, InternalError);
00224     NVList get_configuration_parameter_values ()
00225       raises (NotAvailable, InternalError);
00226     any get_configuration_parameter_value (in string name)
00227       raises (InvalidParameter, NotAvailable, InternalError);
00228     boolean set_configuration_parameter (in string name,
00229                                          in any value)
00230       raises (InvalidParameter, NotAvailable, InternalError);
00231     ConfigurationSetList get_configuration_sets ()
00232       raises (NotAvailable, InternalError);
00233     ConfigurationSet get_configuration_set (in UniqueIdentifier config_id)
00234       raises (NotAvailable, InternalError);
00235     boolean set_configuration_set_values (in ConfigurationSet configuration_set)
00236       raises (InvalidParameter, NotAvailable, InternalError);
00237     ConfigurationSet get_active_configuration_set ()
00238       raises (NotAvailable, InternalError);
00239     boolean add_configuration_set (in ConfigurationSet configuration_set)
00240       raises (InvalidParameter, NotAvailable, InternalError);
00241     boolean remove_configuration_set (in UniqueIdentifier config_id)
00242       raises (InvalidParameter, NotAvailable, InternalError);
00243     boolean activate_configuration_set (in UniqueIdentifier config_id)
00244       raises (InvalidParameter, NotAvailable, InternalError);
00245   };
00246 
00247 
00248 #ifdef USE_MONITORING
00249   interface Monitoring : CosNotifyComm::StructuredPushConsumer,
00250     CosNotifyComm::StructuredPushSupplier
00251   {
00252     any get_monitoring_parameter_value (in string name)
00253       raises (InvalidParameter, NotAvailable, InternalError);
00254     ParameterList get_monitoring_parameters ()
00255       raises (NotAvailable, InternalError);
00256     NVList get_monitoring_parameter_values ()
00257       raises (NotAvailable, InternalError);
00258   };
00259 #else
00260   interface Monitoring {};
00261 #endif
00262 
00263   interface SDOService {};
00264   
00265   interface Organization
00266   {
00267     UniqueIdentifier get_organization_id ()
00268       raises (InvalidParameter, NotAvailable, InternalError);
00269     OrganizationProperty get_organization_property ()
00270       raises (NotAvailable, InternalError);
00271     any get_organization_property_value (in string name)
00272       raises (InvalidParameter, NotAvailable, InternalError);
00273     boolean add_organization_property (in OrganizationProperty organization_property)
00274       raises (InvalidParameter, NotAvailable, InternalError);
00275     boolean set_organization_property_value (in string name,
00276                                              in any value)
00277       raises (InvalidParameter, NotAvailable, InternalError);
00278     boolean remove_organization_property ( in string name )
00279       raises (InvalidParameter, NotAvailable, InternalError);
00280     SDOSystemElement get_owner ()
00281       raises (NotAvailable, InternalError);
00282     boolean set_owner (in SDOSystemElement sdo) 
00283       raises (InvalidParameter, NotAvailable, InternalError);
00284     SDOList get_members ()
00285       raises (NotAvailable, InternalError);
00286     boolean set_members (in SDOList sdos) 
00287       raises (InvalidParameter, NotAvailable, InternalError);
00288     boolean add_members ( in SDOList sdo_list)
00289       raises (InvalidParameter, NotAvailable, InternalError);
00290     boolean remove_member (in UniqueIdentifier id)
00291       raises (InvalidParameter, NotAvailable, InternalError);
00292     DependencyType get_dependency()
00293       raises (NotAvailable, InternalError);
00294     boolean set_dependency (in DependencyType dependency) 
00295       raises (NotAvailable, InternalError);
00296   };
00297 };
00298 #endif //_SDO_PACKAGE_IDL_