00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Channel_Destroyer.h 00005 * 00006 * @author Marina Spivak <marina@atdesk.com> 00007 * 00008 * $Id: EC_Channel_Destroyer.h 77276 2007-02-21 08:26:36Z johnnyw $ 00009 */ 00010 #ifndef EC_CHANNEL_DESTROYER__H_ 00011 #define EC_CHANNEL_DESTROYER__H_ 00012 00013 #include /**/ "orbsvcs/Event/event_serv_export.h" 00014 #include "orbsvcs/Event/EC_Event_Channel_Base.h" 00015 #include "ace/Auto_Functor.h" 00016 00017 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00018 00019 /** 00020 * @struct TAO_EC_Channel_Destroyer_Functor 00021 * 00022 * @brief Implements a functor for the TAO_EC_Channel_Destroyer class. 00023 */ 00024 struct TAO_RTEvent_Serv_Export TAO_EC_Channel_Destroyer_Functor 00025 { 00026 typedef TAO_EC_Event_Channel_Base * argument; 00027 00028 /// Destroy @c event_channel 00029 void operator() (TAO_EC_Event_Channel_Base * event_channel) throw (); 00030 }; 00031 00032 /** 00033 * @class TAO_EC_Channel_Destroyer 00034 * 00035 * @brief Helper class to destroy event channel. 00036 * 00037 */ 00038 typedef ACE_Utils::Auto_Functor< 00039 TAO_EC_Event_Channel_Base, 00040 TAO_EC_Channel_Destroyer_Functor> 00041 TAO_EC_Channel_Destroyer; 00042 00043 TAO_END_VERSIONED_NAMESPACE_DECL 00044 00045 #endif // EC_CHANNEL_DESTROYER__H_