00001 // -*- C++ -*- 00002 00003 /** 00004 * @file ECG_ConsumerEC_Control.h 00005 * 00006 * ECG_ConsumerEC_Control.h,v 1.9 2006/03/15 07:52:21 jtc Exp 00007 * 00008 * @author Johnny Willemsen (jwillemsen@remedy.nl) 00009 * 00010 */ 00011 00012 #ifndef TAO_ECG_ConsumerEC_Control_H 00013 #define TAO_ECG_ConsumerEC_Control_H 00014 00015 #include /**/ "ace/pre.h" 00016 #include "ace/CORBA_macros.h" 00017 00018 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00019 # pragma once 00020 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00021 00022 #include "tao/Basic_Types.h" 00023 00024 #include /**/ "orbsvcs/Event/event_serv_export.h" 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 class TAO_EC_Gateway_IIOP; 00029 class TAO_EC_ProxyPushSupplier; 00030 00031 namespace CORBA 00032 { 00033 class Environment; 00034 class SystemException; 00035 } 00036 00037 /** 00038 * @class TAO_ECG_ConsumerEC_Control 00039 * 00040 * @brief EventChannelControl 00041 * 00042 * Defines the interface for the consumer event channel control strategy. 00043 * This strategy handles misbehaving or failing event channels that are consumer 00044 * of a gateway. 00045 */ 00046 class TAO_RTEvent_Serv_Export TAO_ECG_ConsumerEC_Control 00047 { 00048 public: 00049 /// Constructor. 00050 TAO_ECG_ConsumerEC_Control (void); 00051 00052 /// Destructor. 00053 virtual ~TAO_ECG_ConsumerEC_Control (void); 00054 00055 /// Activate any internal threads or timers used to poll the state of 00056 /// the event channel. 00057 virtual int activate (void); 00058 00059 /// Shutdown any internal threads or timers used to poll the state of 00060 /// the event channel. 00061 virtual int shutdown (void); 00062 00063 /** 00064 * When pushing an event to the event channel a CORBA::OBJECT_NOT_EXIST 00065 * exception was raised. The only interpretation is that the object 00066 * has been destroyed. The strategy has to (at the very least), 00067 * reclaim all the resources attached to that object. 00068 */ 00069 virtual void event_channel_not_exist (TAO_EC_Gateway_IIOP * gateway 00070 ACE_ENV_ARG_DECL_NOT_USED); 00071 00072 /// Some system exception was raised while trying to contact the 00073 /// event channel 00074 virtual void system_exception (TAO_EC_Gateway_IIOP * gateway, 00075 CORBA::SystemException & 00076 ACE_ENV_ARG_DECL_NOT_USED); 00077 }; 00078 00079 TAO_END_VERSIONED_NAMESPACE_DECL 00080 00081 #include /**/ "ace/post.h" 00082 00083 #endif /* TAO_ECG_ConsumerEC_Control_H */