00001 // -*- IDL -*- 00022 #ifndef __RTCOutPort_idl__ 00023 #define __RTCOutPort_idl__ 00024 00025 00026 #include "RTMBase.idl" 00027 #include "RTCInPort.idl" 00028 00029 00030 module RTM { 00031 00041 typedef short SubscriptionType; 00042 00043 00064 const SubscriptionType OPS_ONCE = 0; 00065 00079 const SubscriptionType OPS_PERIODIC = 1; 00080 00095 const SubscriptionType OPS_NEW = 2; 00096 00113 const SubscriptionType OPS_TRIGGERED = 3; 00114 00133 const SubscriptionType OSP_PERIODIC_NEW = 4; 00134 00151 const SubscriptionType OPS_NEW_PERIODIC = 5; 00152 00169 const SubscriptionType OPS_PERIODIC_TRIGGERED = 6; 00170 00187 const SubscriptionType OPS_TRIGGERRED_PERIODIC = 7; 00188 00189 00204 struct SubscriberProfile 00205 { 00226 SubscriptionType subscription_type; 00227 00235 boolean event_base; 00236 00245 NVList properties; 00246 }; 00247 00248 00268 interface OutPort 00269 { 00277 any get(); 00278 00286 RtmRes subscribe(in InPort in_port, out SubscriptionID id, 00287 in SubscriberProfile profile); 00288 00296 RtmRes unsubscribe(in SubscriptionID id); 00297 00305 readonly attribute InPortList inports; 00306 00314 readonly attribute PortProfile profile; 00315 }; 00316 00324 typedef sequence<OutPort> OutPortList; 00325 00326 00327 }; // end of module RTM 00328 00329 #endif // __RTCOutPort_idl__ 00330