diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h b/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h deleted file mode 100644 index f889cfb8214..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxySupplier.h +++ /dev/null @@ -1,176 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// ORBSVCS Real-time Event Channel -// -// = FILENAME -// EC_ProxySupplier -// -// = AUTHOR -// Carlos O'Ryan (coryan@cs.wustl.edu) -// -// = CREDITS -// Based on previous work by Tim Harrison (harrison@cs.wustl.edu) -// and other members of the DOC group. -// More details can be found in: -// http://www.cs.wustl.edu/~schmidt/oopsla.ps.gz -// http://www.cs.wustl.edu/~schmidt/JSAC-98.ps.gz -// -// -// ============================================================================ - -#ifndef TAO_EC_PROXYSUPPLIER_H -#define TAO_EC_PROXYSUPPLIER_H - -#include "orbsvcs/RtecEventChannelAdminS.h" -#include "orbsvcs/Event/EC_Filter.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -class TAO_EC_Event_Channel; -class TAO_EC_ProxyPushConsumer; - -class TAO_ORBSVCS_Export TAO_EC_ProxyPushSupplier : public POA_RtecEventChannelAdmin::ProxyPushSupplier, public TAO_EC_Filter -{ - // = TITLE - // ProxyPushSupplier - // - // = DESCRIPTION - // Implement the RtecEventChannelAdmin::ProxyPushSupplier interface, - // remember that this class is used to communicate with a - // PushConsumer, so, in effect, this is the ambassador for a - // consumer inside the event channel. - // - // = MEMORY MANAGMENT - // It does not assume ownership of the TAO_EC_Dispatching object. - // It makes a copy of the ConsumerQOS and the consumer object - // reference. - // - // = LOCKING - // Locking is strategized, the event channel acts as a factory for - // the locking strategies. - // - // = TODO - // We don't need to provide a trivial filter, the object itself - // could short-circuit the filter() ---> push() cycle when the EC - // is properly configured, we need to explore this... - // -public: - TAO_EC_ProxyPushSupplier (TAO_EC_Event_Channel* event_channel); - // constructor... - - virtual ~TAO_EC_ProxyPushSupplier (void); - // destructor... - - CORBA::Boolean is_connected (void) const; - // Return 0 if no consumer is connected... - - CORBA::Boolean is_suspended (void) const; - // Return 1 if it is suspended. - - RtecEventComm::PushConsumer_ptr consumer (void) const; - // Return the consumer object reference. It returns nil() if it has - // not connected yet. - // NOTE: This method does not return a new reference!!! Doing so - // will increase the locking overhead on the critical path. - - const RtecEventChannelAdmin::ConsumerQOS& subscriptions (void) const; - // The QoS (subscription) used to connect to the EC. - - virtual void connected (TAO_EC_ProxyPushConsumer* consumer, - CORBA::Environment &env); - virtual void disconnected (TAO_EC_ProxyPushConsumer* consumer, - CORBA::Environment &env); - // Concrete implementations can use this methods to keep track of - // the suppliers that publish its events. - - virtual void connected (TAO_EC_ProxyPushSupplier* supplier, - CORBA::Environment &env); - virtual void disconnected (TAO_EC_ProxyPushSupplier* supplier, - CORBA::Environment &env); - // Usually implemented as no-ops, but some configurations may - // require this methods. - - void set_default_POA (PortableServer::POA_ptr poa); - // Set this servant's default POA - - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment& env); - // Override the ServantBase method. - - // = The RtecEventChannelAdmin::ProxyPushSupplier methods... - virtual void connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS& qos, - CORBA::Environment &); - virtual void disconnect_push_supplier (CORBA::Environment &); - virtual void suspend_connection (CORBA::Environment &); - virtual void resume_connection (CORBA::Environment &); - - virtual CORBA::ULong _incr_refcnt (void); - virtual CORBA::ULong _decr_refcnt (void); - // Increment and decrement the reference count. - // @@ TODO We use the canonical tao form, but in the future we may - // want to add methods that follow the upcoming CORBA2.3 - // specification, which will include reference counting for - // servants. - - // = The TAO_EC_Filter methods, only push() is implemented... - virtual int filter (const RtecEventComm::EventSet& event, - TAO_EC_QOS_Info& qos_info, - CORBA::Environment& env); - virtual int filter_nocopy (RtecEventComm::EventSet& event, - TAO_EC_QOS_Info& qos_info, - CORBA::Environment& env); - virtual void push (const RtecEventComm::EventSet& event, - TAO_EC_QOS_Info& qos_info, - CORBA::Environment& env); - virtual void push_nocopy (RtecEventComm::EventSet& event, - TAO_EC_QOS_Info& qos_info, - CORBA::Environment& env); - virtual void clear (void); - virtual CORBA::ULong max_event_size (void) const; - virtual int can_match (const RtecEventComm::EventHeader &header) const; - -private: - CORBA::Boolean is_connected_i (void) const; - // The private version (without locking) of is_connected(). - - PortableServer::POA_ptr _default_POA_i (); - // The private version (without locking) of _default_POA_i (). - -private: - TAO_EC_Event_Channel* event_channel_; - // The Event Channel that owns this object. - - ACE_Lock* lock_; - // The locking strategy. - - CORBA::ULong refcount_; - // The reference count. - - RtecEventComm::PushConsumer_var consumer_; - // The consumer.... - - CORBA::Boolean suspended_; - // Is this consumer suspended? - - RtecEventChannelAdmin::ConsumerQOS qos_; - // The subscription and QoS information... - - PortableServer::POA_var default_POA_; - // Store the default POA. - - TAO_EC_Filter* child_; - // The filter object -}; - -#if defined (__ACE_INLINE__) -#include "EC_ProxySupplier.i" -#endif /* __ACE_INLINE__ */ - -#endif /* TAO_EC_PROXYSUPPLIER_H */ |