00001
00022 #ifndef __RTComponent_idl__
00023 #define __RTComponent_idl__
00024
00025 #include "RTMBase.idl"
00026 #include "RTCInPort.idl"
00027 #include "RTCOutPort.idl"
00028
00029
00030 module RTM {
00031
00047 interface RTComponent
00048
00049 {
00057 readonly attribute string instance_id;
00058
00066 readonly attribute string implementation_id;
00067
00075 readonly attribute string description;
00076
00084 readonly attribute string version;
00085
00093 readonly attribute string maker;
00094
00102 readonly attribute string category;
00103
00111 typedef short ComponentState;
00112
00113
00114
00115
00117 const ComponentState RTC_UNKNOWN = 0;
00119 const ComponentState RTC_BORN = 1;
00121 const ComponentState RTC_INITIALIZING = 2;
00123 const ComponentState RTC_READY = 3;
00125 const ComponentState RTC_STARTING = 4;
00127 const ComponentState RTC_ACTIVE = 5;
00129 const ComponentState RTC_STOPPING = 6;
00131 const ComponentState RTC_ABORTING = 7;
00133 const ComponentState RTC_ERROR = 8;
00135 const ComponentState RTC_FATAL_ERROR = 9;
00137 const ComponentState RTC_EXITING = 10;
00138
00146 exception IllegalTransition {};
00147
00148
00149
00150
00166 RtmRes rtc_start() raises (IllegalTransition);
00167
00183 RtmRes rtc_stop() raises (IllegalTransition);
00184
00201 RtmRes rtc_reset() raises (IllegalTransition);
00202
00217 RtmRes rtc_exit() raises (IllegalTransition);
00218
00233 RtmRes rtc_kill();
00234
00235
00236
00237
00238
00258 RtmRes rtc_worker();
00259
00260
00261
00262
00263
00276 readonly attribute OutPort rtc_state;
00277
00278
00279
00280
00294 exception NoSuchName { string name; };
00295
00296
00297
00298
00311 readonly attribute InPortList inports;
00312
00329 InPort get_inport(in string name) raises (NoSuchName);
00330
00343 readonly attribute OutPortList outports;
00344
00361 OutPort get_outport(in string name) raises (NoSuchName);
00362
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373 };
00374
00382 typedef sequence<RTComponent> RTComponentList;
00383
00384 };
00385
00386 #endif // __RTComponent_idl__