00001 // -*- IDL -*- 00027 /* 00028 * $Log: RTCOutPort.idl,v $ 00029 * Revision 1.1.1.1 2005/05/12 09:06:18 n-ando 00030 * Public release. 00031 * 00032 * 00033 */ 00034 00035 #ifndef __RTCOutPort_idl__ 00036 #define __RTCOutPort_idl__ 00037 00038 00039 #include "RTMBase.idl" 00040 #include "RTCInPort.idl" 00041 00042 00043 module RTM { 00044 00054 typedef short SubscriptionType; 00055 00056 00077 const SubscriptionType OPS_ONCE = 0; 00078 00092 const SubscriptionType OPS_PERIODIC = 1; 00093 00108 const SubscriptionType OPS_NEW = 2; 00109 00126 const SubscriptionType OPS_TRIGGERED = 3; 00127 00146 const SubscriptionType OSP_PERIODIC_NEW = 4; 00147 00164 const SubscriptionType OPS_NEW_PERIODIC = 5; 00165 00182 const SubscriptionType OPS_PERIODIC_TRIGGERED = 6; 00183 00200 const SubscriptionType OPS_TRIGGERRED_PERIODIC = 7; 00201 00202 00217 struct SubscriberProfile 00218 { 00239 SubscriptionType subscription_type; 00240 00248 boolean event_base; 00249 00258 NVList properties; 00259 }; 00260 00261 00281 interface OutPort 00282 { 00290 any get(); 00291 00299 RtmRes subscribe(in InPort in_port, out SubscriptionID id, 00300 in SubscriberProfile profile); 00301 00309 RtmRes unsubscribe(in SubscriptionID id); 00310 00318 readonly attribute InPortList inports; 00319 00327 readonly attribute PortProfile profile; 00328 }; 00329 00337 typedef sequence<OutPort> OutPortList; 00338 00339 00340 }; // end of module RTM 00341 00342 #endif // __RTCOutPort_idl__ 00343