00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_SupplierControl.h 00005 * 00006 * EC_SupplierControl.h,v 1.18 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_SUPPLIERCONTROL_H 00017 #define TAO_EC_SUPPLIERCONTROL_H 00018 00019 #include /**/ "ace/pre.h" 00020 #include "ace/CORBA_macros.h" 00021 00022 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00023 # pragma once 00024 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00025 00026 #include /**/ "orbsvcs/Event/event_serv_export.h" 00027 00028 #include "tao/Versioned_Namespace.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 class TAO_EC_ProxyPushConsumer; 00033 00034 namespace CORBA 00035 { 00036 class Environment; 00037 class SystemException; 00038 } 00039 00040 /** 00041 * @class TAO_EC_SupplierControl 00042 * 00043 * @brief SupplierControl 00044 * 00045 * Defines the interface for the supplier control strategy. 00046 * This strategy handles misbehaving or failing suppliers. 00047 */ 00048 class TAO_RTEvent_Serv_Export TAO_EC_SupplierControl 00049 { 00050 public: 00051 /// Constructor. 00052 TAO_EC_SupplierControl (void); 00053 00054 /// Destructor. 00055 virtual ~TAO_EC_SupplierControl (void); 00056 00057 /// Activate any internal threads or timers used to poll the state of 00058 /// the suppliers 00059 virtual int activate (void); 00060 virtual int shutdown (void); 00061 00062 /** 00063 * Invoked by helper classes when they detect that a supplier does 00064 * not exists (i.e. _non_existent() returns true and/or the 00065 * CORBA::OBJECT_NOT_EXIST exception has been raised). 00066 */ 00067 virtual void supplier_not_exist (TAO_EC_ProxyPushConsumer *proxy 00068 ACE_ENV_ARG_DECL_NOT_USED); 00069 00070 /// Some system exception was raised while trying to contact the 00071 /// supplier 00072 virtual void system_exception (TAO_EC_ProxyPushConsumer * proxy, 00073 CORBA::SystemException & 00074 ACE_ENV_ARG_DECL_NOT_USED); 00075 }; 00076 00077 TAO_END_VERSIONED_NAMESPACE_DECL 00078 00079 #include /**/ "ace/post.h" 00080 00081 #endif /* TAO_EC_SUPPLIERCONTROL_H */