00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file CEC_Pulling_Strategy.h 00006 * 00007 * $Id: CEC_Pulling_Strategy.h 76589 2007-01-25 18:04:11Z elliott_c $ 00008 * 00009 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_CEC_PULLING_STRATEGY_H 00015 #define TAO_CEC_PULLING_STRATEGY_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 #include "orbsvcs/CosEvent/event_serv_export.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 #include "tao/Basic_Types.h" 00026 00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00028 00029 /** 00030 * @class TAO_CEC_Pulling_Strategy 00031 * 00032 * @brief Define the interface for the pulling strategies. 00033 * 00034 * The EC may be configured with different pulling strategies, 00035 * for instance, it can use a pool of threads to dispatch the 00036 * events, or a set of queues with threads at different priorities 00037 * for each queue or can simply push the event to the consumer in 00038 * FIFO order. 00039 */ 00040 class TAO_Event_Serv_Export TAO_CEC_Pulling_Strategy 00041 { 00042 public: 00043 /// destructor... 00044 virtual ~TAO_CEC_Pulling_Strategy (void); 00045 00046 /// Initialize all the data structures, activate any internal threads, 00047 /// etc. 00048 virtual void activate (void) = 0; 00049 00050 /** 00051 * Deactivate any internal threads and cleanup internal data 00052 * structures, it should only return once the threads have finished 00053 * their jobs. 00054 */ 00055 virtual void shutdown (void) = 0; 00056 00057 #if 0 00058 /// Some strategies may want to keep track of connected consumers. 00059 virtual void connected (TAO_CEC_ProxyPullConsumer *) = 0; 00060 virtual void reconnected (TAO_CEC_ProxyPullConsumer *) = 0; 00061 virtual void diconnected (TAO_CEC_ProxyPullConsumer *) = 0; 00062 #endif /* 0 */ 00063 }; 00064 00065 TAO_END_VERSIONED_NAMESPACE_DECL 00066 00067 #include /**/ "ace/post.h" 00068 #endif /* TAO_CEC_PULLING_STRATEGY_H */
1.4.7