00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Proxy_Disconnector.h 00005 * 00006 * @author Carlos O'Ryan <coryan@atdesk.com> 00007 * 00008 * EC_Proxy_Disconnector.h,v 1.8 2006/03/15 07:52:22 jtc Exp 00009 */ 00010 #ifndef EC_PROXY_DISCONNECTOR__H_ 00011 #define EC_PROXY_DISCONNECTOR__H_ 00012 00013 #include /**/ "orbsvcs/Event/event_serv_export.h" 00014 #include "orbsvcs/RtecEventCommC.h" 00015 #include "ace/Auto_Functor.h" 00016 00017 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00018 00019 /** 00020 * @struct TAO_EC_Supplier_Proxy_Disconnect_Functor 00021 * 00022 * @brief Implements a functor for the TAO_EC_Supplier_Proxy_Disconnector class. 00023 */ 00024 struct TAO_RTEvent_Serv_Export TAO_EC_Supplier_Proxy_Disconnect_Functor 00025 { 00026 typedef RtecEventComm::PushSupplier_ptr argument; 00027 00028 /// Disconnect from @c supplier 00029 void operator() (RtecEventComm::PushSupplier_ptr supplier) 00030 ACE_THROW_SPEC (()); 00031 }; 00032 00033 /** 00034 * @class TAO_EC_Supplier_Proxy_Disconnector 00035 * 00036 * @brief Helper class to disconnect a PushConsumer from the event 00037 * channel. 00038 * 00039 */ 00040 typedef ACE_Utils::Auto_Functor< 00041 RtecEventComm::PushSupplier, 00042 TAO_EC_Supplier_Proxy_Disconnect_Functor> 00043 TAO_EC_Supplier_Proxy_Disconnector; 00044 00045 00046 00047 /** 00048 * @struct TAO_EC_Consumer_Proxy_Disconnect_Functor 00049 * 00050 * @brief Implements a functor for the TAO_EC_Consumer_Proxy_Disconnector class. 00051 */ 00052 struct TAO_RTEvent_Serv_Export TAO_EC_Consumer_Proxy_Disconnect_Functor 00053 { 00054 typedef RtecEventComm::PushConsumer_ptr argument; 00055 00056 /// Disconnect from @c consumer 00057 void operator() (RtecEventComm::PushConsumer_ptr consumer) 00058 ACE_THROW_SPEC (()); 00059 }; 00060 00061 /** 00062 * @class TAO_EC_Consumer_Proxy_Disconnector 00063 * 00064 * @brief Helper class to disconnect a PushSupplier from the event 00065 * channel. 00066 * 00067 */ 00068 typedef ACE_Utils::Auto_Functor< 00069 RtecEventComm::PushConsumer, 00070 TAO_EC_Consumer_Proxy_Disconnect_Functor> 00071 TAO_EC_Consumer_Proxy_Disconnector; 00072 00073 00074 TAO_END_VERSIONED_NAMESPACE_DECL 00075 00076 #endif // EC_PROXY_DISCONNECTOR__H_