CEC_Pulling_Strategy.h

Go to the documentation of this file.
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 */

Generated on Tue Feb 2 17:44:51 2010 for TAO_CosEvent by  doxygen 1.4.7