00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Reactive_Dispatching.h 00005 * 00006 * EC_Reactive_Dispatching.h,v 1.9 2006/03/15 07:52:22 jtc Exp 00007 * 00008 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00009 * 00010 * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and 00011 * other members of the DOC group. More details can be found in: 00012 * 00013 * http://doc.ece.uci.edu/~coryan/EC/index.html 00014 */ 00015 00016 #ifndef TAO_EC_REACTIVE_DISPATCHING_H 00017 #define TAO_EC_REACTIVE_DISPATCHING_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "orbsvcs/Event/EC_Dispatching.h" 00022 00023 #include /**/ "orbsvcs/Event/event_serv_export.h" 00024 00025 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00026 # pragma once 00027 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 /** 00032 * @class TAO_EC_Reactive_Dispatching 00033 * 00034 * @brief Dispatch using the caller thread. 00035 * 00036 * The events are dispatched in FIFO ordering, using the invoking 00037 * thread to push the event to the consumer. 00038 */ 00039 class TAO_RTEvent_Serv_Export TAO_EC_Reactive_Dispatching : public TAO_EC_Dispatching 00040 { 00041 public: 00042 /// The scheduler is used to find the range of priorities and similar 00043 /// info. 00044 TAO_EC_Reactive_Dispatching (void); 00045 00046 // = The EC_Dispatching methods. 00047 virtual void activate (void); 00048 virtual void shutdown (void); 00049 virtual void push (TAO_EC_ProxyPushSupplier *proxy, 00050 RtecEventComm::PushConsumer_ptr consumer, 00051 const RtecEventComm::EventSet &event, 00052 TAO_EC_QOS_Info &qos_info 00053 ACE_ENV_ARG_DECL_WITH_DEFAULTS); 00054 virtual void push_nocopy (TAO_EC_ProxyPushSupplier *proxy, 00055 RtecEventComm::PushConsumer_ptr consumer, 00056 RtecEventComm::EventSet &event, 00057 TAO_EC_QOS_Info &qos_info 00058 ACE_ENV_ARG_DECL_WITH_DEFAULTS); 00059 }; 00060 00061 TAO_END_VERSIONED_NAMESPACE_DECL 00062 00063 #include /**/ "ace/post.h" 00064 00065 #endif /* TAO_EC_REACTIVE_DISPATCHING_H */