00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Channel_Destroyer.h 00005 * 00006 * @author Marina Spivak <marina@atdesk.com> 00007 * 00008 * EC_Channel_Destroyer.h,v 1.8 2006/03/15 07:52:21 jtc Exp 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) 00030 ACE_THROW_SPEC (()); 00031 }; 00032 00033 /** 00034 * @class TAO_EC_Channel_Destroyer 00035 * 00036 * @brief Helper class to destroy event channel. 00037 * 00038 */ 00039 typedef ACE_Utils::Auto_Functor< 00040 TAO_EC_Event_Channel_Base, 00041 TAO_EC_Channel_Destroyer_Functor> 00042 TAO_EC_Channel_Destroyer; 00043 00044 TAO_END_VERSIONED_NAMESPACE_DECL 00045 00046 #endif // EC_CHANNEL_DESTROYER__H_