00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Proxy_Disconnector.h 00005 * 00006 * @author Carlos O'Ryan <coryan@atdesk.com> 00007 * 00008 * $Id: EC_Proxy_Disconnector.h 77276 2007-02-21 08:26:36Z johnnyw $ 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) throw (); 00030 }; 00031 00032 /** 00033 * @class TAO_EC_Supplier_Proxy_Disconnector 00034 * 00035 * @brief Helper class to disconnect a PushConsumer from the event 00036 * channel. 00037 * 00038 */ 00039 typedef ACE_Utils::Auto_Functor< 00040 RtecEventComm::PushSupplier, 00041 TAO_EC_Supplier_Proxy_Disconnect_Functor> 00042 TAO_EC_Supplier_Proxy_Disconnector; 00043 00044 00045 00046 /** 00047 * @struct TAO_EC_Consumer_Proxy_Disconnect_Functor 00048 * 00049 * @brief Implements a functor for the TAO_EC_Consumer_Proxy_Disconnector class. 00050 */ 00051 struct TAO_RTEvent_Serv_Export TAO_EC_Consumer_Proxy_Disconnect_Functor 00052 { 00053 typedef RtecEventComm::PushConsumer_ptr argument; 00054 00055 /// Disconnect from @c consumer 00056 void operator() (RtecEventComm::PushConsumer_ptr consumer) throw (); 00057 }; 00058 00059 /** 00060 * @class TAO_EC_Consumer_Proxy_Disconnector 00061 * 00062 * @brief Helper class to disconnect a PushSupplier from the event 00063 * channel. 00064 * 00065 */ 00066 typedef ACE_Utils::Auto_Functor< 00067 RtecEventComm::PushConsumer, 00068 TAO_EC_Consumer_Proxy_Disconnect_Functor> 00069 TAO_EC_Consumer_Proxy_Disconnector; 00070 00071 00072 TAO_END_VERSIONED_NAMESPACE_DECL 00073 00074 #endif // EC_PROXY_DISCONNECTOR__H_