00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Supplier_Filter_Builder.h 00005 * 00006 * $Id: EC_Supplier_Filter_Builder.h 71541 2006-03-15 07:52:22Z jtc $ 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_SUPPLIER_FILTER_BUILDER_H 00017 #define TAO_EC_SUPPLIER_FILTER_BUILDER_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "orbsvcs/RtecEventChannelAdminC.h" 00022 00023 #include /**/ "orbsvcs/Event/event_serv_export.h" 00024 00025 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00026 # pragma once 00027 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 class TAO_EC_Supplier_Filter; 00032 class TAO_EC_ProxyPushConsumer; 00033 00034 /** 00035 * @class TAO_EC_Supplier_Filter_Builder 00036 * 00037 * @brief Abstract base class for the supplier filter builders. 00038 * 00039 * The creation of the right filter for each supplier controlled 00040 * by a Supplier_Filter_Builder. 00041 */ 00042 class TAO_RTEvent_Serv_Export TAO_EC_Supplier_Filter_Builder 00043 { 00044 public: 00045 /// Destructor... 00046 virtual ~TAO_EC_Supplier_Filter_Builder (void); 00047 00048 /** 00049 * Create the filter. The consumer is bound to the returned 00050 * Supplier_Filter, it must be unbound upon destruction and/or 00051 * disconnection. 00052 */ 00053 virtual TAO_EC_Supplier_Filter* 00054 create (RtecEventChannelAdmin::SupplierQOS& qos) = 0; 00055 00056 /// The user is returning the filter for destruction/recycling. 00057 virtual void 00058 destroy (TAO_EC_Supplier_Filter *filter) = 0; 00059 }; 00060 00061 TAO_END_VERSIONED_NAMESPACE_DECL 00062 00063 // **************************************************************** 00064 00065 #include /**/ "ace/post.h" 00066 00067 #endif /* TAO_EC_FILTER_BUILDER_H */