EC_Filter_Builder.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /**
00003  *  @file   EC_Filter_Builder.h
00004  *
00005  *  $Id: EC_Filter_Builder.h 76589 2007-01-25 18:04:11Z elliott_c $
00006  *
00007  *  @author Carlos O'Ryan (coryan@cs.wustl.edu)
00008  *
00009  * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and
00010  * other members of the DOC group. More details can be found in:
00011  *
00012  * http://doc.ece.uci.edu/~coryan/EC/index.html
00013  */
00014 
00015 #ifndef TAO_EC_FILTER_BUILDER_H
00016 #define TAO_EC_FILTER_BUILDER_H
00017 
00018 #include /**/ "ace/pre.h"
00019 
00020 #include "orbsvcs/RtecEventChannelAdminC.h"
00021 
00022 #include /**/ "orbsvcs/Event/event_serv_export.h"
00023 
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif /* ACE_LACKS_PRAGMA_ONCE */
00027 
00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00029 
00030 class TAO_EC_Filter;
00031 class TAO_EC_ProxyPushSupplier;
00032 
00033 /**
00034  * @class TAO_EC_Filter_Builder
00035  *
00036  * @brief Abstract base class for the filter builders.
00037  *
00038  * The creation of a filter hierarchy is controlled by a
00039  * Filter_Builder. The relationship between TAO_EC_Filter and
00040  * TAO_EC_Filter_Builder follows the "Builder Pattern" (Gamma et
00041  * al.)
00042  */
00043 class TAO_RTEvent_Serv_Export TAO_EC_Filter_Builder
00044 {
00045 public:
00046   /// destructor...
00047   virtual ~TAO_EC_Filter_Builder (void);
00048 
00049   /// Create the filter, the caller must assume ownership of the filter
00050   /// returned.
00051   virtual TAO_EC_Filter*
00052       build (TAO_EC_ProxyPushSupplier *supplier,
00053              RtecEventChannelAdmin::ConsumerQOS& qos) const = 0;
00054 
00055 };
00056 
00057 // ****************************************************************
00058 
00059 /**
00060  * @class TAO_EC_Null_Filter_Builder
00061  *
00062  * @brief A simple implementation of the filter builder.
00063  *
00064  * Simply creates a Null_Filter in every case.
00065  */
00066 class TAO_RTEvent_Serv_Export TAO_EC_Null_Filter_Builder : public TAO_EC_Filter_Builder
00067 {
00068 public:
00069   /// constructor.
00070   TAO_EC_Null_Filter_Builder (void);
00071 
00072   /// destructor...
00073   virtual ~TAO_EC_Null_Filter_Builder (void);
00074 
00075   // = The TAO_EC_Filter_Builder methods...
00076   TAO_EC_Filter* build (TAO_EC_ProxyPushSupplier *supplier,
00077                         RtecEventChannelAdmin::ConsumerQOS& qos) const;
00078 };
00079 
00080 TAO_END_VERSIONED_NAMESPACE_DECL
00081 
00082 // ****************************************************************
00083 
00084 #if defined (__ACE_INLINE__)
00085 #include "orbsvcs/Event/EC_Filter_Builder.inl"
00086 #endif /* __ACE_INLINE__ */
00087 
00088 #include /**/ "ace/post.h"
00089 
00090 #endif /* TAO_EC_FILTER_BUILDER_H */

Generated on Tue Feb 2 17:44:05 2010 for TAO_RTEvent by  doxygen 1.4.7