EC_Prefix_Filter_Builder.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file   EC_Prefix_Filter_Builder.h
00004  *
00005  *  $Id: EC_Prefix_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_PREFIX_FILTER_BUILDER_H
00016 #define TAO_EC_PREFIX_FILTER_BUILDER_H
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "orbsvcs/Event/EC_Filter_Builder.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 
00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00027 
00028 class TAO_EC_Filter;
00029 class TAO_EC_Event_Channel_Base;
00030 
00031 /**
00032  * @class TAO_EC_Prefix_Filter_Builder
00033  *
00034  * @brief Implement a builder for the fundamental filters.
00035  *
00036  * The prefix filtering mechanisms in the Event channel
00037  * (source/type based filtering + disjunctions and conjunctions)
00038  * are constructed using this class.
00039  */
00040 class TAO_RTEvent_Serv_Export TAO_EC_Prefix_Filter_Builder : public TAO_EC_Filter_Builder
00041 {
00042 public:
00043   /// constructor.
00044   TAO_EC_Prefix_Filter_Builder (TAO_EC_Event_Channel_Base* ec);
00045 
00046   /// destructor...
00047   virtual ~TAO_EC_Prefix_Filter_Builder (void);
00048 
00049   // = The TAO_EC_Filter_Builder methods...
00050   TAO_EC_Filter* build (TAO_EC_ProxyPushSupplier *supplier,
00051                         RtecEventChannelAdmin::ConsumerQOS& qos) const;
00052 
00053 private:
00054   /// Recursively build the filter tree.
00055   TAO_EC_Filter* recursive_build (TAO_EC_ProxyPushSupplier *supplier,
00056                                   RtecEventChannelAdmin::ConsumerQOS& qos,
00057                                   CORBA::ULong& pos) const;
00058 
00059 private:
00060   /// The event channel.
00061   TAO_EC_Event_Channel_Base* event_channel_;
00062 };
00063 
00064 TAO_END_VERSIONED_NAMESPACE_DECL
00065 
00066 #if defined (__ACE_INLINE__)
00067 #include "orbsvcs/Event/EC_Prefix_Filter_Builder.inl"
00068 #endif /* __ACE_INLINE__ */
00069 
00070 #include /**/ "ace/post.h"
00071 #endif /* TAO_EC_PREFIX_FILTER_BUILDER_H */

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