diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp new file mode 100644 index 00000000000..c5d3dc1b72c --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp @@ -0,0 +1,112 @@ +// $Id$ + +#include "orbsvcs/Event/EC_Trivial_Supplier_Filter.h" +#include "orbsvcs/Event/EC_Event_Channel_Base.h" +#include "orbsvcs/Event/EC_ConsumerAdmin.h" +#include "orbsvcs/Event/EC_ProxySupplier.h" +#include "orbsvcs/Event/EC_QOS_Info.h" +#include "orbsvcs/Event/EC_Scheduling_Strategy.h" +#include "orbsvcs/Event/EC_ProxyConsumer.h" // @@ MSVC 6 bug + +ACE_RCSID(Event, EC_Trivial_Supplier_Filter, "$Id$") + +// **************************************************************** + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_EC_Trivial_Supplier_Filter:: + TAO_EC_Trivial_Supplier_Filter (TAO_EC_Event_Channel_Base* ec) + : event_channel_ (ec) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::bind (TAO_EC_ProxyPushConsumer*) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::unbind (TAO_EC_ProxyPushConsumer*) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::connected (TAO_EC_ProxyPushSupplier* + ACE_ENV_ARG_DECL_NOT_USED) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::reconnected (TAO_EC_ProxyPushSupplier* + ACE_ENV_ARG_DECL_NOT_USED) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::disconnected (TAO_EC_ProxyPushSupplier* + ACE_ENV_ARG_DECL_NOT_USED) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) +{ +} + +void +TAO_EC_Trivial_Supplier_Filter::push (const RtecEventComm::EventSet& event, + TAO_EC_ProxyPushConsumer *consumer + ACE_ENV_ARG_DECL) +{ + TAO_EC_Scheduling_Strategy* scheduling_strategy = + this->event_channel_->scheduling_strategy (); + scheduling_strategy->schedule_event (event, + consumer, + this + ACE_ENV_ARG_PARAMETER); +} + +void +TAO_EC_Trivial_Supplier_Filter::push_scheduled_event (RtecEventComm::EventSet &event, + const TAO_EC_QOS_Info &event_info + ACE_ENV_ARG_DECL) +{ + TAO_EC_Filter_Worker worker (event, event_info); + this->event_channel_->for_each_consumer (&worker + ACE_ENV_ARG_PARAMETER); +} + +CORBA::ULong +TAO_EC_Trivial_Supplier_Filter::_incr_refcnt (void) +{ + return 1; +} + +CORBA::ULong +TAO_EC_Trivial_Supplier_Filter::_decr_refcnt (void) +{ + return 1; +} + +// **************************************************************** + +TAO_EC_Trivial_Supplier_Filter_Builder:: + TAO_EC_Trivial_Supplier_Filter_Builder (TAO_EC_Event_Channel_Base *ec) + : filter_ (ec) +{ +} + +TAO_EC_Supplier_Filter* +TAO_EC_Trivial_Supplier_Filter_Builder::create ( + RtecEventChannelAdmin::SupplierQOS&) +{ + return &this->filter_; +} + +void +TAO_EC_Trivial_Supplier_Filter_Builder::destroy ( + TAO_EC_Supplier_Filter*) +{ +} + +TAO_END_VERSIONED_NAMESPACE_DECL |