Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

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.0 - 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 //SDOPackage.idl
00025 
00026 /*
00027  * $Log: SDOPackage.idl,v $
00028  * Revision 1.1  2006/04/04 06:09:31  n-ando
00029  * - SDO package based on SDO PSM.
00030  * - Original SDO PSM (CORBA IDL) was modified for some syntax errors
00031  *   and some idl compiler's limitation.
00032  * - TCKind was changed to TypeCode. Because TCKind is internal enum
00033  *   of CORBA implementation (omniidl does not understand TCKind.)
00034  * - Since OpenRTM-aist does not use "SDO Monitoring interface" that
00035  *   inherits CosNotify service, new Monitoring interface was defined.
00036  *
00037  */
00038 
00039 #ifndef    _SDO_PACKAGE_IDL_
00040 #define    _SDO_PACKAGE_IDL_
00041 
00042 #ifdef TAO_IDL
00043 #include <orb.idl>
00044 #endif
00045 #ifdef USE_MONITORING
00046 #include <CosNotifyComm.idl>
00047 #endif
00048 #ifndef ORBIT2_IDL
00049 #define TypeCode CORBA::TypeCode
00050 #endif
00051 
00053 #pragma prefix "org.omg"
00054 #define exception_body { string description; }
00055 
00056 module SDOPackage
00057 {
00058   interface SDO;
00059   interface SDOService;
00060   interface SDOSystemElement;
00061   interface Configuration;
00062   interface Monitoring;
00063   interface Organization;
00064   
00066   typedef sequence<string>       StringList;
00067   typedef sequence<SDO>          SDOList;
00068   typedef sequence<Organization> OrganizationList;
00069   typedef string                 UniqueIdentifier;
00070 
00071   struct NameValue
00072   {
00073         string name;
00074         any value;
00075   };
00076 
00077   typedef sequence<NameValue>   NVList;
00078 
00079   enum NumericType
00080   {
00081         SHORT_TYPE,
00082         LONG_TYPE,
00083         FLOAT_TYPE,
00084         DOUBLE_TYPE
00085   };
00086 
00087   union Numeric switch (NumericType)
00088   {
00089   case SHORT_TYPE:  short short_value;
00090   case LONG_TYPE: long long_value;
00091   case FLOAT_TYPE: float float_value;
00092   case DOUBLE_TYPE: double double_value;
00093   };
00094 
00095   struct EnumerationType
00096   {
00097         StringList enumerated_values;
00098   };
00099 
00100   struct RangeType
00101   {
00102         Numeric min;
00103         Numeric max;
00104         boolean min_inclusive;
00105         boolean max_inclusive;
00106   };
00107 
00108   struct IntervalType
00109   {
00110         Numeric min;
00111         Numeric max;
00112         boolean min_inclusive;
00113         boolean max_inclusive;
00114         Numeric step;
00115   };
00116 
00117   enum ComplexDataType
00118   {
00119         ENUMERATION, RANGE, INTERVAL
00120   };
00121 
00122   union AllowedValues switch (ComplexDataType)
00123   {
00124   case ENUMERATION:     EnumerationType allowed_enum;
00125   case INTERVAL:                IntervalType allowed_interval;
00126   case RANGE:           RangeType   allowed_range;
00127   };
00128 
00129   struct Parameter
00130   {
00131         string         name;
00132         TypeCode  type;
00133         AllowedValues allowed_values;
00134   };
00135 
00136   typedef sequence<Parameter> ParameterList;
00137   struct OrganizationProperty
00138   {
00139         NVList properties;
00140   };
00141 
00142   enum DependencyType
00143   {
00144         OWN,
00145         OWNED,
00146         NO_DEPENDENCY
00147   };
00148   
00149   struct DeviceProfile
00150   {
00151         string device_type;
00152         string manufacturer;
00153         string model;
00154         string version;
00155         NVList properties;
00156   };
00157 
00158   struct ServiceProfile
00159   {
00160         string id;
00161         string interface_type;
00162         NVList properties;
00163         SDOService service;
00164   };
00165 
00166   typedef sequence <ServiceProfile> ServiceProfileList;
00167   struct ConfigurationSet
00168   {
00169         string id;
00170         string description;
00171         NVList configuration_data;
00172   };
00173 
00174   typedef sequence<ConfigurationSet> ConfigurationSetList;
00175   
00177   exception NotAvailable                     exception_body;
00178   exception InterfaceNotImplemented  exception_body;
00179   exception InvalidParameter             exception_body;
00180   exception InternalError                    exception_body;
00181   
00183   interface SDOSystemElement
00184   {
00185         OrganizationList get_owned_organizations()
00186           raises (NotAvailable);
00187   };
00188 
00189   interface SDO : SDOSystemElement
00190   {
00191         UniqueIdentifier get_sdo_id()
00192           raises (NotAvailable, InternalError);
00193         string get_sdo_type()
00194           raises (NotAvailable, InternalError);
00195         DeviceProfile get_device_profile ()
00196           raises (NotAvailable, InternalError);
00197         ServiceProfileList get_service_profiles ()
00198           raises (NotAvailable, InternalError);
00199         ServiceProfile get_service_profile (in UniqueIdentifier id)
00200           raises (InvalidParameter, NotAvailable, InternalError);
00201         SDOService get_sdo_service (in UniqueIdentifier id) 
00202           raises (InvalidParameter, NotAvailable, InternalError);
00203         Configuration get_configuration ()
00204           raises (InterfaceNotImplemented, NotAvailable, InternalError);
00205         Monitoring get_monitoring ()
00206           raises (InterfaceNotImplemented, NotAvailable, InternalError);
00207         OrganizationList get_organizations ()
00208           raises (NotAvailable, InternalError);
00209         NVList get_status_list ()
00210           raises (NotAvailable, InternalError);
00211         any get_status (in string name)
00212           raises (InvalidParameter, NotAvailable, InternalError);
00213   };
00214   
00215   interface Configuration
00216   {
00217         boolean set_device_profile (in DeviceProfile dProfile)
00218           raises (InvalidParameter, NotAvailable, InternalError);
00219         boolean set_service_profile (in ServiceProfile sProfile)
00220           raises (InvalidParameter, NotAvailable, InternalError);
00221         boolean add_organization (in Organization org)
00222           raises (InvalidParameter, NotAvailable, InternalError);
00223         boolean remove_service_profile (in UniqueIdentifier id)
00224           raises (InvalidParameter, NotAvailable, InternalError);
00225         boolean remove_organization (in UniqueIdentifier organization_id)
00226           raises (InvalidParameter, NotAvailable, InternalError);
00227         ParameterList get_configuration_parameters ()
00228           raises (NotAvailable, InternalError);
00229         NVList get_configuration_parameter_values ()
00230           raises (NotAvailable, InternalError);
00231         any get_configuration_parameter_value (in string name)
00232           raises (InvalidParameter, NotAvailable, InternalError);
00233         boolean set_configuration_parameter (in string name,
00234                                                                                  in any value)
00235           raises (InvalidParameter, NotAvailable, InternalError);
00236         ConfigurationSetList get_configuration_sets ()
00237           raises (NotAvailable, InternalError);
00238         ConfigurationSet get_configuration_set (in UniqueIdentifier config_id)
00239           raises (NotAvailable, InternalError);
00240         boolean set_configuration_set_values (in UniqueIdentifier config_id,
00241                                                                                   in ConfigurationSet configuration_set)
00242           raises (InvalidParameter, NotAvailable, InternalError);
00243         ConfigurationSet get_active_configuration_set ()
00244           raises (NotAvailable, InternalError);
00245         boolean add_configuration_set (in ConfigurationSet configuration_set)
00246           raises (InvalidParameter, NotAvailable, InternalError);
00247         boolean remove_configuration_set (in UniqueIdentifier config_id)
00248           raises (InvalidParameter, NotAvailable, InternalError);
00249         boolean activate_configuration_set (in UniqueIdentifier config_id)
00250           raises (InvalidParameter, NotAvailable, InternalError);
00251   };
00252   
00253 #ifdef USE_MONITORING
00254   interface Monitoring : CosNotifyComm::StructuredPushConsumer,
00255         CosNotifyComm::StructuredPushSupplier
00256   {
00257         any get_monitoring_parameter_value (in string name)
00258           raises (InvalidParameter, NotAvailable, InternalError);
00259         ParameterList get_monitoring_parameters ()
00260           raises (NotAvailable, InternalError);
00261         NVList get_monitoring_parameter_values ()
00262           raises (NotAvailable, InternalError);
00263   };
00264 #else
00265   interface Monitoring {};
00266 #endif
00267 
00268   interface SDOService {};
00269   
00270   interface Organization
00271   {
00272         UniqueIdentifier get_organization_id ()
00273           raises (InvalidParameter, NotAvailable, InternalError);
00274         OrganizationProperty get_organization_property ()
00275           raises (NotAvailable, InternalError);
00276         any get_organization_property_value (in string name)
00277           raises (InvalidParameter, NotAvailable, InternalError);
00278         boolean set_organization_property (in OrganizationProperty organization_property)
00279           raises (InvalidParameter, NotAvailable, InternalError);
00280         boolean set_organization_property_value (in string name,
00281                                                                                          in any value )
00282           raises (InvalidParameter, NotAvailable, InternalError);
00283         boolean remove_organization_property ( in string name )
00284           raises (InvalidParameter, NotAvailable, InternalError);
00285         SDOSystemElement get_owner ()
00286           raises (NotAvailable, InternalError);
00287         boolean set_owner (in SDOSystemElement sdo) 
00288           raises (InvalidParameter, NotAvailable, InternalError);
00289         SDOList get_members ()
00290           raises (NotAvailable, InternalError);
00291         boolean set_members (in SDOList sdos) 
00292           raises (InvalidParameter, NotAvailable, InternalError);
00293         boolean add_members ( in SDOList sdo_list)
00294           raises (InvalidParameter, NotAvailable, InternalError);
00295         boolean remove_member (in UniqueIdentifier id)
00296           raises (InvalidParameter, NotAvailable, InternalError);
00297         DependencyType get_dependency()
00298           raises (NotAvailable, InternalError);
00299         boolean set_dependency (in DependencyType dependency) 
00300           raises (NotAvailable, InternalError);
00301   };
00302 };
00303 #endif //_SDO_PACKAGE_IDL_

Generated on Fri Oct 5 05:17:14 2007 for OpenRTM by  doxygen 1.4.1