diff options
author | pradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-25 13:11:31 +0000 |
---|---|---|
committer | pradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-25 13:11:31 +0000 |
commit | 67c3ee53ec5a31af858d3455a4b5ff94783b3dcc (patch) | |
tree | 6f7b63dbf8148641e43b6f6f132fef9b8c414477 | |
parent | 3a06f9c5f150b6058e0c6abdde7ca976902a6d28 (diff) | |
download | ATCD-67c3ee53ec5a31af858d3455a4b5ff94783b3dcc.tar.gz |
*** empty log message ***
346 files changed, 0 insertions, 34692 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp b/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp deleted file mode 100644 index 6723aa20d68..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// $Id$ - -#include "Admin.h" - -#if ! defined (__ACE_INLINE__) -#include "Admin.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Admin, "$Id$") - -#include "orbsvcs/CosNotifyChannelAdminC.h" - -#include "Container_T.h" -#include "Proxy.h" -#include "EventChannel.h" - -TAO_NS_Admin::TAO_NS_Admin (void) - : ec_ (0) - , proxy_container_ (0) - , filter_operator_ (CosNotifyChannelAdmin::OR_OP) -{ - // Initialize all Admin objects to initially be subscribed for all events. - // This is a reasonable default and is required to allow Cos Event consumers/suppliers to send/receive events, - this->subscribed_types_.insert (TAO_NS_EventType::special ()); -} - -TAO_NS_Admin::~TAO_NS_Admin () -{ - this->ec_->_decr_refcnt (); -} - -void -TAO_NS_Admin::init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL) -{ - this->ec_ = ec; - - this->ec_->_incr_refcnt (); - - this->TAO_NS_Object::init (ec); - - ACE_NEW_THROW_EX (this->proxy_container_, - TAO_NS_Proxy_Container (), - CORBA::INTERNAL ()); - ACE_CHECK; - - this->proxy_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - -} - -void -TAO_NS_Admin::remove (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL) -{ - this->proxy_container_->remove (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_Admin::subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - // copy - subscribed_types = this->subscribed_types_; -} - -int -TAO_NS_Admin::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - if (TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return 1; - - this->proxy_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (1); - - delete this->proxy_container_; - - return 0; -} - -void -TAO_NS_Admin::insert (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL) -{ - this->proxy_container_->insert (proxy ACE_ENV_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_Container_T <TAO_NS_Proxy>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_Container_T <TAO_NS_Proxy> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Admin.h b/TAO/orbsvcs/orbsvcs/Notify/Admin.h deleted file mode 100644 index 12228fb5a67..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Admin.h +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Admin.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_ADMIN_H -#define TAO_NS_ADMIN_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "FilterAdmin.h" -#include "EventTypeSeq.h" -#include "Object.h" - -class TAO_NS_Proxy; -class TAO_NS_EventChannel; -template <class TYPE> class TAO_NS_Container_T; - -/** - * @class TAO_NS_Admin - * - * @brief Base class for the ConsumerAdmin and SupplierAdmin. - * - */ - -class TAO_Notify_Export TAO_NS_Admin : public virtual TAO_NS_Object -{ - friend class TAO_NS_Builder; -public: - typedef CosNotifyChannelAdmin::AdminIDSeq SEQ; - typedef CosNotifyChannelAdmin::AdminIDSeq_var SEQ_VAR; - - /// Constuctor - TAO_NS_Admin (void); - - /// Destructor - ~TAO_NS_Admin (); - - /// Init - void init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL); - - /// Insert the proxy in the <proxy_container_>. - void insert (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL); - - /// Remove type from container_ - void remove (TAO_NS_Proxy *proxy ACE_ENV_ARG_DECL); - - /// Access Admin FilterAdmin. - TAO_NS_FilterAdmin& filter_admin (void); - - /// Set Filter operator - void filter_operator (CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator); - - /// Access Filter operator - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator (void); - - /// Obtain the Admin's subscribed types. - void subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL); - - /// Shutdown - virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL); - -protected: - typedef TAO_NS_Container_T <TAO_NS_Proxy> TAO_NS_Proxy_Container; - - /// = Data Members - - /// The EventChannel. - TAO_NS_EventChannel *ec_; - - /// The Proxy Container. - TAO_NS_Proxy_Container *proxy_container_;; - - /// The types that we've subscribed our proxy objects with the event manager. - TAO_NS_EventTypeSeq subscribed_types_; - - /// Filter Administration - TAO_NS_FilterAdmin filter_admin_; - - /// Filter operator - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator_; -}; - -#if defined (__ACE_INLINE__) -#include "Admin.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_ADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Admin.inl b/TAO/orbsvcs/orbsvcs/Notify/Admin.inl deleted file mode 100644 index 2975697d92a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Admin.inl +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_FilterAdmin& -TAO_NS_Admin::filter_admin (void) -{ - return this->filter_admin_; -} - -ACE_INLINE void -TAO_NS_Admin::filter_operator (CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator) -{ - this->filter_operator_ = filter_operator; -} - -ACE_INLINE CosNotifyChannelAdmin::InterFilterGroupOperator -TAO_NS_Admin::filter_operator (void) -{ - return this->filter_operator_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.cpp b/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.cpp deleted file mode 100644 index 46b3d3c0ec2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ - -#include "AdminProperties.h" - -#if ! defined (__ACE_INLINE__) -#include "AdminProperties.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_AdminProperties, "$id$") - -#include "orbsvcs/CosNotificationC.h" - -TAO_NS_AdminProperties::TAO_NS_AdminProperties (void) - : max_global_queue_length_ (CosNotification::MaxQueueLength, 0), - max_consumers_ (CosNotification::MaxConsumers, 0), - max_suppliers_ (CosNotification::MaxSuppliers, 0), - reject_new_events_ (CosNotification::RejectNewEvents, 0), - global_queue_length_ (0), - global_queue_not_full_condition_ (global_queue_lock_) -{ -} - -TAO_NS_AdminProperties::~TAO_NS_AdminProperties () -{ -} - -int -TAO_NS_AdminProperties::init (const CosNotification::PropertySeq& prop_seq) -{ - if (TAO_NS_PropertySeq::init (prop_seq) != 0) - return -1; - - this->max_global_queue_length_.set (*this); - this->max_consumers_.set (*this); - this->max_suppliers_.set (*this); - this->reject_new_events_.set (*this); - - //@@ check if unsupported property was set. - // This will happen when number of successfull inits != numbers of items bound in map_. - - return 0; -} - -CORBA::Boolean -TAO_NS_AdminProperties::queue_full (void) -{ - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->global_queue_lock_, 1); - - if (this->max_global_queue_length () == 0) - return 0; - else - if (this->global_queue_length_ > this->max_global_queue_length ().value ()) - return 1; - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Atomic_Op<TAO_SYNCH_MUTEX,int>; -template class ACE_Atomic_Op_Ex<TAO_SYNCH_MUTEX,int>; -template class ACE_Refcounted_Auto_Ptr<TAO_NS_AdminProperties, TAO_SYNCH_MUTEX>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Atomic_Op<TAO_SYNCH_MUTEX,int> -#pragma instantiate ACE_Atomic_Op_Ex<TAO_SYNCH_MUTEX,int> -#pragma ACE_Refcounted_Auto_Ptr<TAO_NS_AdminProperties, TAO_SYNCH_MUTEX> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h b/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h deleted file mode 100644 index e05e06d2b1c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h +++ /dev/null @@ -1,114 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file AdminProperties.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_ADMINPROPERTIES_H -#define TAO_NS_ADMINPROPERTIES_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Atomic_Op.h" -#include "ace/Refcounted_Auto_Ptr.h" -#include "tao/orbconf.h" -#include "PropertySeq.h" -#include "Property_T.h" -#include "Property.h" -#include "Property_Boolean.h" - -/** - * @class TAO_NS_AdminProperties - * - * @brief The AdminProperties per EventChannel. - * - */ -class TAO_Notify_Export TAO_NS_AdminProperties : public TAO_NS_PropertySeq -{ -public: - /// Constuctor - TAO_NS_AdminProperties (void); - - /// Destructor - ~TAO_NS_AdminProperties (); - - // Init - int init (const CosNotification::PropertySeq& prop_seq); - - // = Accessors - const TAO_NS_Property_Long& max_global_queue_length (void) const; - const TAO_NS_Property_Long& max_consumers (void) const; - const TAO_NS_Property_Long& max_suppliers (void) const; - const TAO_NS_Property_Boolean& reject_new_events (void) const; - - CORBA::Long& global_queue_length (void); - TAO_SYNCH_MUTEX& global_queue_lock (void); - TAO_SYNCH_CONDITION& global_queue_not_full_condition (void); - - TAO_NS_Atomic_Property_Long& consumers (void); - TAO_NS_Atomic_Property_Long& suppliers (void); - - // = Helper method - /// Returns true if Queue is full - CORBA::Boolean queue_full (void); - -protected: - // @@ Pradeep can you explain why there is any maximum for these - // values? Should they be configurable by the user so the resource - // requirements can be bounded? - - // = Admin. properties - // for all these properties the default O implies no limit - /** - * The maximum number of events that will be queued by the channel before - * the channel begins discarding events or rejecting new events upon - * receipt of each new event. - */ - TAO_NS_Property_Long max_global_queue_length_; - - /// The maximum number of consumers that can be connected to the channel at - /// any given time. - TAO_NS_Property_Long max_consumers_; - - /// The maximum number of suppliers that can be connected to the channel at - /// any given time. - TAO_NS_Property_Long max_suppliers_; - - /// Reject any new event. - TAO_NS_Property_Boolean reject_new_events_; - - //= Variables - /// This is used to count the queue length across all buffers in the Notify Service - /// to enforce the "MaxQueueLength" property. - CORBA::Long global_queue_length_; - - /// Global queue lock used to serialize access to all queues. - TAO_SYNCH_MUTEX global_queue_lock_; - - /// The condition that the queue_length_ is not at max. - TAO_SYNCH_CONDITION global_queue_not_full_condition_; - - /// These are used to count the number of consumers and suppliers connected to - /// the system. - TAO_NS_Atomic_Property_Long consumers_; - TAO_NS_Atomic_Property_Long suppliers_; -}; - -typedef ACE_Refcounted_Auto_Ptr<TAO_NS_AdminProperties, TAO_SYNCH_MUTEX> TAO_NS_AdminProperties_var; - -#if defined (__ACE_INLINE__) -#include "AdminProperties.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_ADMINPROPERTIES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.inl b/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.inl deleted file mode 100644 index 4abdd9b071a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.inl +++ /dev/null @@ -1,55 +0,0 @@ -// $Id$ - -ACE_INLINE const TAO_NS_Property_Long& -TAO_NS_AdminProperties::max_global_queue_length (void) const -{ - return this->max_global_queue_length_; -} - -ACE_INLINE const TAO_NS_Property_Long& -TAO_NS_AdminProperties::max_consumers (void) const -{ - return this->max_consumers_; -} - -ACE_INLINE const TAO_NS_Property_Long& -TAO_NS_AdminProperties::max_suppliers (void) const -{ - return this->max_suppliers_; -} - -ACE_INLINE const TAO_NS_Property_Boolean& -TAO_NS_AdminProperties::reject_new_events (void) const -{ - return this->reject_new_events_; -} - -ACE_INLINE CORBA::Long& -TAO_NS_AdminProperties::global_queue_length (void) -{ - return this->global_queue_length_; -} - -ACE_INLINE TAO_SYNCH_MUTEX& -TAO_NS_AdminProperties::global_queue_lock (void) -{ - return this->global_queue_lock_; -} - -ACE_INLINE TAO_SYNCH_CONDITION& -TAO_NS_AdminProperties::global_queue_not_full_condition (void) -{ - return this->global_queue_not_full_condition_; -} - -ACE_INLINE TAO_NS_Atomic_Property_Long& -TAO_NS_AdminProperties::consumers (void) -{ - return this->consumers_; -} - -ACE_INLINE TAO_NS_Atomic_Property_Long& -TAO_NS_AdminProperties::suppliers (void) -{ - return this->suppliers_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp b/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp deleted file mode 100644 index c030592d339..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp +++ /dev/null @@ -1,271 +0,0 @@ -// $Id$ - -#include "Buffering_Strategy.h" - -#if ! defined (__ACE_INLINE__) -#include "Buffering_Strategy.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Buffering_Strategy, "$id$") - -#include "ace/Message_Queue.h" -#include "orbsvcs/CosNotificationC.h" -#include "Method_Request.h" -#include "Notify_Extensions.h" -#include "QoSProperties.h" -#include "tao/debug.h" - -TAO_NS_Buffering_Strategy::TAO_NS_Buffering_Strategy (TAO_NS_Message_Queue& msg_queue, TAO_NS_AdminProperties_var& admin_properties, CORBA::Long batch_size) - : msg_queue_ (msg_queue), - admin_properties_ (admin_properties), - global_queue_lock_ (admin_properties->global_queue_lock ()), - global_queue_not_full_condition_ (admin_properties->global_queue_not_full_condition ()), - global_queue_length_ (admin_properties->global_queue_length ()), - max_global_queue_length_ (admin_properties->max_global_queue_length ()), - max_local_queue_length_ (0), - order_policy_ (CosNotification::OrderPolicy, CosNotification::AnyOrder), - discard_policy_ (CosNotification::DiscardPolicy, CosNotification::AnyOrder), - use_discarding_ (1), - local_queue_not_full_condition_ (global_queue_lock_), - batch_size_ (batch_size), - batch_size_reached_condition_ (global_queue_lock_), - shutdown_ (0) -{ -} - -TAO_NS_Buffering_Strategy::~TAO_NS_Buffering_Strategy () -{ -} - -void -TAO_NS_Buffering_Strategy::update_qos_properties (const TAO_NS_QoSProperties& qos_properties) -{ - this->order_policy_.set (qos_properties); - - if (this->discard_policy_.set (qos_properties) != -1) - { - this->use_discarding_ = 1; - } - - TAO_NS_Property_Time blocking_timeout (TAO_Notify_Extensions::BlockingPolicy); - - if (blocking_timeout.set (qos_properties) != -1) // if set to a valid time, init the blocking_time_ - { - this->use_discarding_ = 0; - - this->blocking_time_ = -# if defined (ACE_CONFIG_WIN32_H) - ACE_Time_Value (ACE_static_cast (long, blocking_timeout.value ())); -# else - ACE_Time_Value (blocking_timeout.value () / 1); -# endif /* ACE_CONFIG_WIN32_H */ - } -} - -void -TAO_NS_Buffering_Strategy::shutdown (void) -{ - ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->global_queue_lock_); - - this->shutdown_ = 1; - - this->global_queue_not_full_condition_.broadcast (); - this->local_queue_not_full_condition_.broadcast (); - this->batch_size_reached_condition_.broadcast (); -} - -int -TAO_NS_Buffering_Strategy::enqueue (TAO_NS_Method_Request& method_request) -{ - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->global_queue_lock_, -1); - - // while either local or global max reached - while ((this->max_local_queue_length_ != 0 && - this->msg_queue_.message_count () == this->max_local_queue_length_) - || - (this->max_global_queue_length_.value () != 0 && - this->global_queue_length_ == this->max_global_queue_length_.value ())) - { - if (this->shutdown_ == 1) // if we're shutdown, don't play this silly game. - return -1; - - if (this->use_discarding_ == 1) - { - if (this->global_queue_length_ == this->max_global_queue_length_.value () - && this->msg_queue_.message_count () == 0) // global max. reached but can't discard - { - // block. this is a hack because the real solution is to locate the appropriate queue and dequeue from it. - this->global_queue_not_full_condition_.wait (); - } - else // local max reached or, at global max but non-zero local count. - { - if (this->discard () == -1) - return -1; - - --this->global_queue_length_; - - // ACE_DEBUG ((LM_DEBUG, "Discarded from %x, global_queue_length = %d\n", this, this->global_queue_length_)); - - this->global_queue_not_full_condition_.signal (); - this->local_queue_not_full_condition_.signal (); - } - } - else // block - { - if (this->msg_queue_.message_count () == this->max_local_queue_length_) // local maximum reached - { - if (this->blocking_time_ == ACE_Time_Value::zero) // wait forever if need be. - { - this->local_queue_not_full_condition_.wait (); - } - else // finite blocking time. - { - ACE_Time_Value absolute = ACE_OS::gettimeofday () + this->blocking_time_; - - if (this->local_queue_not_full_condition_.wait (&absolute) == -1) // returns -1 on timeout - return -1; // Note message is discarded if it could not be enqueued in the given time. - } - } - else // global max reached - { - if (this->blocking_time_ == ACE_Time_Value::zero) // wait forever if need be. - { - this->global_queue_not_full_condition_.wait (); - } - else // finite blocking time. - { - ACE_Time_Value absolute = ACE_OS::gettimeofday () + blocking_time_; - - if (this->global_queue_not_full_condition_.wait (&absolute) == -1) // returns -1 on timeout - return -1; - } - } - } // block - } // while - - if (this->queue (method_request) == -1) - { - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "Panic! failed to enqueue event")); - return -1; - } - - ++this->global_queue_length_; - - // ACE_DEBUG ((LM_DEBUG, "Inserted to %x, global_queue_length = %d\n", this, this->global_queue_length_)); - - if (this->msg_queue_.message_count () == this->batch_size_) - batch_size_reached_condition_.signal (); - - return this->msg_queue_.message_count (); -} - -int -TAO_NS_Buffering_Strategy::dequeue (TAO_NS_Method_Request* &method_request, const ACE_Time_Value *abstime) -{ - ACE_Message_Block *mb; - - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->global_queue_lock_, -1); - - while (this->msg_queue_.message_count () < this->batch_size_) // block - { - this->batch_size_reached_condition_.wait (abstime); - - if (this->shutdown_ == 1) // if we're shutdown, don't play this silly game. - return -1; - - if (errno == ETIME) - return 0; - } - - if (this->msg_queue_.dequeue (mb) == -1) - return -1; - - method_request = ACE_dynamic_cast (TAO_NS_Method_Request*, mb); - - if (method_request == 0) - return -1; - - --this->global_queue_length_; - - // ACE_DEBUG ((LM_DEBUG, "Dequeued from %x, global_queue_length = %d\n", this, this->global_queue_length_)); - - this->global_queue_not_full_condition_.signal (); - this->local_queue_not_full_condition_.signal (); - - return 1; -} - -int -TAO_NS_Buffering_Strategy::queue (TAO_NS_Method_Request& method_request) -{ - int result; - - // Queue according to order policy - if (this->order_policy_ == CosNotification::AnyOrder || - this->order_policy_ == CosNotification::FifoOrder) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "enqueue in fifo order\n")); - // Insert at the end of the queue. - result = this->msg_queue_.enqueue_tail (&method_request); - } - else if (this->order_policy_ == CosNotification::PriorityOrder) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "enqueue in priority order\n")); - result = this->msg_queue_.enqueue_prio (&method_request); - } - else if (this->order_policy_ == CosNotification::DeadlineOrder) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "enqueue in deadline order\n")); - result = this->msg_queue_.enqueue_deadline (&method_request); - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - Invalid order policy\n")); - - result = -1; - } - - return result; -} - -int -TAO_NS_Buffering_Strategy::discard (void) -{ - ACE_Message_Block *mb; - int result; - - if (this->discard_policy_ == CosNotification::AnyOrder || - this->discard_policy_ == CosNotification::FifoOrder) - { - result = this->msg_queue_.dequeue_head (mb); - } - else if (this->discard_policy_ == CosNotification::LifoOrder) - { - result = this->msg_queue_.dequeue_tail (mb); - } - else if (this->discard_policy_ == CosNotification::DeadlineOrder) - { - result = this->msg_queue_.dequeue_deadline (mb); - } - else if (this->discard_policy_ == CosNotification::PriorityOrder) - { - result = this->msg_queue_.dequeue_prio (mb); - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "Invalid discard policy\n")); - result = -1; - } - - return result; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.h b/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.h deleted file mode 100644 index 7b854a47508..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.h +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Buffering_Strategy.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_BUFFERING_STRATEGY_H -#define TAO_NS_BUFFERING_STRATEGY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -#include "ace/Message_Queue.h" -#include "orbsvcs/TimeBaseC.h" -#include "Property.h" -#include "Property_T.h" -#include "AdminProperties.h" - -class TAO_NS_Method_Request; -class TAO_NS_QoSProperties; - -typedef ACE_Message_Queue<ACE_NULL_SYNCH> TAO_NS_Message_Queue; - -/** - * @class TAO_NS_Buffering_Strategy - * - * @brief Base Strategy to enqueue and dequeue items from a Message Queue. - * - */ -class TAO_Notify_Export TAO_NS_Buffering_Strategy -{ -public: - /// Constuctor - TAO_NS_Buffering_Strategy (TAO_NS_Message_Queue& msg_queue, TAO_NS_AdminProperties_var& admin_properties, CORBA::Long batch_size); - - /// Destructor - ~TAO_NS_Buffering_Strategy (); - - /// Update state with the following QoS Properties: - /// Order Policy - /// Discard Policy - /// MaxEventsPerConsumer - /// TAO_Notify_Extensions::BlockingPolicy - void update_qos_properties (const TAO_NS_QoSProperties& qos_properties); - - /// Enqueue according the enqueing strategy. - /// Return -1 on error else the number of items in the queue. - int enqueue (TAO_NS_Method_Request& method_request); - - /// Dequeue batch. This method will block for <abstime> if non-zero or else blocks till an item is available. - /// Return -1 on error or if nothing is available, else the number of items actually dequeued (1). - int dequeue (TAO_NS_Method_Request* &method_request, const ACE_Time_Value *abstime); - - /// Shutdown - void shutdown (void); - - /// Set the new batch size. - void batch_size (CORBA::Long batch_size); - - /// Obtain our batch size - CORBA::Long batch_size (void); - - /// Set the max local queue length. - void max_local_queue_length (CORBA::Long length); - -protected: - /// Apply the Order Policy and queue. return -1 on error. - int queue (TAO_NS_Method_Request& method_request); - - /// Discard as per the Discard Policy. - int discard (void); - - ///= Data Members - - /// The local Message Queue - TAO_NS_Message_Queue& msg_queue_; - - /// Reference to the properties per event channel. - TAO_NS_AdminProperties_var admin_properties_; - - /// The shared global lock used by all the queues. - ACE_SYNCH_MUTEX& global_queue_lock_; - - /// The shared Condition for global queue not full. - ACE_SYNCH_CONDITION& global_queue_not_full_condition_; - - /// The global queue length - queue length accross all the queues. - CORBA::Long& global_queue_length_; - - /// The maximum events that can be queued overall. - const TAO_NS_Property_Long& max_global_queue_length_; - - /// The maximum queue length for the local queue. - CORBA::Long max_local_queue_length_; - - /// Order of events in internal buffers. - TAO_NS_Property_Short order_policy_; - - /// Policy to discard when buffers are full. - TAO_NS_Property_Short discard_policy_; - - /// Flag that we should use discarding(1) or blocking (0). - int use_discarding_; - - /// The blocking timeout will be used in place of discarding - /// This is a TAO specific extension. - ACE_Time_Value blocking_time_; // 0 means wait forever. - - /// Condition that the local queue is not full. - ACE_SYNCH_CONDITION local_queue_not_full_condition_; - - /// The batch size that we want to monitor for dequeuing. - CORBA::Long batch_size_; - - /// Condition that batch size reached. - ACE_SYNCH_CONDITION batch_size_reached_condition_; - - /// Flag to shutdown. - int shutdown_; -}; - -#if defined (__ACE_INLINE__) -#include "Buffering_Strategy.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_BUFFERING_STRATEGY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.inl b/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.inl deleted file mode 100644 index 3dbfa925c5b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.inl +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -ACE_INLINE void -TAO_NS_Buffering_Strategy::batch_size (CORBA::Long batch_size) -{ - this->batch_size_ = batch_size; -} - -ACE_INLINE CORBA::Long -TAO_NS_Buffering_Strategy::batch_size (void) -{ - return this->batch_size_; -} - -ACE_INLINE void -TAO_NS_Buffering_Strategy::max_local_queue_length (CORBA::Long length) -{ - this->max_local_queue_length_ = length; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp b/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp deleted file mode 100644 index 7f260d10cca..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp +++ /dev/null @@ -1,426 +0,0 @@ -// $Id$ -#include "Builder.h" - -#if ! defined (__ACE_INLINE__) -#include "Builder.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Builder, "$Id$") - -#include "ace/Dynamic_Service.h" -#include "tao/PortableServer/PortableServerC.h" -#include "Factory.h" -#include "Properties.h" -#include "POA_Helper.h" -#include "ID_Factory.h" -#include "EventChannelFactory.h" -#include "EventChannel.h" -#include "SupplierAdmin.h" -#include "ConsumerAdmin.h" -#include "Event_Manager.h" -#include "Worker_Task.h" -#include "Reactive_Task.h" -#include "ThreadPool_Task.h" -#include "FilterFactory.h" -#include "Object.h" -#include "EventType.h" -#include "Event.h" -#include "Any/AnyEvent.h" -#include "Any/ProxyPushConsumer.h" -#include "Any/ProxyPushSupplier.h" -#include "Any/CosEC_ProxyPushConsumer.h" -#include "Any/CosEC_ProxyPushSupplier.h" -#include "Structured/StructuredProxyPushConsumer.h" -#include "Structured/StructuredProxyPushSupplier.h" -#include "Sequence/SequenceProxyPushConsumer.h" -#include "Sequence/SequenceProxyPushSupplier.h" -#include "ETCL_FilterFactory.h" -#include "Container_T.h" - -template <class PROXY_IMPL, class PROXY, class PROXY_PTR, class PROXY_VAR, class PARENT> -class TAO_NS_Proxy_Builder_T -{ -public: - PROXY_PTR - build (PARENT *parent, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL) - { - PROXY_VAR proxy_ret; - - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - PROXY_IMPL* proxy = 0; - factory->create (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (proxy_ret._retn ()); - - PortableServer::ServantBase_var servant (proxy); - - proxy->init (parent ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (proxy_ret._retn ()); - - CORBA::Object_var obj = proxy->activate (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (proxy_ret._retn ()); - - proxy_id = proxy->id (); - - proxy_ret = PROXY::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (proxy_ret._retn ()); - - // insert proxy in admin container. - parent->insert (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (PROXY::_nil ()); - - return proxy_ret._retn (); - } -}; - -// define the ProxyConsumer Builders. -typedef TAO_NS_Proxy_Builder_T<TAO_NS_ProxyPushConsumer - , CosNotifyChannelAdmin::ProxyConsumer - , CosNotifyChannelAdmin::ProxyConsumer_ptr - , CosNotifyChannelAdmin::ProxyConsumer_var - , TAO_NS_SupplierAdmin> -TAO_NS_ProxyPushConsumer_Builder; - -typedef TAO_NS_Proxy_Builder_T<TAO_NS_StructuredProxyPushConsumer - , CosNotifyChannelAdmin::ProxyConsumer - , CosNotifyChannelAdmin::ProxyConsumer_ptr - , CosNotifyChannelAdmin::ProxyConsumer_var - , TAO_NS_SupplierAdmin> -TAO_NS_StructuredProxyPushConsumer_Builder; - -typedef TAO_NS_Proxy_Builder_T<TAO_NS_SequenceProxyPushConsumer - , CosNotifyChannelAdmin::ProxyConsumer - , CosNotifyChannelAdmin::ProxyConsumer_ptr - , CosNotifyChannelAdmin::ProxyConsumer_var - , TAO_NS_SupplierAdmin> -TAO_NS_SequenceProxyPushConsumer_Builder; - -typedef TAO_NS_Proxy_Builder_T<TAO_NS_CosEC_ProxyPushConsumer - , CosEventChannelAdmin::ProxyPushConsumer - , CosEventChannelAdmin::ProxyPushConsumer_ptr - , CosEventChannelAdmin::ProxyPushConsumer_var - , TAO_NS_SupplierAdmin> -TAO_NS_CosEC_ProxyPushConsumer_Builder; - -// define the ProxySupplier Builders. -typedef TAO_NS_Proxy_Builder_T<TAO_NS_ProxyPushSupplier - , CosNotifyChannelAdmin::ProxySupplier - , CosNotifyChannelAdmin::ProxySupplier_ptr - , CosNotifyChannelAdmin::ProxySupplier_var - , TAO_NS_ConsumerAdmin> -TAO_NS_ProxyPushSupplier_Builder; - -typedef TAO_NS_Proxy_Builder_T<TAO_NS_StructuredProxyPushSupplier - , CosNotifyChannelAdmin::ProxySupplier - , CosNotifyChannelAdmin::ProxySupplier_ptr - , CosNotifyChannelAdmin::ProxySupplier_var - , TAO_NS_ConsumerAdmin> -TAO_NS_StructuredProxyPushSupplier_Builder; - -typedef TAO_NS_Proxy_Builder_T<TAO_NS_SequenceProxyPushSupplier - , CosNotifyChannelAdmin::ProxySupplier - , CosNotifyChannelAdmin::ProxySupplier_ptr - , CosNotifyChannelAdmin::ProxySupplier_var - , TAO_NS_ConsumerAdmin> -TAO_NS_SequenceProxyPushSupplier_Builder; - -typedef TAO_NS_Proxy_Builder_T<TAO_NS_CosEC_ProxyPushSupplier - , CosEventChannelAdmin::ProxyPushSupplier - , CosEventChannelAdmin::ProxyPushSupplier_ptr - , CosEventChannelAdmin::ProxyPushSupplier_var - , TAO_NS_ConsumerAdmin> -TAO_NS_CosEC_ProxyPushSupplier_Builder; - -TAO_NS_Builder::TAO_NS_Builder (void) -{ - // Init the static members. - TAO_NS_AnyEvent::event_type_ = TAO_NS_EventType::special (); -} - -TAO_NS_Builder::~TAO_NS_Builder () -{ -} - -CosNotifyFilter::FilterFactory_ptr -TAO_NS_Builder::build_filter_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_FilterFactory* ff = ACE_Dynamic_Service<TAO_NS_FilterFactory>::instance ("TAO_NS_FilterFactory"); - - if (ff == 0) - { - ACE_NEW_THROW_EX (ff, - TAO_NS_ETCL_FilterFactory (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (CosNotifyFilter::FilterFactory::_nil ()); - } - - PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa (); - - return ff->create (default_poa ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_NS_Builder::build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::EventChannelFactory_var ecf_ret; - - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - // Create ECF - TAO_NS_EventChannelFactory* ecf = 0; - factory->create (ecf ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ecf_ret._retn ()); - - PortableServer::ServantBase_var servant_var (ecf); - - ecf->TAO_NS_EventChannelFactory::init (poa ACE_ENV_ARG_PARAMETER); - - CORBA::Object_var obj = ecf->activate (ecf ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ecf_ret._retn ()); - - ecf_ret = CosNotifyChannelAdmin::EventChannelFactory::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ecf_ret._retn ()); - - return (ecf_ret._retn ()); -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_NS_Builder::build_event_channel (TAO_NS_EventChannelFactory* ecf, const CosNotification::QoSProperties & initial_qos, const CosNotification::AdminProperties & initial_admin, CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::EventChannel_var ec_ret; - - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - TAO_NS_EventChannel* ec = 0; - factory->create (ec ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ec_ret._retn ()); - - PortableServer::ServantBase_var servant_var (ec); - - ec->init (ecf, initial_qos, initial_admin ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ec_ret._retn ()); - - // insert ec in ec container. - ecf->ec_container_->insert (ec ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ec_ret._retn ()); - - CORBA::Object_var obj = ec->activate (ec ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ec_ret._retn ()); - - // Populate the ID to return. - id = ec->id (); - - ec_ret = CosNotifyChannelAdmin::EventChannel::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ec_ret._retn ()); - - return ec_ret._retn (); -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_NS_Builder::build_consumer_admin (TAO_NS_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret; - - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - TAO_NS_ConsumerAdmin* ca = 0; - factory->create (ca ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ca_ret._retn ()); - - PortableServer::ServantBase_var servant_var (ca); - - ca->init (ec ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ca_ret._retn ()); - - ca->filter_operator (op); - - CORBA::Object_var obj = ca->activate (ca ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ca_ret._retn ()); - - id = ca->id (); - - ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ca_ret._retn ()); - - // insert admin in CA container. - ec->ca_container_->insert (ca ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (ca_ret._retn ()); - - return ca_ret._retn (); -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_NS_Builder::build_supplier_admin (TAO_NS_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::SupplierAdmin_var sa_ret; - - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - TAO_NS_SupplierAdmin* sa = 0; - factory->create (sa ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (sa_ret._retn ()); - - PortableServer::ServantBase_var servant_var (sa); - - sa->init (ec ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (sa_ret._retn ()); - - sa->filter_operator (op); - - CORBA::Object_var obj = sa->activate (sa ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (sa_ret._retn ()); - - id = sa->id (); - - sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (sa_ret._retn ()); - - // insert admin in SA container. - ec->sa_container_->insert (sa ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (sa_ret._retn ()); - - return sa_ret._retn (); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_NS_Builder::build_proxy(TAO_NS_SupplierAdmin* sa - , CosNotifyChannelAdmin::ClientType ctype - , CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL) -{ - switch (ctype) - { - case CosNotifyChannelAdmin::ANY_EVENT: - { - TAO_NS_ProxyPushConsumer_Builder pb; - return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); - } - break; - - case CosNotifyChannelAdmin::STRUCTURED_EVENT: - { - TAO_NS_StructuredProxyPushConsumer_Builder pb; - return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); - } - break; - - case CosNotifyChannelAdmin::SEQUENCE_EVENT: - { - TAO_NS_SequenceProxyPushConsumer_Builder pb; - return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); - } - break; - - default: - ACE_THROW_RETURN (CORBA::BAD_PARAM (), - CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - } -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_NS_Builder::build_proxy(TAO_NS_ConsumerAdmin* ca - , CosNotifyChannelAdmin::ClientType ctype - , CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL) -{ - switch (ctype) - { - case CosNotifyChannelAdmin::ANY_EVENT: - { - TAO_NS_ProxyPushSupplier_Builder pb; - return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); - } - break; - - case CosNotifyChannelAdmin::STRUCTURED_EVENT: - { - TAO_NS_StructuredProxyPushSupplier_Builder pb; - return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); - } - break; - - case CosNotifyChannelAdmin::SEQUENCE_EVENT: - { - TAO_NS_SequenceProxyPushSupplier_Builder pb; - return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); - } - break; - - default: - ACE_THROW_RETURN (CORBA::BAD_PARAM (), - CosNotifyChannelAdmin::ProxySupplier::_nil ()); - } -} - -CosEventChannelAdmin::ProxyPushSupplier_ptr -TAO_NS_Builder::build_proxy (TAO_NS_ConsumerAdmin* ca ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::ProxyID proxy_id; - - TAO_NS_CosEC_ProxyPushSupplier_Builder pb; - - return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); -} - -CosEventChannelAdmin::ProxyPushConsumer_ptr -TAO_NS_Builder::build_proxy (TAO_NS_SupplierAdmin* sa ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::ProxyID proxy_id; - - TAO_NS_CosEC_ProxyPushConsumer_Builder pb; - - return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Builder::apply_reactive_concurrency (TAO_NS_Object& object ACE_ENV_ARG_DECL) -{ - TAO_NS_Reactive_Task* worker_task; - - ACE_NEW_THROW_EX (worker_task, - TAO_NS_Reactive_Task (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - worker_task->init (object.admin_properties_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - object.worker_task_own (worker_task); - - object.worker_task_->_decr_refcnt (); -} - -void -TAO_NS_Builder::apply_thread_pool_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL) -{ - TAO_NS_ThreadPool_Task* worker_task; - - ACE_NEW_THROW_EX (worker_task, - TAO_NS_ThreadPool_Task (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - worker_task->init (tp_params, object.admin_properties_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - object.worker_task_own (worker_task); - - object.worker_task_->_decr_refcnt (); -} - -void -TAO_NS_Builder::apply_lane_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolLanesParams& /*tpl_params*/ ACE_ENV_ARG_DECL) -{ - // No lane support - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Dynamic_Service<TAO_NS_FilterFactory>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Dynamic_Service<TAO_NS_FilterFactory> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Builder.h b/TAO/orbsvcs/orbsvcs/Notify/Builder.h deleted file mode 100644 index 6bee188690d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Builder.h +++ /dev/null @@ -1,115 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Builder.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_BUILDER_H -#define TAO_NS_BUILDER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/PortableServer.h" -#include "orbsvcs/CosNotifyChannelAdminC.h" -#include "orbsvcs/NotifyExtC.h" -#include "AdminProperties.h" - -class TAO_NS_EventChannelFactory; -class TAO_NS_EventChannel; -class TAO_NS_SupplierAdmin; -class TAO_NS_ConsumerAdmin; -class TAO_NS_FilterFactory; -class TAO_NS_Object; - -/** - * @class TAO_NS_Builder - * - * @brief Helper class to create and activate CORBA objects. - * - */ -class TAO_Notify_Export TAO_NS_Builder -{ -public: - TAO_NS_Builder (void); - - virtual ~TAO_NS_Builder (); - - ///= Factory Methods - - /// Build EventChannel Factory. - virtual CosNotifyChannelAdmin::EventChannelFactory_ptr - build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL); - - /// Build the Filter Factory. - virtual CosNotifyFilter::FilterFactory_ptr build_filter_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// Build EventChannel. - virtual CosNotifyChannelAdmin::EventChannel_ptr - build_event_channel (TAO_NS_EventChannelFactory* ecf - , const CosNotification::QoSProperties & initial_qos - , const CosNotification::AdminProperties & initial_admin - , CosNotifyChannelAdmin::ChannelID_out id - ACE_ENV_ARG_DECL); - - /// Build ConsumerAdmin - virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr - build_consumer_admin (TAO_NS_EventChannel* ec - , CosNotifyChannelAdmin::InterFilterGroupOperator op - , CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL); - - /// Build SupplierAdmin - virtual CosNotifyChannelAdmin::SupplierAdmin_ptr - build_supplier_admin (TAO_NS_EventChannel* ec - , CosNotifyChannelAdmin::InterFilterGroupOperator op - , CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL); - - /// Build ProxyConsumer - virtual CosNotifyChannelAdmin::ProxyConsumer_ptr - build_proxy (TAO_NS_SupplierAdmin* sa - , CosNotifyChannelAdmin::ClientType ctype - , CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL); - - /// Build ProxySupplier. - virtual CosNotifyChannelAdmin::ProxySupplier_ptr - build_proxy (TAO_NS_ConsumerAdmin* ca - , CosNotifyChannelAdmin::ClientType ctype - , CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL); - - /// Build CosEC style ProxySupplier. - virtual CosEventChannelAdmin::ProxyPushSupplier_ptr - build_proxy (TAO_NS_ConsumerAdmin* ca ACE_ENV_ARG_DECL); - - /// Build CosEC style ProxyConsumer. - virtual CosEventChannelAdmin::ProxyPushConsumer_ptr - build_proxy (TAO_NS_SupplierAdmin* sa ACE_ENV_ARG_DECL); - - /// Apply Reactive concurrency. - virtual void apply_reactive_concurrency (TAO_NS_Object& object ACE_ENV_ARG_DECL); - - /// Apply Thread Pools. - virtual void apply_thread_pool_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL); - - /// Apply Thread Pools with Lanes. - virtual void apply_lane_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "Builder.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_BUILDER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Builder.inl b/TAO/orbsvcs/orbsvcs/Notify/Builder.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Builder.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Interpreter.cpp b/TAO/orbsvcs/orbsvcs/Notify/Constraint_Interpreter.cpp deleted file mode 100644 index 8cb1eac6dd0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Interpreter.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// $Id$ - -#include "Constraint_Interpreter.h" -#include "Constraint_Visitors.h" - -ACE_RCSID(Notify, NS_Constraint_Interpreter, "$Id$") - -TAO_NS_Constraint_Interpreter::TAO_NS_Constraint_Interpreter (void) -{ -} - -TAO_NS_Constraint_Interpreter::~TAO_NS_Constraint_Interpreter (void) -{ -} - -void -TAO_NS_Constraint_Interpreter::build_tree ( - const char *constraints - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CosNotifyFilter::InvalidConstraint, - CORBA::NO_MEMORY)) -{ - if (TAO_ETCL_Interpreter::is_empty_string (constraints)) - { - // Root is deleted in the TAO_Interpreter's destructor. - ACE_NEW_THROW_EX (this->root_, - TAO_ETCL_Literal_Constraint ((CORBA::Boolean) 1), - CORBA::NO_MEMORY ()); - ACE_CHECK; - } - else - { - // root_ is set in this base class call. - if (TAO_ETCL_Interpreter::build_tree (constraints) != 0) - ACE_THROW (CosNotifyFilter::InvalidConstraint ()); - } -} - -CORBA::Boolean -TAO_NS_Constraint_Interpreter::evaluate (TAO_NS_Constraint_Visitor &evaluator) -{ - CORBA::Boolean retval = evaluator.evaluate_constraint (this->root_); - - return retval; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Interpreter.h b/TAO/orbsvcs/orbsvcs/Notify/Constraint_Interpreter.h deleted file mode 100644 index b98724728c7..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Interpreter.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file NS_Constraint_Interpreter.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_CONSTRAINT_INTERPRETER_H -#define TAO_NOTIFY_CONSTRAINT_INTERPRETER_H - -#include "ace/pre.h" -#include "orbsvcs/ETCL/ETCL_Interpreter.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ETCL/ETCL_Constraint.h" -#include "orbsvcs/CosNotifyFilterC.h" -#include "etcl_notify_filtering_export.h" - -class TAO_NS_Constraint_Visitor; - -/** - * @class TAO_NS_Constraint_Interpreter - * - * @brief "ETCL" Interpreter for the Notify queries. - */ -class ETCL_Notify_Filtering_Export TAO_NS_Constraint_Interpreter : public TAO_ETCL_Interpreter -{ -public: - // = Initialization and termination methods. - TAO_NS_Constraint_Interpreter (void); - - /// Destructor - ~TAO_NS_Constraint_Interpreter (void); - - /** - * This method builds an expression tree representing the - * constraint specified in <constraints>, and throws an Illegal - * Constraint exception if the constraint given has syntax errors or - * semantic errors, such as mismatched types. - */ - void build_tree (const char* constraints - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CosNotifyFilter::InvalidConstraint, - CORBA::NO_MEMORY)); - - /// Returns true if the constraint is evaluated successfully by - /// the evaluator. - CORBA::Boolean evaluate (TAO_NS_Constraint_Visitor &evaluator); -}; -#include "ace/post.h" -#endif /* TAO_NOTIFY_CONSTRAINT_INTERPRETER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Visitors.cpp b/TAO/orbsvcs/orbsvcs/Notify/Constraint_Visitors.cpp deleted file mode 100644 index 809c52bb05e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Visitors.cpp +++ /dev/null @@ -1,1564 +0,0 @@ -/* -*- C++ -*- */ -/* $Id$ */ - -#include "Constraint_Visitors.h" -#include "orbsvcs/ETCL/ETCL_Constraint.h" -#include "orbsvcs/ETCL/ETCL_y.h" -#include "tao/DynamicAny/DynArray_i.h" -#include "tao/DynamicAny/DynSequence_i.h" -#include "tao/DynamicAny/DynStruct_i.h" -#include "tao/DynamicAny/DynUnion_i.h" -#include "tao/DynamicAny/DynEnum_i.h" -#include "tao/DynamicAny/DynAnyFactory.h" - -TAO_NS_Constraint_Visitor::TAO_NS_Constraint_Visitor (void) - : implicit_id_ (NONE) -{ - (void) this->implicit_ids_.bind (ACE_CString ("filterable_data", - 0, - 0), - FILTERABLE_DATA); - (void) this->implicit_ids_.bind (ACE_CString ("header", - 0, - 0), - HEADER); - (void) this->implicit_ids_.bind (ACE_CString ("remainder_of_body", - 0, - 0), - REMAINDER_OF_BODY); - (void) this->implicit_ids_.bind (ACE_CString ("fixed_header", - 0, - 0), - FIXED_HEADER); - (void) this->implicit_ids_.bind (ACE_CString ("variable_header", - 0, - 0), - VARIABLE_HEADER); - (void) this->implicit_ids_.bind (ACE_CString ("event_name", - 0, - 0), - EVENT_NAME); - (void) this->implicit_ids_.bind (ACE_CString ("event_type", - 0, - 0), - EVENT_TYPE); - (void) this->implicit_ids_.bind (ACE_CString ("domain_name", - 0, - 0), - DOMAIN_NAME); - (void) this->implicit_ids_.bind (ACE_CString ("type_name", - 0, - 0), - TYPE_NAME); -} - -int -TAO_NS_Constraint_Visitor::bind_structured_event ( - const CosNotification::StructuredEvent &s_event - ) -{ - // The two sequences contained in a structured event are - // copied into hash tables so iteration is done only once. - - CORBA::ULong length = s_event.filterable_data.length (); - CORBA::ULong index = 0; - - for (index = 0; index < length; ++index) - { - ACE_CString name_str (s_event.filterable_data[index].name, 0, 0); - - int status = - this->filterable_data_.bind ( - name_str, - ACE_const_cast (CORBA::Any *, - &s_event.filterable_data[index].value) - ); - - if (status != 0) - { - return -1; - } - } - - length = s_event.header.variable_header.length (); - - for (index = 0; index < length; ++index) - { - ACE_CString name_str (s_event.header.variable_header[index].name, 0, 0); - - int status = - this->variable_header_.bind ( - name_str, - ACE_const_cast (CORBA::Any *, - &s_event.header.variable_header[index].value) - ); - - if (status != 0) - { - return -1; - } - } - - this->domain_name_ = - CORBA::string_dup (s_event.header.fixed_header.event_type.domain_name); - - this->type_name_ = - CORBA::string_dup (s_event.header.fixed_header.event_type.type_name); - - this->event_name_ = - CORBA::string_dup (s_event.header.fixed_header.event_name); - - this->remainder_of_body_ = s_event.remainder_of_body; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::evaluate_constraint ( - TAO_ETCL_Constraint* root - ) -{ - CORBA::Boolean result = 0; - this->queue_.reset (); - - // Evaluate the constraint in root_; - if (root != 0) - { - if ((root->accept (this) == 0) && - (! this->queue_.is_empty ())) - { - TAO_ETCL_Literal_Constraint top; - this->queue_.dequeue_head (top); - result = (CORBA::Boolean) top; - } - } - - // If a property couldn't be evaluated we must return 0. - return result; -} - -int -TAO_NS_Constraint_Visitor::visit_literal ( - TAO_ETCL_Literal_Constraint *literal - ) -{ - this->queue_.enqueue_head (*literal); - return 0; -} - -int -TAO_NS_Constraint_Visitor::visit_identifier (TAO_ETCL_Identifier *ident) -{ - int return_value = -1; - const char *name = ident->value (); - ACE_CString key (name, 0, 0); - - CORBA::Any *any = 0; - - if (this->filterable_data_.find (key, any) == 0) - { - if (any != 0) - { - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (any)); - return_value = 0; - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_union_value ( - TAO_ETCL_Union_Value *union_value - ) -{ - switch (union_value->sign ()) - { - case 0: - this->queue_.enqueue_head (*union_value->string ()); - break; - case -1: - this->queue_.enqueue_head (-(*union_value->integer ())); - break; - case 1: - this->queue_.enqueue_head (*union_value->integer ()); - break; - default: - return -1; - } - - return 0; -} - -int -TAO_NS_Constraint_Visitor::visit_union_pos ( - TAO_ETCL_Union_Pos *union_pos - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - if (union_pos->union_value ()->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint disc_val; - this->queue_.dequeue_head (disc_val); - - TAO_DynUnion_i dyn_union; - dyn_union.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::TypeCode_var tc = this->current_value_->type (); - - switch (disc_val.expr_type ()) - { - case TAO_ETCL_INTEGER: - case TAO_ETCL_SIGNED: - case TAO_ETCL_UNSIGNED: - { - CORBA::Any disc_any; - CORBA::TypeCode_var disc_tc = - tc->discriminator_type (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - CORBA::TCKind disc_kind = - TAO_DynAnyFactory::unalias (disc_tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - switch (disc_kind) - { - case CORBA::tk_boolean: - disc_any <<= CORBA::Any::from_boolean ((CORBA::Boolean) disc_val); - break; - case CORBA::tk_short: - disc_any <<= (CORBA::Short) ((CORBA::Long) disc_val); - break; - case CORBA::tk_ushort: - disc_any <<= (CORBA::UShort) ((CORBA::ULong) disc_val); - break; - case CORBA::tk_long: - disc_any <<= (CORBA::Long) disc_val; - break; - case CORBA::tk_ulong: - disc_any <<= (CORBA::ULong) disc_val; - break; - case CORBA::tk_enum: - { - TAO_OutputCDR cdr; - cdr.write_ulong ((CORBA::ULong) disc_val); - disc_any._tao_replace (disc_tc.in (), - TAO_ENCAP_BYTE_ORDER, - cdr.begin ()); - break; - } - // @@@ (JP) I don't think ETCL handles 64-bit - // integers at this point, and I also think that - // chars and/or wchars will just come out in the - // constraint as (w)strings of length 1. - case CORBA::tk_longlong: - case CORBA::tk_ulonglong: - case CORBA::tk_char: - case CORBA::tk_wchar: - default: - return -1; - } - - DynamicAny::DynAny_var dyn_any = - TAO_DynAnyFactory::make_dyn_any (disc_any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - dyn_union.set_discriminator (dyn_any.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - DynamicAny::DynAny_var u_member = - dyn_union.member (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - this->current_value_ = - u_member->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - case TAO_ETCL_STRING: - { - const char *name = (const char *) disc_val; - CORBA::ULong count = - tc->member_count (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - const char *member_name = 0; - CORBA::ULong i = 0; - - for (i = 0; i < count; ++i) - { - member_name = tc->member_name (i - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (ACE_OS::strcmp (name, member_name) == 0) - { - break; - } - } - - // If there's no match, member_label will throw - // CORBA::TypeCode::Bounds and the catch block will - // return -1; - this->current_value_ = tc->member_label (i - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - // The TAO_ETCL_Union_Value that was put on the queue - // shouldn't have any other type. - default: - return -1; - } - - TAO_ETCL_Constraint *nested = union_pos->component (); - - // If there's no nested component, then we just want the - // union member value on the queue. Otherwise, we want - // the member value in current_value_ while we visit - // the nested component. - if (nested == 0) - { - TAO_ETCL_Literal_Constraint lit (this->current_value_); - this->queue_.enqueue_head (lit); - return 0; - } - else - { - return nested->accept (this); - } - } - else - { - return -1; - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_component_pos ( - TAO_ETCL_Component_Pos *pos - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - // If we are here (from visit_component) the Any containing the - // component as found in filterable_data_ will be in current_value_. - CORBA::TypeCode_var tc = this->current_value_->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var member; - CORBA::Boolean success = 0; - CORBA::ULong slot = (CORBA::ULong) *pos->integer (); - - switch (kind) - { - case CORBA::tk_enum: - { - TAO_DynEnum_i dyn_enum; - dyn_enum.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_enum.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = - dyn_enum.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - case CORBA::tk_struct: - { - TAO_DynStruct_i dyn_struct; - dyn_struct.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_struct.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = dyn_struct.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - // @@@ (JP) I think enums and structs are the only two cases handled - // by Component_Pos, since arrays and sequences are handled by - // Component_Array, and unions are handled by Union_Pos. - default: - return -1; - } - - CORBA::Any_var value = member->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Constraint *comp = pos->component (); - - if (comp == 0) - { - TAO_ETCL_Literal_Constraint result (value); - this->queue_.enqueue_head (result); - return 0; - } - else - { - this->current_value_ = value._retn (); - return comp->accept (this); - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_component_assoc ( - TAO_ETCL_Component_Assoc *assoc - ) -{ - CORBA::Any *any = 0; - ACE_CString name (assoc->identifier ()->value (), - 0, - 0); - - switch (this->implicit_id_) - { - case FILTERABLE_DATA: - if (this->filterable_data_.find (name, any) != 0 - || any == 0) - { - return -1; - } - - break; - case VARIABLE_HEADER: - if (this->variable_header_.find (name, any) != 0 - || any == 0) - { - return -1; - } - - break; - // Only the sequence members of CosNotification::StructuredEvent can be - // treated as associative arrays. - default: - return -1; - } - - TAO_ETCL_Constraint *comp = assoc->component (); - CORBA::Any *any_ptr = 0; - - if (comp == 0) - { - TAO_ETCL_Literal_Constraint result (any); - this->queue_.enqueue_head (result); - - // If we're at the end of the line, put the name into - // current_value_ so visit_exist can use it. - ACE_NEW_RETURN (any_ptr, - CORBA::Any, - -1); - (*any_ptr) <<= name.c_str (); - this->current_value_ = any_ptr; - - return 0; - } - else - { - ACE_NEW_RETURN (any_ptr, - CORBA::Any (*any), - -1); - this->current_value_ = any_ptr; - return comp->accept (this); - } -} - -int -TAO_NS_Constraint_Visitor::visit_component_array ( - TAO_ETCL_Component_Array *array - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - // If we are here (from visit_component) the Any containing the - // component as found in filterable_data_ will be in current_value_. - CORBA::TypeCode_var tc = this->current_value_->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var member; - CORBA::Boolean success = 0; - CORBA::ULong slot = (CORBA::ULong) *array->integer (); - - switch (kind) - { - case CORBA::tk_array: - { - TAO_DynEnum_i dyn_array; - dyn_array.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_array.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = dyn_array.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - case CORBA::tk_sequence: - { - TAO_DynStruct_i dyn_sequence; - dyn_sequence.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_sequence.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = - dyn_sequence.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - // Enums and sequences are the only two cases handled - // by Component_Array. - default: - return -1; - } - - CORBA::Any_var value = member->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Constraint *comp = array->component (); - - if (comp == 0) - { - TAO_ETCL_Literal_Constraint result (value); - this->queue_.enqueue_head (result); - return 0; - } - else - { - this->current_value_ = value._retn (); - return comp->accept (this); - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_special (TAO_ETCL_Special *special) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var tc = this->current_value_->type (); - - switch (special->type ()) - { - case TAO_ETCL_LENGTH: - { - // If the TCKind is not a sequence or an array, the - // call to length() will raise an exception, and the - // catch block will return -1; - CORBA::ULong length = tc->length (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (length); - this->queue_.enqueue_head (lit); - return 0; - } - case TAO_ETCL_DISCRIMINANT: - { - // If the TCKind is not a union, the - // call to init() will raise an exception, and the - // catch block will return -1; - TAO_DynUnion_i dyn_union; - dyn_union.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var disc = - dyn_union.get_discriminator (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Any_var disc_any = disc->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (disc_any); - this->queue_.enqueue_head (lit); - return 0; - } - case TAO_ETCL_TYPE_ID: - { - const char *name = tc->name (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (name); - this->queue_.enqueue_head (lit); - return 0; - } - case TAO_ETCL_REPOS_ID: - { - const char *id = tc->id (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (id); - this->queue_.enqueue_head (lit); - return 0; - } - default: - return -1; - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_component ( - TAO_ETCL_Component *component - ) -{ - TAO_ETCL_Constraint *nested = component->component (); - TAO_ETCL_Identifier *identifier = component->identifier (); - ACE_CString component_name (identifier->value (), - 0, - 0); - CORBA::Any *any_ptr = 0; - - if (this->implicit_ids_.find (component_name, this->implicit_id_) != 0) - { - this->implicit_id_ = NONE; - } - - // If this component has no sub-component, only an identifier, - // then we just visit the identifier, which puts a literal on - // the queue to be handled upon returning from this method call. - // If there is a sub-component, we store the literal's value - // in our member _var for possible examination at a more - // nested level, and visit the sub-component. If the identifier - // matches one of the nested field names in - // CosNotification::StructuredEvent, we just visit the nested - // component, if any. - if (this->implicit_id_ == NONE) - { - if (nested == 0) - { - // If this is the end of the line, we put the component name - // into current_value_ so visit_exist can use it. - ACE_NEW_RETURN (any_ptr, - CORBA::Any, - -1); - (*any_ptr) <<= component_name.c_str (); - this->current_value_ = any_ptr; - return identifier->accept (this); - } - else - { - int result = identifier->accept (this); - - if (result != 0) - { - return result; - } - - TAO_ETCL_Literal_Constraint id; - this->queue_.dequeue_head (id); - ACE_NEW_RETURN (any_ptr, - CORBA::Any (*(const CORBA::Any *) id), - -1); - this->current_value_ = any_ptr; - } - } - - if (nested != 0) - { - return nested->accept (this); - } - else - { - switch (this->implicit_id_) - { - case TYPE_NAME: - { - TAO_ETCL_Literal_Constraint tn (this->type_name_.in ()); - this->queue_.enqueue_head (tn); - return 0; - } - case EVENT_NAME: - { - TAO_ETCL_Literal_Constraint en (this->event_name_.in ()); - this->queue_.enqueue_head (en); - return 0; - } - case DOMAIN_NAME: - { - TAO_ETCL_Literal_Constraint dn (this->domain_name_.in ()); - this->queue_.enqueue_head (dn); - return 0; - } - case REMAINDER_OF_BODY: - { - TAO_ETCL_Literal_Constraint rob (&this->remainder_of_body_); - this->queue_.enqueue_head (rob); - return 0; - } - // The above cases are the leaves of the - // CosNotification::StructuredEvent "tree". Anything else and we - // should have a nested component. otherwise, it's an error. - default: - return -1; - } - } -} - -int -TAO_NS_Constraint_Visitor::visit_dot (TAO_ETCL_Dot *dot) -{ - // If we are here, we know we're headed for a more nested - // level, so we just visit it, there's nothing else in this - // constraint. - return dot->component ()->accept (this); -} - -int -TAO_NS_Constraint_Visitor::visit_eval (TAO_ETCL_Eval *eval) -{ - // Nothing to do but visit the contained component. - return eval->component ()->accept (this); -} - -int -TAO_NS_Constraint_Visitor::visit_default (TAO_ETCL_Default *def) -{ - TAO_ETCL_Constraint *comp = def->component (); - - if (comp == 0) - { - return -1; - } - - if (comp->accept (this) != 0) - { - return -1; - } - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var tc = this->current_value_->type (); - - // If the current member is not a union, this call will - // throw BadKind and the catch block will return -1. - CORBA::Long default_index = tc->default_index (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // No default index. - if (default_index == -1) - { - TAO_ETCL_Literal_Constraint result ((CORBA::Boolean) 0); - this->queue_.enqueue_head (result); - return 0; - } - - // Okay, there's a default index, but is it active? - - TAO_ETCL_Literal_Constraint disc; - this->queue_.dequeue_head (disc); - TAO_ETCL_Literal_Constraint default_index_value (default_index); - return (disc == default_index_value); - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_exist (TAO_ETCL_Exist *exist) -{ - TAO_ETCL_Constraint *component = exist->component (); - - if (component->accept (this) == 0) - { - const char *value = 0; - CORBA::Boolean result = 0; - - // For the two cases below, we don't want the item at the top of - // the queue, because it's the result of a hash table lookup. For - // an existence test, we want the key value, which is stored in - // the current_value_ member. - if (this->implicit_id_ == FILTERABLE_DATA - || this->implicit_id_ == VARIABLE_HEADER) - { - TAO_ETCL_Literal_Constraint current ( - &this->current_value_.inout () - ); - value = CORBA::string_dup ((const char *) current); - } - - switch (this->implicit_id_) - { - case FILTERABLE_DATA: - result = - (this->filterable_data_.find (ACE_CString (value, 0, 0)) == 0); - break; - case VARIABLE_HEADER: - result = - (this->variable_header_.find (ACE_CString (value, 0, 0)) == 0); - break; - case TYPE_NAME: - result = (this->type_name_.in () != 0); - break; - case EVENT_NAME: - result = (this->event_name_.in () != 0); - break; - case DOMAIN_NAME: - result = (this->domain_name_.in () != 0); - break; - // Anything other than the above cases is an error. - default: - return -1; - } - - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - - return 0; - } - - return -1; -} - -int -TAO_NS_Constraint_Visitor::visit_unary_expr ( - TAO_ETCL_Unary_Expr *unary_expr - ) -{ - TAO_ETCL_Constraint *subexpr = unary_expr->subexpr (); - - if (subexpr->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint subexpr_result; - CORBA::Boolean result = 0; - int op_type = unary_expr->type (); - - switch (op_type) - { - case TAO_ETCL_NOT: - this->queue_.dequeue_head (subexpr_result); - result = ! (CORBA::Boolean) subexpr_result; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - return 0; - case TAO_ETCL_MINUS: - // The leading '-' was parsed separately, so we have to pull - // the literal constraint off the queue, apply the class' own - // unary minus operator, and put it back. - this->queue_.dequeue_head (subexpr_result); - this->queue_.enqueue_head (-subexpr_result); - return 0; - case TAO_ETCL_PLUS: - // Leave the literal constraint on the queue. The leading - // '+' was just syntactic sugar - no action is necessary. - return 0; - default: - // The parser should never construct a TAO_ETCL_Unary_Constraint - // behind any operators except the above three. - return -1; - } - } - - return -1; -} - -int -TAO_NS_Constraint_Visitor::visit_binary_expr ( - TAO_ETCL_Binary_Expr *binary_expr - ) -{ - int bin_op_type = binary_expr->type (); - - switch (bin_op_type) - { - case TAO_ETCL_OR: - return this->visit_or (binary_expr); - case TAO_ETCL_AND: - return this->visit_and (binary_expr); - case TAO_ETCL_LT: - case TAO_ETCL_LE: - case TAO_ETCL_GT: - case TAO_ETCL_GE: - case TAO_ETCL_EQ: - case TAO_ETCL_NE: - case TAO_ETCL_PLUS: - case TAO_ETCL_MINUS: - case TAO_ETCL_MULT: - case TAO_ETCL_DIV: - return this->visit_binary_op (binary_expr, - bin_op_type); - case TAO_ETCL_TWIDDLE: - return this->visit_twiddle (binary_expr); - case TAO_ETCL_IN: - return this->visit_in (binary_expr); - default: - return -1; - } -} - -int -TAO_NS_Constraint_Visitor::visit_or ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - CORBA::Boolean result = 0; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint lhs_result; - this->queue_.dequeue_head (lhs_result); - result = (CORBA::Boolean) lhs_result; - - // Short-circuiting OR. - if (result == 0) - { - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint rhs_result; - this->queue_.dequeue_head (rhs_result); - result = (CORBA::Boolean) rhs_result; - return_value = 0; - } - } - else - { - return_value = 0; - } - } - - if (return_value == 0) - { - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_and ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - CORBA::Boolean result = 0; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint lhs_result; - this->queue_.dequeue_head (lhs_result); - result = (CORBA::Boolean) lhs_result; - - // Short-circuiting AND. - if (result == 1) - { - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint rhs_result; - this->queue_.dequeue_head (rhs_result); - result = (CORBA::Boolean) rhs_result; - return_value = 0; - } - } - else - { - return_value = 0; - } - } - - if (return_value == 0) - { - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_binary_op ( - TAO_ETCL_Binary_Expr *binary, - int op_type - ) -{ - int return_value = -1; - TAO_ETCL_Constraint *lhs = binary->lhs (); - CORBA::Boolean result = 0; - - // Perform an operation on the results of evaluating the left and - // right branches of this subtree. - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint left_operand; - this->queue_.dequeue_head (left_operand); - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint right_operand; - this->queue_.dequeue_head (right_operand); - return_value = 0; - - switch (op_type) - { - case TAO_ETCL_LT: - result = left_operand < right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_LE: - result = left_operand <= right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_GT: - result = left_operand > right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_GE: - result = left_operand >= right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_EQ: - result = left_operand == right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_NE: - result = left_operand != right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_PLUS: - this->queue_.enqueue_head (left_operand + right_operand); - break; - case TAO_ETCL_MINUS: - this->queue_.enqueue_head (left_operand - right_operand); - break; - case TAO_ETCL_MULT: - this->queue_.enqueue_head (left_operand * right_operand); - break; - case TAO_ETCL_DIV: - this->queue_.enqueue_head (left_operand / right_operand); - break; - default: - return_value = -1; - } - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_twiddle ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - // Determine if the left operand is a substring of the right. - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint left; - this->queue_.dequeue_head (left); - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint right; - this->queue_.dequeue_head (right); - CORBA::Boolean result = - (ACE_OS::strstr ((const char *) right, - (const char *) left) != 0); - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - return_value = 0; - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_in ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - // Determine if the left operand is contained in the right. - - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint left; - this->queue_.dequeue_head (left); - - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint bag; - this->queue_.dequeue_head (bag); - - if (bag.expr_type () == TAO_ETCL_COMPONENT) - { - const CORBA::Any *component = (const CORBA::Any *) bag; - CORBA::TCKind kind = CORBA::tk_null; - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var tc = component->type (); - kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return return_value; - } - ACE_ENDTRY; - - CORBA::Boolean result = 0; - - switch (kind) - { - case CORBA::tk_sequence: - result = this->sequence_does_contain (component, - left); - break; - case CORBA::tk_array: - result = this->array_does_contain (component, - left); - break; - case CORBA::tk_struct: - result = this->struct_does_contain (component, - left); - break; - case CORBA::tk_union: - result = this->union_does_contain (component, - left); - break; - case CORBA::tk_any: - result = this->any_does_contain (component, - left); - break; - default: - return return_value; - } - - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - return_value = 0; - } - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_preference ( - TAO_ETCL_Preference * - ) -{ - // According to OMG 00-06-20 section 2.4.1, the Notification Service - // does not use the preference operators. The method must be here - // because it is called by the ETCL node, which may be used by other - // CORBA services that do use the preference operators. - return -1; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::sequence_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var type = any->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (type.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the array elements must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - return 0; - } - - TAO_DynSequence_i dyn_seq; - dyn_seq.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::AnySeq_var any_seq = - dyn_seq.get_elements (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong length = any_seq->length (); - - for (CORBA::ULong i = 0; i < length; ++i) - { - TAO_ETCL_Literal_Constraint element (&any_seq[i]); - - if (item == element) - { - return 1; - } - } - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::array_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var type = any->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (type.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the array elements must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - return 0; - } - - TAO_DynArray_i dyn_array; - dyn_array.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::AnySeq_var any_seq = - dyn_array.get_elements (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong length = any_seq->length (); - - for (CORBA::ULong i = 0; i < length; ++i) - { - TAO_ETCL_Literal_Constraint element (&any_seq[i]); - - if (item == element) - { - return 1; - } - } - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::struct_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - TAO_DynStruct_i dyn_struct; - dyn_struct.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::NameValuePairSeq_var members = - dyn_struct.get_members (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong length = members->length (); - CORBA::TypeCode_var tc; - CORBA::TCKind kind; - - for (CORBA::ULong i = 0; i < length; ++i) - { - tc = members[i].value.type (); - kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the struct member must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - continue; - } - - TAO_ETCL_Literal_Constraint element (&members[i].value); - - if (item == element) - { - return 1; - } - } - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::union_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - TAO_DynUnion_i dyn_union; - dyn_union.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var cc = - dyn_union.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Any_var member = cc->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::TypeCode_var tc = member->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the union member must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - return 0; - } - - TAO_ETCL_Literal_Constraint element (&member.inout ()); - - return (item == element); - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::any_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - const CORBA::Any *result = 0; - - *any >>= result; - - TAO_ETCL_Literal_Constraint element (ACE_const_cast (CORBA::Any *, - result)); - - return (item == element); -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::simple_type_match (int expr_type, - CORBA::TCKind tc_kind) -{ - switch (expr_type) - { - case TAO_ETCL_STRING: - if (tc_kind != CORBA::tk_string) - { - return 0; - } - case TAO_ETCL_DOUBLE: - if (tc_kind != CORBA::tk_double - && tc_kind != CORBA::tk_float) - { - return 0; - } - case TAO_ETCL_INTEGER: - case TAO_ETCL_SIGNED: - if (tc_kind != CORBA::tk_short - && tc_kind != CORBA::tk_long - && tc_kind != CORBA::tk_longlong) - { - return 0; - } - case TAO_ETCL_UNSIGNED: - if (tc_kind != CORBA::tk_ushort - && tc_kind != CORBA::tk_ulong - && tc_kind != CORBA::tk_ulonglong) - { - return 0; - } - case TAO_ETCL_BOOLEAN: - if (tc_kind != CORBA::tk_boolean) - { - return 0; - } - default: - return 0; - } -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Hash_Map_Manager<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Entry <ACE_CString, CORBA::Any*>; -template class ACE_Hash_Map_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Node<TAO_ETCL_Literal_Constraint>; -template class ACE_Unbounded_Queue<TAO_ETCL_Literal_Constraint>; -template class ACE_Unbounded_Queue_Iterator<TAO_ETCL_Literal_Constraint>; - - -template class ACE_Hash_Map_Manager<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Entry <ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field>; -template class ACE_Hash_Map_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Entry <ACE_CString, CORBA::Any*> -#pragma instantiate ACE_Hash_Map_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Node<TAO_ETCL_Literal_Constraint> -#pragma instantiate ACE_Unbounded_Queue<TAO_ETCL_Literal_Constraint> -#pragma instantiate ACE_Unbounded_Queue_Iterator<TAO_ETCL_Literal_Constraint> - -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Entry <ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field> -#pragma instantiate ACE_Hash_Map_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Visitors.h b/TAO/orbsvcs/orbsvcs/Notify/Constraint_Visitors.h deleted file mode 100644 index e81821cc81c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Constraint_Visitors.h +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file NS_Constraint_Visitors.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - * @author Jeff Parsons <parsons@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_CONSTRAINT_VISITORS_H -#define NOTIFY_CONSTRAINT_VISITORS_H - -#include "ace/pre.h" -#include "ace/Hash_Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ETCL/ETCL_Constraint_Visitor.h" -#include "orbsvcs/CosNotificationC.h" -#include "etcl_notify_filtering_export.h" - -class TAO_ETCL_Constraint; -class TAO_ETCL_Literal_Constraint; -class TAO_Notify_Property_Constraint; - -class ETCL_Notify_Filtering_Export TAO_NS_Constraint_Visitor - : public TAO_ETCL_Constraint_Visitor -{ -public: - /// Constructor. - TAO_NS_Constraint_Visitor (void); - - /// Put the event data into our hash map. - int bind_structured_event (const CosNotification::StructuredEvent &s_event); - - /** - * Returns 1 if the event satisfies the constraint - * represented by the the expression tree rooted at <root>, 0 if it - * doesn't. If an error occurs during the process, the traversal - * automatically fails. - */ - CORBA::Boolean evaluate_constraint (TAO_ETCL_Constraint *root); - - // The overridden methods. - int visit_literal (TAO_ETCL_Literal_Constraint *); - int visit_identifier (TAO_ETCL_Identifier *); - int visit_union_value (TAO_ETCL_Union_Value *); - int visit_union_pos (TAO_ETCL_Union_Pos *); - int visit_component_pos (TAO_ETCL_Component_Pos *); - int visit_component_assoc (TAO_ETCL_Component_Assoc *); - int visit_component_array (TAO_ETCL_Component_Array *); - int visit_special (TAO_ETCL_Special *); - int visit_component (TAO_ETCL_Component *); - int visit_dot (TAO_ETCL_Dot *); - int visit_eval (TAO_ETCL_Eval *); - int visit_default (TAO_ETCL_Default *); - int visit_exist (TAO_ETCL_Exist *); - int visit_unary_expr (TAO_ETCL_Unary_Expr *); - int visit_binary_expr (TAO_ETCL_Binary_Expr *); - int visit_preference (TAO_ETCL_Preference *); - -protected: - // Sub-methods for visit_binary_expr(). - int visit_or (TAO_ETCL_Binary_Expr *); - int visit_and (TAO_ETCL_Binary_Expr *); - int visit_twiddle (TAO_ETCL_Binary_Expr *); - int visit_in (TAO_ETCL_Binary_Expr *); - int visit_binary_op (TAO_ETCL_Binary_Expr *binary_expr, - int op_type); - - // These use dynamic anys to look inside the ETCL component. - CORBA::Boolean sequence_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean array_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean struct_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean union_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean any_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - - // Utility function to compare a TAO_ETCL_Literal_Constraint type - // and a type code. - CORBA::Boolean simple_type_match (int expr_type, - CORBA::TCKind tc_kind); - - enum structured_event_field - { - FILTERABLE_DATA, - HEADER, - FIXED_HEADER, - EVENT_TYPE, - DOMAIN_NAME, - TYPE_NAME, - EVENT_NAME, - VARIABLE_HEADER, - REMAINDER_OF_BODY, - NONE - }; - - /// Storage for the type of implicit id the component has (if any). - structured_event_field implicit_id_; - - /// Lookup table for the implicit ids, to avoid string comparisons in - /// derived visitors. - ACE_Hash_Map_Manager <ACE_CString, structured_event_field, TAO_SYNCH_MUTEX> - implicit_ids_; - - /// Used to lookup names and values in the event's 'filterable_data' field. - ACE_Hash_Map_Manager <ACE_CString, CORBA::Any *, TAO_SYNCH_MUTEX> - filterable_data_; - - /// Used to lookup names and values in the event's 'variable_header' field. - ACE_Hash_Map_Manager <ACE_CString, CORBA::Any *, TAO_SYNCH_MUTEX> - variable_header_; - - /// Storage for string names under the structured event's - /// 'fixed_header' field. - CORBA::String_var domain_name_; - CORBA::String_var type_name_; - CORBA::String_var event_name_; - - /// Storage for the structured_event's 'remainder_of_body' field. - CORBA::Any remainder_of_body_; - - /// The result of a non_boolean operation. - ACE_Unbounded_Queue <TAO_ETCL_Literal_Constraint> queue_; - - /// Holder for a value found in the event fields filterable_data, - /// variable_header or remainder_of_body. - CORBA::Any_var current_value_; - - /// Holder for a string name in the event fields fixed_header, - /// variable_header, or filterable_data. - CORBA::String_var current_name_; -}; - -#include "ace/post.h" -#endif /* NOTIFY_CONSTRAINT_VISITORS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp deleted file mode 100644 index 2210c3ca7ad..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp +++ /dev/null @@ -1,105 +0,0 @@ -// $Id$ - -#include "Consumer.h" - -#if ! defined (__ACE_INLINE__) -#include "Consumer.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Consumer, "$Id$") - -#include "ace/Refcounted_Auto_Ptr.h" -#include "ace/Unbounded_Queue.h" -#include "tao/debug.h" - -TAO_NS_Consumer::TAO_NS_Consumer (TAO_NS_ProxySupplier* proxy) - :proxy_ (proxy), event_collection_ (0), is_suspended_ (0) -{ - this->event_collection_ = new TAO_NS_Event_Collection (); -} - -TAO_NS_Consumer::~TAO_NS_Consumer () -{ - delete this->event_collection_; -} - -TAO_NS_Proxy* -TAO_NS_Consumer::proxy (void) -{ - return this->proxy_supplier (); -} - -void -TAO_NS_Consumer::push (const TAO_NS_Event_var &event ACE_ENV_ARG_DECL) -{ - if (this->is_suspended_ == 1) // If we're suspended, queue for later delivery. - { - ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, *this->proxy_lock ()); - this->event_collection_->enqueue_head (event); - - return; - } - - ACE_TRY - { - this->push_i (event ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::OBJECT_NOT_EXIST, not_exist) - { - this->handle_dispatch_exception (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::SystemException, sysex) - { - this->handle_dispatch_exception (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - } - ACE_ENDTRY; -} - -void -TAO_NS_Consumer::dispatch_pending (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - if (this->is_suspended_ == 1) - return; // Do nothing if we're suspended. - - TAO_NS_Event_Collection event_collection_copy; - - { - ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, *this->proxy_lock ()); - event_collection_copy = *this->event_collection_; // Payload is never copied, this is a collection of _vars. - this->event_collection_->reset (); - } - - TAO_NS_ProxySupplier* proxy_supplier = this->proxy_supplier (); - - TAO_NS_Event_var event; - - while (!event_collection_copy.is_empty ()) - { - if (event_collection_copy.dequeue_head (event) == 0) - { - proxy_supplier->push_no_filtering (event); - } - } -} - -void -TAO_NS_Consumer::resume (ACE_ENV_SINGLE_ARG_DECL) -{ - this->is_suspended_ = 0; - - this->dispatch_pending (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_NS_Consumer::dispatch_updates_i (const CosNotification::EventTypeSeq& added, const CosNotification::EventTypeSeq& removed - ACE_ENV_ARG_DECL) -{ - if (!CORBA::is_nil (this->publish_.in ())) - this->publish_->offer_change (added, removed ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer.h b/TAO/orbsvcs/orbsvcs/Notify/Consumer.h deleted file mode 100644 index 9537e8f3398..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Consumer.h +++ /dev/null @@ -1,102 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Consumer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_CONSUMER_H -#define TAO_NS_CONSUMER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyCommC.h" -#include "orbsvcs/CosNotificationC.h" -#include "Peer.h" -#include "Event.h" - -class TAO_NS_ProxySupplier; -class TAO_NS_Proxy; - -/** - * @class TAO_NS_Consumer - * - * @brief Astract Base class for wrapping consumer objects that connect to the EventChannel - * - */ -class TAO_Notify_Export TAO_NS_Consumer : public TAO_NS_Peer -{ -public: - /// Constuctor - TAO_NS_Consumer (TAO_NS_ProxySupplier* proxy); - - /// Destructor - virtual ~TAO_NS_Consumer (); - - /// Access Specific Proxy. - TAO_NS_ProxySupplier* proxy_supplier (void); - - /// Access Base Proxy. - virtual TAO_NS_Proxy* proxy (void); - - /// Push <event> to this consumer. - void push (const TAO_NS_Event_var& event ACE_ENV_ARG_DECL); - - /// Push <event> to this consumer. - virtual void push (const CORBA::Any& event ACE_ENV_ARG_DECL) = 0; - - /// Push <event> to this consumer. - virtual void push (const CosNotification::StructuredEvent& event ACE_ENV_ARG_DECL) = 0; - - /// Dispatch the pending events - void dispatch_pending (ACE_ENV_SINGLE_ARG_DECL); - - /// Is the connection suspended? - CORBA::Boolean is_suspended (void); - - /// Suspend Connection - void suspend (ACE_ENV_SINGLE_ARG_DECL); - - /// Resume Connection - void resume (ACE_ENV_SINGLE_ARG_DECL); - -protected: - // Dispatch updates - virtual void dispatch_updates_i (const CosNotification::EventTypeSeq& added, - const CosNotification::EventTypeSeq& removed - ACE_ENV_ARG_DECL); - - /// Push Implementation. - virtual void push_i (const TAO_NS_Event_var& event ACE_ENV_ARG_DECL) = 0; - - /// Get the shared Proxy Lock - TAO_SYNCH_MUTEX* proxy_lock (void); - - /// The Proxy that we associate with. - TAO_NS_ProxySupplier* proxy_; - - /// Events pending to be delivered. - TAO_NS_Event_Collection* event_collection_; - - /// Suspended Flag. - CORBA::Boolean is_suspended_; - - /// Interface that accepts offer_changes - CosNotifyComm::NotifyPublish_var publish_; -}; - -#if defined (__ACE_INLINE__) -#include "Consumer.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_CONSUMER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer.inl b/TAO/orbsvcs/orbsvcs/Notify/Consumer.inl deleted file mode 100644 index d2a5a104c85..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Consumer.inl +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -#include "ProxySupplier.h" - -ACE_INLINE TAO_SYNCH_MUTEX* -TAO_NS_Consumer::proxy_lock (void) -{ - return &this->proxy_->lock_; -} - -ACE_INLINE TAO_NS_ProxySupplier* -TAO_NS_Consumer::proxy_supplier (void) -{ - return this->proxy_; -} - -ACE_INLINE CORBA::Boolean -TAO_NS_Consumer::is_suspended (void) -{ - return this->is_suspended_; -} - -ACE_INLINE void -TAO_NS_Consumer::suspend (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->is_suspended_ = 1; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp deleted file mode 100644 index 458a73b6ad7..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp +++ /dev/null @@ -1,328 +0,0 @@ -// $Id$ - -#include "ConsumerAdmin.h" - -#if ! defined (__ACE_INLINE__) -#include "ConsumerAdmin.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_ConsumerAdmin, "$Id$") - -#include "ace/Auto_Ptr.h" -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Subscription_Change_Worker.h" -#include "Proxy.h" -#include "EventChannel.h" -#include "Properties.h" -#include "Factory.h" -#include "Builder.h" -#include "Find_Worker_T.h" -#include "Seq_Worker_T.h" - -TAO_NS_ConsumerAdmin::TAO_NS_ConsumerAdmin (void) -{ -} - -TAO_NS_ConsumerAdmin::~TAO_NS_ConsumerAdmin () -{ -} - -void -TAO_NS_ConsumerAdmin::init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL) -{ - TAO_NS_Admin::init (ec ACE_ENV_ARG_PARAMETER); - - const CosNotification::QoSProperties &default_ca_qos = - TAO_NS_PROPERTIES::instance ()->default_consumer_admin_qos_properties (); - - this->set_qos (default_ca_qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_ConsumerAdmin::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_incr_refcnt (); -} - -void -TAO_NS_ConsumerAdmin::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_decr_refcnt (); -} - -void -TAO_NS_ConsumerAdmin::release (void) -{ - delete this; - //@@ inform factory -} - -void -TAO_NS_ConsumerAdmin::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return; - - ACE_CHECK; - - this->ec_->remove (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_NS_ConsumerAdmin::obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )) -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this - , ctype - , proxy_id - ACE_ENV_ARG_PARAMETER); -} - -CosEventChannelAdmin::ProxyPushSupplier_ptr -TAO_NS_ConsumerAdmin::obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminID -TAO_NS_ConsumerAdmin::MyID (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->id (); -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_NS_ConsumerAdmin::MyChannel (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->ec_->_this (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -::CosNotifyChannelAdmin::InterFilterGroupOperator -TAO_NS_ConsumerAdmin::MyOperator (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_operator_; -} - -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_NS_ConsumerAdmin::push_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Seq_Worker_T<TAO_NS_Proxy> seq_worker; - - return seq_worker.create (*this->proxy_container_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_NS_ConsumerAdmin::get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::ProxyNotFound - )) -{ - TAO_NS_Find_Worker_T<TAO_NS_Proxy - , CosNotifyChannelAdmin::ProxySupplier - , CosNotifyChannelAdmin::ProxySupplier_ptr - , CosNotifyChannelAdmin::ProxyNotFound> find_worker; - - return find_worker.resolve (proxy_id, *this->proxy_container_ ACE_ENV_ARG_PARAMETER); -} - -void TAO_NS_ConsumerAdmin::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )) -{ - this->TAO_NS_Object::set_qos (qos ACE_ENV_ARG_PARAMETER); -} - - -CosNotification::QoSProperties* -TAO_NS_ConsumerAdmin::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->TAO_NS_Object::get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_NS_ConsumerAdmin::subscription_change (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyComm::InvalidEventType - )) -{ - TAO_NS_EventTypeSeq seq_added (added); - TAO_NS_EventTypeSeq seq_removed (removed); - - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->subscribed_types_.init (seq_added, seq_removed); - - TAO_NS_Subscription_Change_Worker worker (added, removed); - - this->proxy_container_->collection()->for_each (&worker ACE_ENV_ARG_PARAMETER); - } -} - -CosNotifyFilter::FilterID -TAO_NS_ConsumerAdmin::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_ConsumerAdmin::remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )) -{ - this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER); -} - -::CosNotifyFilter::Filter_ptr -TAO_NS_ConsumerAdmin::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )) -{ - return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER); -} - -::CosNotifyFilter::FilterIDSeq* -TAO_NS_ConsumerAdmin::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_NS_ConsumerAdmin::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -/************ UNIMPLMENTED METHODS *************************/ - -CosNotifyFilter::MappingFilter_ptr -TAO_NS_ConsumerAdmin::priority_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyFilter::MappingFilter::_nil ()); -} - -void -TAO_NS_ConsumerAdmin::priority_filter (CosNotifyFilter::MappingFilter_ptr /*priority_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) - -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosNotifyFilter::MappingFilter_ptr -TAO_NS_ConsumerAdmin::lifetime_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) - -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyFilter::MappingFilter::_nil ()); -} - -void -TAO_NS_ConsumerAdmin::lifetime_filter (CosNotifyFilter::MappingFilter_ptr /*lifetime_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -::CosNotifyChannelAdmin::ProxyIDSeq* -TAO_NS_ConsumerAdmin::pull_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_NS_ConsumerAdmin::obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType /*ctype*/, - CosNotifyChannelAdmin::ProxyID_out /*proxy_id*/ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )) - -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyChannelAdmin::ProxySupplier::_nil ()); -} - -void -TAO_NS_ConsumerAdmin::validate_qos (const CosNotification::QoSProperties & /*required_qos*/, - CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosEventChannelAdmin::ProxyPullSupplier_ptr -TAO_NS_ConsumerAdmin::obtain_pull_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosEventChannelAdmin::ProxyPullSupplier::_nil ()); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h deleted file mode 100644 index 4c4244c5a4f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h +++ /dev/null @@ -1,217 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ConsumerAdmin.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_CONSUMERADMIN_H -#define TAO_NS_CONSUMERADMIN_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "Admin.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_NS_ConsumerAdmin - * - * @brief Implementation of CosNotifyChannelAdmin::ConsumerAdmin - * - */ -class TAO_Notify_Export TAO_NS_ConsumerAdmin : public POA_CosNotifyChannelAdmin::ConsumerAdmin - , public virtual TAO_NS_Admin -{ -public: - /// Constuctor - TAO_NS_ConsumerAdmin (void); - - /// Destructor - ~TAO_NS_ConsumerAdmin (); - - /// Init - void init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL); - - /// ServantBase refcount methods. - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Release this object. - virtual void release (void); - -protected: - - /// = CosNotifyChannelAdmin::ConsumerAdmin methods - virtual CosNotifyChannelAdmin::AdminID MyID (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (ACE_ENV_SINGLE_ARG_DECL - - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyFilter::MappingFilter_ptr priority_filter (ACE_ENV_SINGLE_ARG_DECL - - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void priority_filter (CosNotifyFilter::MappingFilter_ptr priority_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyFilter::MappingFilter_ptr lifetime_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void lifetime_filter (CosNotifyFilter::MappingFilter_ptr lifetime_filter - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::ProxyNotFound - )); - - virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr - obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )); - - virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr - obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotification::QoSProperties * get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos (const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )); - - virtual void validate_qos (const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )); - - virtual void subscription_change (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyComm::InvalidEventType - )); - - virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )); - - virtual ::CosNotifyFilter::Filter_ptr get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )); - - virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__ACE_INLINE__) -#include "ConsumerAdmin.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_CONSUMERADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.inl b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h b/TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h deleted file mode 100644 index ca248f949a4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Consumer_Map.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_CONSUMER_MAP_H -#define TAO_NS_CONSUMER_MAP_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -#include "Event_Map_T.h" -#include "ProxySupplier.h" - -/** - * @class TAO_NS_Consumer_Map - * - * @brief The Event Map for Consumers. - * - */ - -typedef TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> TAO_NS_Consumer_Map; - -#include "ace/post.h" -#endif /* TAO_NS_CONSUMER_MAP_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container.cpp b/TAO/orbsvcs/orbsvcs/Notify/Container.cpp deleted file mode 100644 index 62d20c6490a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Container.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// $Id$ - -#include "Container.h" -#include "ThreadPool_Task.h" -#include "POA_Helper.h" - -#if ! defined (__ACE_INLINE__) -#include "Container.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Container, "$Id$") - -TAO_NS_Container::TAO_NS_Container (void) - :object_poa_ (0), proxy_poa_ (0), delete_object_poa_ (0), delete_proxy_poa_ (0) -{ -} - -TAO_NS_Container::~TAO_NS_Container () -{ -} - -void -TAO_NS_Container::init (TAO_NS_POA_Helper* poa, TAO_NS_Worker_Task* worker_task, TAO_NS_POA_Helper* object_poa, TAO_NS_POA_Helper* proxy_poa ACE_ENV_ARG_DECL) -{ - TAO_NS_Object::init (poa, worker_task ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - object_poa_ = object_poa; - proxy_poa_ = proxy_poa; -} - -void -TAO_NS_Container::cleanup (ACE_ENV_SINGLE_ARG_DECL) -{ - if (delete_object_poa_ == 1) - { - object_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - delete object_poa_; - } - - if (delete_proxy_poa_ == 1) - { - proxy_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - delete proxy_poa_; - } -} - -void -TAO_NS_Container::object_poa (TAO_NS_POA_Helper* object_poa) -{ - object_poa_ = object_poa; - delete_object_poa_ = 1; -} - -TAO_NS_POA_Helper* -TAO_NS_Container::object_poa (void) -{ - return this->object_poa_; -} - -void -TAO_NS_Container::proxy_poa (TAO_NS_POA_Helper* proxy_poa) -{ - proxy_poa_ = proxy_poa; - delete_proxy_poa_ = 1; -} - -TAO_NS_POA_Helper* -TAO_NS_Container::proxy_poa (void) -{ - return this->proxy_poa_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container.h b/TAO/orbsvcs/orbsvcs/Notify/Container.h deleted file mode 100644 index ff9f133a027..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Container.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Container.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_CONTAINER_H -#define TAO_NS_CONTAINER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/NotifyExtC.h" -#include "Object.h" - -class TAO_NS_POA_Helper; -class TAO_NS_QoSAdmin; - -/** - * @class TAO_NS_Container - * - * @brief A Base class for implementing the Notify participants that behave as Obejct Containers. - * - */ -class TAO_Notify_Export TAO_NS_Container : public virtual TAO_NS_Object -{ -public: - /// Constuctor - TAO_NS_Container (void); - - /// Destructor - virtual ~TAO_NS_Container (); - - /// Init this object. - void init (TAO_NS_POA_Helper* poa, TAO_NS_Worker_Task* worker_task, TAO_NS_POA_Helper* object_poa, TAO_NS_POA_Helper* proxy_poa ACE_ENV_ARG_DECL); - - /// Cleanup - void cleanup (ACE_ENV_SINGLE_ARG_DECL); - - /// Accessor for the object_poa_ - /// Setting the object_poa_ gives ownership to this class. - void object_poa (TAO_NS_POA_Helper* object_poa); - TAO_NS_POA_Helper* object_poa (void); - - /// Accessor for the proxy_poa_ - /// Setting the proxy_poa_ gives ownership to this class. - void proxy_poa (TAO_NS_POA_Helper* proxy_poa); - TAO_NS_POA_Helper* proxy_poa (void); - -protected: - /// = Protected Methods - - /// = Data Members - - /// The POA in which the object's are activated. - TAO_NS_POA_Helper* object_poa_; - - /// The POA in which the proxys are activated. - TAO_NS_POA_Helper* proxy_poa_; - - /// Flag that indicates if we own <object_poa_> - int delete_object_poa_; - - /// Flag that indicates if we own <proxy_poa_> - int delete_proxy_poa_; -}; - -#if defined (__ACE_INLINE__) -#include "Container.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_CONTAINER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container.inl b/TAO/orbsvcs/orbsvcs/Notify/Container.inl deleted file mode 100644 index 311caa51b09..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Container.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Container.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp deleted file mode 100644 index ad43477e2da..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_CONTAINER_T_CPP -#define TAO_NS_CONTAINER_T_CPP - -#include "Container_T.h" - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "orbsvcs/ESF/ESF_Shutdown_Proxy.h" -#include "Properties.h" -#include "Factory.h" -#include "POA_Helper.h" - -#if ! defined (__ACE_INLINE__) -#include "Container_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Container_T, "$Id$") - -template<class TYPE> -TAO_NS_Container_T<TYPE>::TAO_NS_Container_T (void) - : collection_ (0) -{ -} - -template<class TYPE> -TAO_NS_Container_T<TYPE>::~TAO_NS_Container_T () -{ - delete collection_; -} - -template <class TYPE> void -TAO_NS_Container_T<TYPE>::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_ESF_Shutdown_Proxy<TYPE> shutdown_worker; - - this->collection_->for_each (&shutdown_worker ACE_ENV_ARG_PARAMETER); -} - -template<class TYPE> void -TAO_NS_Container_T<TYPE>::insert (TYPE* type ACE_ENV_ARG_DECL) -{ - this->collection_->connected (type ACE_ENV_ARG_PARAMETER); -} - -template<class TYPE> void -TAO_NS_Container_T<TYPE>::remove (TYPE* type ACE_ENV_ARG_DECL) -{ - this->collection_->disconnected (type ACE_ENV_ARG_PARAMETER); -} - -template<class TYPE> void -TAO_NS_Container_T<TYPE>::init (ACE_ENV_SINGLE_ARG_DECL) -{ - // get the factory - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - // Init variables - factory->create (this->collection_ ACE_ENV_ARG_PARAMETER); -} - -#endif /* TAO_NS_CONTAINER_T_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container_T.h b/TAO/orbsvcs/orbsvcs/Notify/Container_T.h deleted file mode 100644 index 003bcf55a7d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Container_T.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Container_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_CONTAINER_T_H -#define TAO_NS_CONTAINER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" - -/** - * @class TAO_NS_Container_T - * - * @brief A template class that manages a collection. - * TYPE = type of collection - * - */ -template <class TYPE> -class TAO_Notify_Export TAO_NS_Container_T -{ - typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION; - public: - - /// Constuctor - TAO_NS_Container_T (void); - - /// Destructor - virtual ~TAO_NS_Container_T (); - - /// Init this object. - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Insert object to this container. - virtual void insert (TYPE* type ACE_ENV_ARG_DECL); - - /// Remove type from container_ - virtual void remove (TYPE* type ACE_ENV_ARG_DECL); - - /// Shutdown - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Collection - COLLECTION* collection (void); - -protected: - /// The collection data structure that we add objects to. - COLLECTION* collection_; -}; - -#if defined (__ACE_INLINE__) -#include "Container_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Container_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Container_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_CONTAINER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl deleted file mode 100644 index 3bb19f4afb4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -template<class TYPE> ACE_INLINE TAO_NS_Container_T<TYPE>::COLLECTION* -TAO_NS_Container_T<TYPE>:: collection (void) -{ - return this->collection_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp deleted file mode 100644 index 7714f21d186..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -#include "CosNotify_Initializer.h" - -ACE_RCSID(Notify, TAO_NS_CosNotify_Initializer, "$id$") - -#include "CosNotify_Service.h" - -TAO_NS_CosNotify_Initializer::TAO_NS_CosNotify_Initializer (void) -{ - // ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_NS_CosNotify_Service); - ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_Notify_Default_EMO_Factory_OLD); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.h b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.h deleted file mode 100644 index a2e73f4898a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file CosNotify_Initializer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_COSNOTIFY_INITIALIZER_H -#define TAO_NS_COSNOTIFY_INITIALIZER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_NS_CosNotify_Initializer - * - * @brief Helper to load the Cos Notification service into the service conf. for static links. - * - */ -class TAO_Notify_Export TAO_NS_CosNotify_Initializer -{ -public: - /// Constuctor - TAO_NS_CosNotify_Initializer (void); -}; - -static TAO_NS_CosNotify_Initializer TAO_NS_CosNotify_initializer; - -#include "ace/post.h" -#endif /* TAO_NS_COSNOTIFY_INITIALIZER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp deleted file mode 100644 index 722802d9273..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp +++ /dev/null @@ -1,327 +0,0 @@ -// $Id$ - -#include "CosNotify_Service.h" -#include "Properties.h" -#include "Default_Factory.h" -#include "Builder.h" -#include "ace/Sched_Params.h" -#include "ace/Arg_Shifter.h" -#include "ace/Dynamic_Service.h" -#include "tao/ORB_Core.h" -#include "orbsvcs/NotifyExtC.h" -#include "tao/debug.h" - -ACE_RCSID(RT_Notify, TAO_NS_CosNotify_Service, "$Id$") - -TAO_NS_CosNotify_Service::TAO_NS_CosNotify_Service (void) - : factory_ (0) - , builder_ (0) -{ -} - -TAO_NS_CosNotify_Service::~TAO_NS_CosNotify_Service () -{ - delete this->factory_; - delete this->builder_; -} - -int -TAO_NS_CosNotify_Service::init (int argc, char *argv[]) -{ - ACE_Arg_Shifter arg_shifter (argc, argv); - - const ACE_TCHAR *current_arg = 0; - - // Default to an all reactive system. - int ec_threads = 0; - int dispatching_threads = 0; - int listener_threads = 0; - int source_threads = 0; - int lookup_threads = 0; - - int task_per_proxy = 0; - - TAO_NS_Properties *properties = TAO_NS_PROPERTIES::instance(); - - while (arg_shifter.is_anything_left ()) - { - if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-MTDispatching")) == 0) - { - // If Dispatching Threads are initalized, the option is implicit. - arg_shifter.consume_arg (); - } - else if ((current_arg = arg_shifter.get_the_parameter (ACE_LIB_TEXT("-DispatchingThreads")))) - { - dispatching_threads = ACE_OS::atoi (current_arg); - arg_shifter.consume_arg (); - } - else if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-MTSourceEval")) == 0) - { - // If Source Threads are initalized, the option is implicit. - arg_shifter.consume_arg (); - } - else if ((current_arg = arg_shifter.get_the_parameter (ACE_LIB_TEXT("-SourceThreads")))) - { - source_threads = ACE_OS::atoi (current_arg); - arg_shifter.consume_arg (); - } - else if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-MTLookup")) == 0) - { - // If Source Threads are initalized, the option is implicit. - arg_shifter.consume_arg (); - } - else if ((current_arg = arg_shifter.get_the_parameter (ACE_LIB_TEXT("-LookupThreads")))) - { - lookup_threads = ACE_OS::atoi (current_arg); - arg_shifter.consume_arg (); - } - else if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-MTListenerEval")) == 0) - { - // If Source Threads are initalized, the option is implicit. - arg_shifter.consume_arg (); - } - else if ((current_arg = arg_shifter.get_the_parameter (ACE_LIB_TEXT("-ListenerThreads")))) - { - listener_threads = ACE_OS::atoi (current_arg); - arg_shifter.consume_arg (); - } - else if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-AsynchUpdates")) == 0) - { - arg_shifter.consume_arg (); - - properties->asynch_updates (1); - } - else if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-AllocateTaskperProxy")) == 0) - { - task_per_proxy = 1; - arg_shifter.consume_arg (); - } - } - - // Init the EC QoS - { - CosNotification::QoSProperties qos; - this->set_threads (qos, ec_threads); - properties->default_event_channel_qos_properties (qos); - } - - if (task_per_proxy == 0) - { - // Set the per ConsumerAdmin QoS - { - CosNotification::QoSProperties qos; - this->set_threads (qos, dispatching_threads + listener_threads); - properties->default_consumer_admin_qos_properties (qos); - } - - // Set the per SupplierAdmin QoS - { - CosNotification::QoSProperties qos; - this->set_threads (qos, lookup_threads + source_threads); - properties->default_supplier_admin_qos_properties (qos); - } - } - else - { - // Set the per ProxyConsumer QoS - { - CosNotification::QoSProperties qos; - this->set_threads (qos, dispatching_threads + listener_threads); - properties->default_proxy_consumer_qos_properties (qos); - } - - // Set the per ProxySupplier QoS - { - CosNotification::QoSProperties qos; - this->set_threads (qos, source_threads); // lookup thread per proxy doesn't make sense. - properties->default_proxy_supplier_qos_properties (qos); - } - } - - return 0; -} - -void -TAO_NS_CosNotify_Service::set_threads (CosNotification::QoSProperties &qos, int threads) -{ - NotifyExt::ThreadPoolParams tp_params = - {0, (unsigned)threads, 0, 0, 0, 0, 0 }; - - qos.length (1); - qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool); - qos[0].value <<= tp_params; -} - -int -TAO_NS_CosNotify_Service::fini (void) -{ - return 0; -} - -void -TAO_NS_CosNotify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - ACE_DEBUG ((LM_DEBUG, "Loading the Cos Notification Service...\n")); - - this->init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_CosNotify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - /// first, init the main thread. - //this->init_main_thread (orb ACE_ENV_ARG_PARAMETER); - //ACE_CHECK; - - // Obtain the Root POA - CORBA::Object_var object = - orb->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (object.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to resolve the RootPOA.\n")); - - PortableServer::POA_var default_poa = PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - /// Set the properties - TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance(); - - properties->orb (orb); - properties->default_poa (default_poa.in ()); - properties->sched_policy (orb->orb_core ()->orb_params ()->sched_policy ()); - properties->scope_policy (orb->orb_core ()->orb_params ()->scope_policy ()); - - // Init the factory - this->init_factory (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->init_builder (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_CosNotify_Service::init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL_NOT_USED) -{ - ACE_Sched_Params::Policy sched_policy; - long thr_sched_policy = orb->orb_core ()->orb_params ()->sched_policy (); - - //long thr_scope_policy = orb->orb_core ()->orb_params ()->scope_policy (); - - if (thr_sched_policy == THR_SCHED_FIFO) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Sched policy = THR_SCHED_FIFO\n")); - - sched_policy = ACE_SCHED_FIFO; - } - else if (thr_sched_policy == THR_SCHED_RR) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Sched policy = THR_SCHED_RR\n")); - - sched_policy = ACE_SCHED_RR; - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Sched policy = THR_SCHED_OTHER\n")); - - sched_policy = ACE_SCHED_OTHER; - } - - /// Check sched. - int min_priority = ACE_Sched_Params::priority_min (sched_policy); - int max_priority = ACE_Sched_Params::priority_max (sched_policy); - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "max_priority = %d, min_priority = %d\n", - max_priority, min_priority)); - - if (max_priority == min_priority) - { - ACE_DEBUG ((LM_DEBUG,"Detected max_priority == min_priority\n")); - } - } - - // Set the main thread to min priority... - int priority = min_priority; - - if (ACE_OS::sched_params (ACE_Sched_Params (sched_policy , - priority, - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - { - ACE_DEBUG ((LM_DEBUG, - "(%P|%t): user is not superuser, " - "test runs in time-shared class\n")); - } - else - ACE_ERROR ((LM_ERROR, - "(%P|%t): sched_params failed\n")); - } -} - -void -TAO_NS_CosNotify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - this->factory_ = ACE_Dynamic_Service<TAO_NS_Factory>::instance ("TAO_NS_Factory"); - - if (this->factory_ == 0) - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_Default_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_CosNotify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_NS_CosNotify_Service::create (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) -{ - return this->builder_->build_event_channel_factory (poa ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_CosNotify_Service::remove (TAO_NS_EventChannelFactory* /*ecf*/ ACE_ENV_ARG_DECL_NOT_USED) -{ - // NOP. -} - -/*********************************************************************************************************************/ - -ACE_STATIC_SVC_DEFINE (TAO_Notify_Default_EMO_Factory_OLD, - ACE_TEXT (TAO_NOTIFY_DEF_EMO_FACTORY_NAME), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_NS_CosNotify_Service), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) - -/*********************************************************************************************************************/ -/* -ACE_STATIC_SVC_DEFINE (TAO_NS_CosNotify_Service, - ACE_TEXT (TAO_NS_COS_NOTIFICATION_SERVICE_NAME), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_NS_CosNotify_Service), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) - -*/ -ACE_FACTORY_DEFINE (TAO_Notify, TAO_NS_CosNotify_Service) - -/*********************************************************************************************************************/ diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp~ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp~ deleted file mode 100644 index e0b04780772..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp~ +++ /dev/null @@ -1,86 +0,0 @@ -// $Id$ - -#include "CosNotify_Service.h" -#include "tao/ORB_Core.h" -#include "Builder.h" -#include "Properties.h" -#include "Factory.h" - -ACE_RCSID(RT_Notify, TAO_NS_CosNotify_Service, "$Id$") - -TAO_NS_CosNotify_Service::TAO_NS_CosNotify_Service (void) -{ -} - -TAO_NS_CosNotify_Service::~TAO_NS_CosNotify_Service () -{ - delete factory_; - delete builder_; -} - -void -TAO_NS_CosNotify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - this->init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->init_factory (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->init_builder (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_CosNotify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - // Obtain the Root POA - CORBA::Object_var object = - orb->resolve_initial_references("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (object.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to resolve the RootPOA.\n")); - - PortableServer::POA_var default_poa = PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - /// Set the properties - TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance(); - - properties->default_poa (default_poa.in ()); - properties->sched_policy (orb->orb_core ()->orb_params ()->sched_policy ()); - properties->scope_policy (orb->orb_core ()->orb_params ()->scope_policy ()); -} - -void -TAO_NS_CosNotify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_CosNotify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_NS_CosNotify_Service::create (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) -{ - return this->builder_->build_event_channel_factory (poa ACE_ENV_ARG_PARAMETER); -} - -ACE_FACTORY_DEFINE (TAO_Notify, TAO_NS_CosNotify_Service) diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.h b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.h deleted file mode 100644 index fd29b69d2a8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.h +++ /dev/null @@ -1,90 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file CosNotify_Service.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_COSNOTIFY_SERVICE_H -#define TAO_NS_COSNOTIFY_SERVICE_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Service.h" - -class TAO_NS_Factory; -class TAO_NS_Builder; -class TAO_NS_Properties; -class TAO_NS_EventChannelFactory; - -/** - * @class TAO_NS_CosNotify_Service - * - * @brief A service object for creating the Notify Service Factory. - * - */ -class TAO_Notify_Export TAO_NS_CosNotify_Service : public TAO_NS_Service -{ -public: - /// Constuctor - TAO_NS_CosNotify_Service (void); - - /// Destructor - virtual ~TAO_NS_CosNotify_Service (); - - /// = Service_Object virtual method overloads. - virtual int init (int argc, char *argv[]); - virtual int fini (void); - - /// Init - virtual void init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Create the Channel Factory. - virtual CosNotifyChannelAdmin::EventChannelFactory_ptr create (PortableServer::POA_ptr default_POA ACE_ENV_ARG_DECL); - - /// Called by the factory when it is destroyed. - virtual void remove (TAO_NS_EventChannelFactory* ecf ACE_ENV_ARG_DECL); - -protected: - /// Init the data members - virtual void init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Create the Factory for Notify objects. - virtual void init_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// Create the Builder for Notify objects. - virtual void init_builder (ACE_ENV_SINGLE_ARG_DECL); - - /// Apply ORB Scheduling policy to main thread and set its priority to the lowest available. - void init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Set thread options on <qos>. - void set_threads (CosNotification::QoSProperties &qos, int threads); - - /// Service component for object factory operations. - TAO_NS_Factory* factory_; - - /// Service component for building NS participants. - TAO_NS_Builder* builder_; -}; - -//ACE_STATIC_SVC_DECLARE (TAO_NS_CosNotify_Service) -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_CosNotify_Service) - -ACE_STATIC_SVC_DECLARE (TAO_Notify_Default_EMO_Factory_OLD) - -#if defined (__ACE_INLINE__) -#include "CosNotify_Service.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_COSNOTIFY_SERVICE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl~ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl~ deleted file mode 100644 index 054e027e43f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl~ +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "CosNotify_Service.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.cpp deleted file mode 100644 index e7d26a9d90a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.cpp +++ /dev/null @@ -1,395 +0,0 @@ -// $Id$ - -#include "Default_Factory.h" - -#if ! defined (__ACE_INLINE__) -#include "Default_Factory.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RN_Notify, TAO_NS_Default_Factory, "$Id$") - -#include "orbsvcs/ESF/ESF_Proxy_List.h" -#include "orbsvcs/ESF/ESF_Copy_On_Write.h" - -#include "EventChannelFactory.h" -#include "EventChannel.h" -#include "Admin.h" -#include "Proxy.h" -#include "SupplierAdmin.h" -#include "ConsumerAdmin.h" -#include "Structured/StructuredProxyPushConsumer.h" -#include "Structured/StructuredProxyPushSupplier.h" -#include "Any/ProxyPushConsumer.h" -#include "Any/ProxyPushSupplier.h" -#include "Any/CosEC_ProxyPushConsumer.h" -#include "Any/CosEC_ProxyPushSupplier.h" -#include "Sequence/SequenceProxyPushConsumer.h" -#include "Sequence/SequenceProxyPushSupplier.h" -#include "Supplier.h" - -template <class PROXY> -class COW_Collection_Default_Factory -{ -public: - typedef TAO_ESF_Proxy_List<PROXY>::Iterator PROXY_ITER; - typedef TAO_ESF_Copy_On_Write<PROXY, TAO_ESF_Proxy_List<PROXY>,PROXY_ITER, ACE_SYNCH> COLLECTION; - typedef TAO_ESF_Proxy_Collection<PROXY> BASE_COLLECTION; - - void create (BASE_COLLECTION* &collection ACE_ENV_ARG_DECL) - { - ACE_NEW_THROW_EX (collection, - COLLECTION (), - CORBA::INTERNAL ()); - } -}; - -TAO_NS_Default_Factory::TAO_NS_Default_Factory (void) -{ -} - -TAO_NS_Default_Factory::~TAO_NS_Default_Factory () -{ -} - -void -TAO_NS_Default_Factory::create (TAO_NS_ProxySupplier_Collection* &collection ACE_ENV_ARG_DECL) -{ - COW_Collection_Default_Factory<TAO_NS_ProxySupplier> f; - f.create (collection ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_ProxyConsumer_Collection* &collection ACE_ENV_ARG_DECL) -{ - COW_Collection_Default_Factory<TAO_NS_ProxyConsumer> f; - f.create (collection ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_EventChannel_Collection* &collection ACE_ENV_ARG_DECL) -{ - COW_Collection_Default_Factory<TAO_NS_EventChannel> f; - f.create (collection ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_ConsumerAdmin_Collection* &collection ACE_ENV_ARG_DECL) -{ - COW_Collection_Default_Factory<TAO_NS_ConsumerAdmin> f; - f.create (collection ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_SupplierAdmin_Collection* &collection ACE_ENV_ARG_DECL) -{ - COW_Collection_Default_Factory<TAO_NS_SupplierAdmin> f; - f.create (collection ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_Proxy_Collection* &collection ACE_ENV_ARG_DECL) -{ - COW_Collection_Default_Factory<TAO_NS_Proxy> f; - f.create (collection ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_EventChannelFactory*& factory ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (factory, - TAO_NS_EventChannelFactory (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (channel, - TAO_NS_EventChannel (), - CORBA::NO_MEMORY ()); -} - - -void -TAO_NS_Default_Factory::create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (admin, - TAO_NS_SupplierAdmin (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (admin, - TAO_NS_ConsumerAdmin (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_StructuredProxyPushConsumer (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_StructuredProxyPushSupplier (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_ProxyPushConsumer (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_ProxyPushSupplier (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_CosEC_ProxyPushConsumer (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_CosEC_ProxyPushSupplier (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_SequenceProxyPushConsumer (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Default_Factory::create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_SequenceProxyPushSupplier (), - CORBA::NO_MEMORY ()); -} - -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_Default_Factory) - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_ProxySupplier_T <POA_Event_Forwarder::StructuredProxyPushSupplier>; -template class TAO_NS_Proxy_T <POA_Event_Forwarder::StructuredProxyPushSupplier>; -template class TAO_NS_ProxySupplier_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>; -template class TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>; -template class TAO_NS_ProxySupplier_T <POA_Event_Forwarder::ProxyPushSupplier>; -template class TAO_NS_Proxy_T <POA_Event_Forwarder::ProxyPushSupplier>; -template class TAO_NS_ProxySupplier_T <POA_CosEventChannelAdmin::ProxyPushSupplier>; -template class TAO_NS_Proxy_T <POA_CosEventChannelAdmin::ProxyPushSupplier>; - -template class TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>; -template class TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>; -template class TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>; -template class TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>; -template class TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::ProxyPushConsumer>; -template class TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::ProxyPushConsumer>; -template class TAO_NS_ProxyConsumer_T <POA_CosEventChannelAdmin::ProxyPushConsumer>; -template class TAO_NS_Proxy_T <POA_CosEventChannelAdmin::ProxyPushConsumer>; - -template class TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer>; -template class TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier>; -template class TAO_ESF_Proxy_Collection<TAO_NS_EventChannel>; -template class TAO_ESF_Proxy_Collection<TAO_NS_Admin>; -template class TAO_ESF_Proxy_Collection<TAO_NS_Proxy>; -template class TAO_ESF_Proxy_Collection<TAO_NS_Consumer>; -template class TAO_ESF_Proxy_Collection<TAO_NS_Supplier>; -template class TAO_ESF_Proxy_Collection<TAO_NS_Peer>; - -template class ACE_Unbounded_Set<int>; -//template class ACE_Unbounded_Set<TAO_NS_EventType>; -template class ACE_Unbounded_Set<TAO_NS_ProxySupplier *>; - -template class ACE_Unbounded_Set_Const_Iterator<int>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>; - -template class TAO_ESF_Copy_On_Write<TAO_NS_Proxy, TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_Peer, TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_Consumer, TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_Supplier, TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_EventChannel, TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_ProxyConsumer, TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_ProxySupplier, TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write<TAO_NS_Admin, TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_SYNCH>; - -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>,ACE_Unbounded_Set_Iterator<TAO_NS_Admin*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>,ACE_Unbounded_Set_Iterator<TAO_NS_Consumer*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>,ACE_Unbounded_Set_Iterator<TAO_NS_Supplier*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>,ACE_Unbounded_Set_Iterator<TAO_NS_Peer*>,ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>,ACE_Unbounded_Set_Iterator<TAO_NS_Proxy*>,ACE_SYNCH>; - - - -template class TAO_ESF_Proxy_List<TAO_NS_Admin>; -template class TAO_ESF_Proxy_List<TAO_NS_Consumer>; -template class TAO_ESF_Proxy_List<TAO_NS_Supplier>; -template class TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>; -template class TAO_ESF_Proxy_List<TAO_NS_Proxy>; -template class TAO_ESF_Proxy_List<TAO_NS_EventChannel>; -template class TAO_ESF_Proxy_List<TAO_NS_Peer>; -template class TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>; - -template class ACE_Unbounded_Set<TAO_NS_Peer *>; -template class ACE_Unbounded_Set<TAO_NS_Supplier *>; -template class ACE_Unbounded_Set<TAO_NS_Consumer *>; -template class ACE_Unbounded_Set<TAO_NS_ProxyConsumer *>; -template class ACE_Unbounded_Set<TAO_NS_Admin *>; -template class ACE_Unbounded_Set<TAO_NS_EventChannel *>; -template class ACE_Unbounded_Set<TAO_NS_Proxy *>; - -template class ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>; -template class ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>; -template class ACE_Unbounded_Set_Iterator<int>; - -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH>; -template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_SYNCH>; - -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *> >; -template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *> >; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_ProxySupplier_T <POA_Event_Forwarder::StructuredProxyPushSupplier> -#pragma instantiate TAO_NS_Proxy_T <POA_Event_Forwarder::StructuredProxyPushSupplier> -#pragma instantiate TAO_NS_ProxySupplier_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier> -#pragma instantiate TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier> -#pragma instantiate TAO_NS_ProxySupplier_T <POA_Event_Forwarder::ProxyPushSupplier> -#pragma instantiate TAO_NS_Proxy_T <POA_Event_Forwarder::ProxyPushSupplier> -#pragma instantiate TAO_NS_ProxySupplier_T <POA_CosEventChannelAdmin::ProxyPushSupplier> -#pragma instantiate TAO_NS_Proxy_T <POA_CosEventChannelAdmin::ProxyPushSupplier> - -#pragma instantiate TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer> -#pragma instantiate TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer> -#pragma instantiate TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> -#pragma instantiate TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> -#pragma instantiate TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::ProxyPushConsumer> -#pragma instantiate TAO_NS_Proxy_T <POA_CosNotifyChannelAdmin::ProxyPushConsumer> -#pragma instantiate TAO_NS_ProxyConsumer_T <POA_CosEventChannelAdmin::ProxyPushConsumer> -#pragma instantiate TAO_NS_Proxy_T <POA_CosEventChannelAdmin::ProxyPushConsumer> - -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_EventChannel> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Admin> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Proxy> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Consumer> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Supplier> -#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Peer> - -#pragma instantiate ACE_Unbounded_Set<int> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_EventType> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_ProxySupplier *> - -#pragma instantiate ACE_Unbounded_Set_Const_Iterator<int> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *> - -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_Proxy, TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_Peer, TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_Consumer, TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_Supplier, TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_EventChannel, TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_ProxyConsumer, TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_ProxySupplier, TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_Admin, TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_SYNCH> - -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier*>,ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel*>,ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>,ACE_Unbounded_Set_Iterator<TAO_NS_Admin*>,ACE_SYNCH> -#pragma instantitae TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer*>,ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>,ACE_Unbounded_Set_Iterator<TAO_NS_Consumer*>,ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>,ACE_Unbounded_Set_Iterator<TAO_NS_Supplier*>,ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>,ACE_Unbounded_Set_Iterator<TAO_NS_Peer*>,ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>,ACE_Unbounded_Set_Iterator<TAO_NS_Proxy*>,ACE_SYNCH> - - - -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Admin> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Consumer> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Supplier> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Proxy> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_EventChannel> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Peer> -#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_ProxySupplier> - -#pragma instantiate ACE_Unbounded_Set<TAO_NS_Peer *> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_Supplier *> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_Consumer *> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_ProxyConsumer *> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_Admin *> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_EventChannel *> -#pragma instantiate ACE_Unbounded_Set<TAO_NS_Proxy *> - -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Peer *> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Admin *> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *> -#pragma instantiate ACE_Unbounded_Set_Iterator<int> - -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH> -#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_SYNCH> - -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *> > -#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *> > - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h deleted file mode 100644 index 61f7086bf5e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h +++ /dev/null @@ -1,101 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Default_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_DEFAULT_FACTORY_H -#define TAO_NS_DEFAULT_FACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Factory.h" - -/** - * @class TAO_NS_Default_Factory - * - * @brief Default_Factory interface for creating Notify Objects. - * - */ -class TAO_Notify_Export TAO_NS_Default_Factory : public TAO_NS_Factory -{ -public: - /// Constructor - TAO_NS_Default_Factory (void); - - /// Destructor - virtual ~TAO_NS_Default_Factory (); - - /// Create ProxySupplier Collection - virtual void create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_ARG_DECL); - - /// Create ProxyConsumer Collection - virtual void create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL); - - /// Create EventChannel Collection - virtual void create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_ARG_DECL); - - /// Create ConsumerAdmin Collection - virtual void create (TAO_NS_ConsumerAdmin_Collection*& collection ACE_ENV_ARG_DECL); - - /// Create SupplierAdmin Collection - virtual void create (TAO_NS_SupplierAdmin_Collection*& collection ACE_ENV_ARG_DECL); - - /// Create Proxy Collection - virtual void create (TAO_NS_Proxy_Collection*& collection ACE_ENV_ARG_DECL); - - /// Create EventChannelDefault_Factory - virtual void create (TAO_NS_EventChannelFactory*& channel_factory ACE_ENV_ARG_DECL); - - /// Create EventChannel - virtual void create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL); - - /// Create SupplierAdmin - virtual void create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL); - - /// Create ConsumerAdmin - virtual void create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL); - - /// Create ProxyPushConsumer - virtual void create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL); - - /// Create ProxyPushSupplier - virtual void create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL); - - /// Create CosEC_ProxyPushConsumer - virtual void create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL); - - /// Create CosEC_ProxyPushSupplier - virtual void create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL); - - /// Create StructuredProxyPushConsumer - virtual void create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL); - - /// Create StructuredProxyPushSupplier - virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL); - - /// Create SequenceProxyPushConsumer - virtual void create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL); - - /// Create SequenceProxyPushSupplier - virtual void create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL); -}; - -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_Default_Factory) - -#if defined (__ACE_INLINE__) -#include "Default_Factory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_DEFAULT_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h b/TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h deleted file mode 100644 index 8be318d3227..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Destroy_Callback.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_DESTROY_CALLBACK_H -#define TAO_NS_DESTROY_CALLBACK_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_NS_Destroy_Callback - * - * @brief Interface to be implemented by users of TAO_NS_Refcountable - * - */ -class TAO_Notify_Export TAO_NS_Destroy_Callback -{ -public: - - /// Called when Refcountable count drops to 0 - virtual void release (void) = 0; -}; - - -#include "ace/post.h" -#endif /* TAO_NS_DESTROY_CALLBACK_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.cpp deleted file mode 100644 index 8d3dc2e3ff4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// $Id$ - -#include "Dispatch_Observer_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Dispatch_Observer_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Dispatch_Observer_T, "$id$") - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Peer.h" -#include "Proxy.h" -#include "Properties.h" -#include "Factory.h" - -template <class PEER> -TAO_NS_Dispatch_Observer_T<PEER>::TAO_NS_Dispatch_Observer_T (void) -: max_retry_attempts_ (1) -{ -} - -template <class PEER> -TAO_NS_Dispatch_Observer_T<PEER>::~TAO_NS_Dispatch_Observer_T () -{ - delete this->peer_collection_; -} - -template <class PEER> void -TAO_NS_Dispatch_Observer_T<PEER>::init (ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - factory->create (this->peer_collection_ ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -template <class PEER> void -TAO_NS_Dispatch_Observer_T<PEER>::enqueue (PEER* peer ACE_ENV_ARG_DECL) -{ - this->peer_collection_->connected (peer ACE_ENV_ARG_DECL); - ACE_CHECK; -} - -template <class PEER> void -TAO_NS_Dispatch_Observer_T<PEER>::dispatch_failure (PEER* peer, int retry_count ACE_ENV_ARG_DECL) -{ - if (retry_count > this->max_retry_attempts_) - { - this->peer_collection_->disconnected (peer ACE_ENV_ARG_DECL); - ACE_CHECK; - - peer->proxy ()->destroy (ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - else if (retry_count == 1) // failed for the 1st time. - { - this->peer_collection_->connected (peer ACE_ENV_ARG_DECL); - ACE_CHECK; - } -} - -template <class PEER> void -TAO_NS_Dispatch_Observer_T<PEER>::dispatch_success (PEER* peer ACE_ENV_ARG_DECL) -{ - this->peer_collection_->disconnected (peer ACE_ENV_ARG_DECL); - ACE_CHECK; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.h b/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.h deleted file mode 100644 index 74ef4adadb3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Dispatch_Observer_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_DISPATCH_OBSERVER_T_H -#define TAO_NS_DISPATCH_OBSERVER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "types.h" -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" - -/** - * @class TAO_NS_Dispatch_Observer_T - * - * @brief An observer class that is notified of the success or failure of event/update diapatches. - * If a dispatch fails, the PEER is added to a pending list. This list is obtained by the Pending Worker to retry delivery of - * Events/Updates. When the max_retries are reached, the observer destroys the proxy. - * - */ -template <class PEER> -class TAO_Notify_Export TAO_NS_Dispatch_Observer_T -{ -public: - typedef TAO_ESF_Proxy_Collection<PEER> PEER_COLLECTION; - - /// Constuctor - TAO_NS_Dispatch_Observer_T (void); - - /// Destructor - ~TAO_NS_Dispatch_Observer_T (); - - /// Init - void init (ACE_ENV_SINGLE_ARG_DECL); - - void max_retry_attempts (CORBA::ULong max_retry_attempts); - - /// Enqueue this peer. - void enqueue (PEER* peer); - - /// Dispatch failure notice. - void dispatch_failure (PEER* peer, int retry_count ACE_ENV_ARG_DECL); - - /// Dispatch success notice. - void dispatch_success (PEER* peer ACE_ENV_ARG_DECL); - - /// Get peer collection. - PEER_COLLECTION* peer_collection (void); - -protected: - /// Max retry attempts. - CORBA::ULong max_retry_attempts_; - - /// Pending list. - PEER_COLLECTION* peer_collection_; -}; - -#if defined (__ACE_INLINE__) -#include "Dispatch_Observer_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Dispatch_Observer_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Dispatch_Observer_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_DISPATCH_OBSERVER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.inl deleted file mode 100644 index 995a33dbfb6..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Dispatch_Observer_T.inl +++ /dev/null @@ -1,9 +0,0 @@ -// $Id$ - -#include "Dispatch_Observer_T.h" - -template <class PEER> ACE_INLINE TAO_NS_Dispatch_Observer_T<PEER>::PEER_COLLECTION* -TAO_NS_Dispatch_Observer_T<PEER>::peer_collection (void) -{ - return this->peer_collection_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp deleted file mode 100644 index 84046b5f46d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp +++ /dev/null @@ -1,488 +0,0 @@ -// $Id$ - -#include "ETCL_Filter.h" - -#if ! defined (__ACE_INLINE__) -#include "ETCL_Filter.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_ETCL_Filter, "$id$") - -#include "ace/Auto_Ptr.h" -#include "tao/debug.h" -#include "Notify_Constraint_Visitors.h" - -TAO_NS_ETCL_Filter::TAO_NS_ETCL_Filter (void) -{ -} - -TAO_NS_ETCL_Filter::~TAO_NS_ETCL_Filter () -{ - ACE_TRY_NEW_ENV - { - this->remove_all_constraints (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - if (TAO_debug_level) - ACE_DEBUG ((LM_DEBUG, "Error in Filter dtor\n")); - - // @@ eat exception. - } - ACE_ENDTRY; - - if (TAO_debug_level > 1) - ACE_DEBUG ((LM_DEBUG, "Filter Destroyed\n")); -} - -char* -TAO_NS_ETCL_Filter::constraint_grammar (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return CORBA::string_dup ("ETCL"); -} - -void -TAO_NS_ETCL_Filter::add_constraints_i (const CosNotifyFilter::ConstraintInfoSeq& constraint_info_seq - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )) -{ - for (CORBA::ULong index = 0; index < constraint_info_seq.length (); ++index) - { - TAO_NS_Constraint_Expr* notify_constr_expr; - - ACE_NEW_THROW_EX (notify_constr_expr, - TAO_NS_Constraint_Expr (), - CORBA::NO_MEMORY ()); - auto_ptr <TAO_NS_Constraint_Expr> auto_expr (notify_constr_expr); - - const CosNotifyFilter::ConstraintExp& expr = - constraint_info_seq[index].constraint_expression; - - notify_constr_expr->interpreter. - build_tree (expr.constraint_expr.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - notify_constr_expr->constr_expr = expr; - - CosNotifyFilter::ConstraintID cnstr_id = ++constraint_expr_ids_; - - if (this->constraint_expr_list_.bind (cnstr_id, notify_constr_expr) == -1) - ACE_THROW (CORBA::INTERNAL ()); - - if (TAO_debug_level > 1) - ACE_DEBUG ((LM_DEBUG, "Added constraint to filter %x\n", this, expr.constraint_expr.in ())); - - auto_expr.release (); - } -} - -CosNotifyFilter::ConstraintInfoSeq* -TAO_NS_ETCL_Filter::add_constraints (const CosNotifyFilter::ConstraintExpSeq& constraint_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - CORBA::ULong constraint_length = constraint_list.length (); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "constraint_length = %d\n", - constraint_length)); - - // Create the list that goes out. - CosNotifyFilter::ConstraintInfoSeq* infoseq_ptr; - ACE_NEW_THROW_EX (infoseq_ptr, - CosNotifyFilter::ConstraintInfoSeq (constraint_length), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - CosNotifyFilter::ConstraintInfoSeq_var infoseq (infoseq_ptr); - infoseq->length (constraint_length); - - // Populate infoseq. - for (CORBA::ULong pop_index = 0; pop_index < constraint_length; ++pop_index) - { - infoseq[pop_index].constraint_expression = - constraint_list [pop_index]; - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, - "Adding constraint %d, %s\n", - pop_index, - constraint_list [pop_index].constraint_expr.in ())); - } - } - - this->add_constraints_i (infoseq.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return infoseq._retn (); -} - -void -TAO_NS_ETCL_Filter::modify_constraints (const CosNotifyFilter::ConstraintIDSeq & del_list, - const CosNotifyFilter::ConstraintInfoSeq & modify_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint, - CosNotifyFilter::ConstraintNotFound - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - // First check if all the ids are valid. - u_int index; - - for (index = 0; index < del_list.length (); ++index) - { - if (this->constraint_expr_list_.find (del_list [index]) == -1) - { - ACE_THROW (CosNotifyFilter::ConstraintNotFound (del_list [index])); - } - } - - for (index = 0; index < modify_list.length (); ++index) - { - if (this->constraint_expr_list_.find (modify_list [index].constraint_id) == -1) - { - ACE_THROW (CosNotifyFilter::ConstraintNotFound (modify_list [index].constraint_id)); - } - } - - // Remove previous entries and save them in case we need to reinstate them. - ACE_Array<TAO_NS_Constraint_Expr*> constr_saved (modify_list.length ()); - TAO_NS_Constraint_Expr* constr_expr = 0; - - for (index = 0; index < modify_list.length (); ++index) - { - CosNotifyFilter::ConstraintID cnstr_id = - modify_list [index].constraint_id; - - if (this->constraint_expr_list_.unbind (cnstr_id, constr_expr) != -1) - { - constr_saved[index] = constr_expr; - } - } - - // Now add the new entries. - // Keep a list of ids generated in this session. - ACE_TRY - { - this->add_constraints_i (modify_list - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Restore, - for (index = 0; index < modify_list.length (); ++index) - { - CosNotifyFilter::ConstraintID cnstr_id = ++this->constraint_expr_ids_; - - if (constraint_expr_list_.bind (cnstr_id, constr_saved[index]) == -1) - ACE_THROW (CORBA::NO_RESOURCES ()); - } - - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; - - // Now go around deleting... - // for the del_list. - for (index = 0; index < del_list.length (); ++index) - { - if (this->constraint_expr_list_.unbind (del_list [index], constr_expr) != -1) - { - delete constr_expr; - } - } - - // Delete the old constraints. - for (index = 0; index < constr_saved.max_size (); ++index) - { - delete constr_saved[index]; - } -} - -CosNotifyFilter::ConstraintInfoSeq* -TAO_NS_ETCL_Filter::get_constraints (const CosNotifyFilter::ConstraintIDSeq & id_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::ConstraintNotFound)) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - // Create the list that goes out. - CosNotifyFilter::ConstraintInfoSeq *infoseq_ptr; - ACE_NEW_THROW_EX (infoseq_ptr, - CosNotifyFilter::ConstraintInfoSeq (id_list.length ()), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - CosNotifyFilter::ConstraintInfoSeq_var infoseq (infoseq_ptr); - - TAO_NS_Constraint_Expr *notify_constr_expr = 0; - - for (u_int index = 0; index < id_list.length (); ++index) - { - if (this->constraint_expr_list_.find (id_list[index], - notify_constr_expr) == -1) - ACE_THROW_RETURN (CosNotifyFilter::ConstraintNotFound (id_list[index]), - 0); - - infoseq[index].constraint_expression = - notify_constr_expr->constr_expr; - - // Get an id. - infoseq[index].constraint_id = id_list[index]; - } - - return infoseq._retn (); -} - -CosNotifyFilter::ConstraintInfoSeq * -TAO_NS_ETCL_Filter::get_all_constraints (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - size_t current_size = this->constraint_expr_list_.current_size (); - - // Create the list that goes out. - CosNotifyFilter::ConstraintInfoSeq *infoseq_ptr; - ACE_NEW_THROW_EX (infoseq_ptr, - CosNotifyFilter::ConstraintInfoSeq (current_size), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - CosNotifyFilter::ConstraintInfoSeq_var infoseq (infoseq_ptr); - - infoseq->length (current_size); - - CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_); - CONSTRAINT_EXPR_LIST::ENTRY *entry; - - for (u_int index = 0; iter.done () == 0; iter.advance (), ++index) - { - if (iter.next (entry) != 0) - { - // Why do we cast to a const object? - // We want to force the TAO_String_Manager to make a - // copy of the string. It wouldn't unless we coax it to use - // the correct assignment operator. - infoseq[index].constraint_expression = - ACE_static_cast (const CosNotifyFilter::ConstraintExp, - entry->int_id_->constr_expr); - - infoseq[index].constraint_id = entry->ext_id_; - } - } - - return infoseq._retn (); -} - -void -TAO_NS_ETCL_Filter::remove_all_constraints (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->remove_all_constraints_i (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_NS_ETCL_Filter::remove_all_constraints_i (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_); - CONSTRAINT_EXPR_LIST::ENTRY *entry; - - u_int index; - - for (index = 0; iter.done () == 0; iter.advance (), ++index) - { - if (iter.next (entry) != 0) - { - delete entry->int_id_; - } - } - - this->constraint_expr_list_.unbind_all (); -} - -void -TAO_NS_ETCL_Filter::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->remove_all_constraints_i (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - PortableServer::POA_var my_POA = _default_POA (); - - PortableServer::ObjectId_var refTemp = my_POA->servant_to_id (this); - - my_POA->deactivate_object (refTemp.in ()); -} - -CORBA::Boolean -TAO_NS_ETCL_Filter::match (const CORBA::Any & /*filterable_data */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -CORBA::Boolean -TAO_NS_ETCL_Filter::match_structured (const CosNotification::StructuredEvent & filterable_data - ACE_ENV_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData)) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - // We want to return true if at least one constraint matches. - CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_); - CONSTRAINT_EXPR_LIST::ENTRY *entry; - - TAO_NS_Constraint_Visitor visitor; - - if (visitor.bind_structured_event (filterable_data) != 0) - { - // Maybe throw some kind of exception here, or lower down, - return 0; - } - - for (; iter.done () == 0; iter.advance ()) - { - if (iter.next (entry) != 0) - { - if (entry->int_id_->interpreter.evaluate (visitor) == 1) - { - return 1; - } - } - } - - return 0; -} - -CORBA::Boolean -TAO_NS_ETCL_Filter::match_typed ( - const CosNotification::PropertySeq & /* filterable_data */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -CosNotifyFilter::CallbackID -TAO_NS_ETCL_Filter::attach_callback ( - CosNotifyComm::NotifySubscribe_ptr /* callback */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -void -TAO_NS_ETCL_Filter::detach_callback ( - CosNotifyFilter::CallbackID /* callback */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::CallbackNotFound)) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosNotifyFilter::CallbackIDSeq * -TAO_NS_ETCL_Filter::get_callbacks (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Hash_Map_Entry<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr *>; -template class ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; - -#if !defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION) -template class ACE_Equal_To<CosNotifyFilter::ConstraintID>; -#endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */ - -template class ACE_Array<TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*>; -template class ACE_Array_Base<TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*>; - -template class auto_ptr<CosNotifyFilter::ConstraintInfoSeq>; -template class ACE_Auto_Basic_Ptr<CosNotifyFilter::ConstraintInfoSeq>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Entry<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*> -#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> - -#if !defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION) -#pragma instantiate ACE_Equal_To<CosNotifyFilter::ConstraintID> -#endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */ - -#pragma instantiate ACE_Array<TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*> -#pragma instantiate ACE_Array_Base<TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*> - -#pragma instantiate auto_ptr<CosNotifyFilter::ConstraintInfoSeq> -#pragma instantiate ACE_Auto_Basic_Ptr<CosNotifyFilter::ConstraintInfoSeq> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h deleted file mode 100644 index 07448213366..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h +++ /dev/null @@ -1,175 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ETCL_Filter.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_ETCL_FILTER_H -#define TAO_NS_ETCL_FILTER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Containers_T.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Atomic_Op.h" -#include "orbsvcs/CosNotifyFilterS.h" -#include "Notify_Constraint_Interpreter.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_ETCL_Filter - * - * @brief Implementation of CosNotifyFilter::Filter servant. - * - */ -class TAO_Notify_Export TAO_NS_ETCL_Filter : public POA_CosNotifyFilter::Filter, public PortableServer::RefCountServantBase -{ -public: - /// Constuctor - TAO_NS_ETCL_Filter (void); - - /// Destructor - ~TAO_NS_ETCL_Filter (); - -protected: - virtual char * constraint_grammar (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotifyFilter::ConstraintInfoSeq * add_constraints (const CosNotifyFilter::ConstraintExpSeq & constraint_list ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )); - - virtual void modify_constraints (const CosNotifyFilter::ConstraintIDSeq & del_list, - const CosNotifyFilter::ConstraintInfoSeq & modify_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint, - CosNotifyFilter::ConstraintNotFound - )); - - virtual CosNotifyFilter::ConstraintInfoSeq * get_constraints (const CosNotifyFilter::ConstraintIDSeq & id_list ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::ConstraintNotFound - )); - - virtual CosNotifyFilter::ConstraintInfoSeq * get_all_constraints (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_constraints (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CORBA::Boolean match (const CORBA::Any & filterable_data ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - - virtual CORBA::Boolean match_structured (const CosNotification::StructuredEvent & filterable_data ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - - virtual CORBA::Boolean match_typed (const CosNotification::PropertySeq & filterable_data ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - - virtual CosNotifyFilter::CallbackID attach_callback (CosNotifyComm::NotifySubscribe_ptr callback ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void detach_callback (CosNotifyFilter::CallbackID callback ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::CallbackNotFound - )); - - virtual CosNotifyFilter::CallbackIDSeq * get_callbacks (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -private: - void add_constraints_i (const CosNotifyFilter::ConstraintInfoSeq& constraint_info_seq ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )); - - void remove_all_constraints_i (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - struct TAO_NS_Constraint_Expr - { - // = DESCRIPTION - // Structure for associating ConstraintInfo with an interpreter. - // - CosNotifyFilter::ConstraintExp constr_expr; - // Constraint Expression. - - TAO_NS_Constraint_Interpreter interpreter; - // Constraint Interpreter. - }; - - /// Lock to serialize access to data members. - TAO_SYNCH_MUTEX lock_; - - /// Id generator for ConstraintInfo's. - ACE_Atomic_Op <ACE_SYNCH_NULL_MUTEX, CORBA::Long> constraint_expr_ids_; - - /// A list of the constraints stored in this filter. - typedef ACE_Hash_Map_Manager <CosNotifyFilter::ConstraintID, - ACE_NESTED_CLASS (TAO_NS_ETCL_Filter, TAO_NS_Constraint_Expr*), - ACE_SYNCH_NULL_MUTEX> - CONSTRAINT_EXPR_LIST; - - CONSTRAINT_EXPR_LIST constraint_expr_list_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__ACE_INLINE__) -#include "ETCL_Filter.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_ETCL_FILTER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.inl b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp deleted file mode 100644 index 91f08daa78f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// $Id$ - -#include "ETCL_FilterFactory.h" - -#if ! defined (__ACE_INLINE__) -#include "ETCL_FilterFactory.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_ETCL_FilterFactory, "$id$") - -#include "ETCL_Filter.h" - -TAO_NS_ETCL_FilterFactory::TAO_NS_ETCL_FilterFactory (void) -{ -} - -TAO_NS_ETCL_FilterFactory::~TAO_NS_ETCL_FilterFactory () -{ -} - -CosNotifyFilter::FilterFactory_ptr -TAO_NS_ETCL_FilterFactory::create (PortableServer::POA_var& filter_poa ACE_ENV_ARG_DECL) -{ - this->filter_poa_ = filter_poa; // save the filter poa. - - PortableServer::ServantBase_var servant_var (this); - - return _this (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyFilter::Filter_ptr -TAO_NS_ETCL_FilterFactory::create_filter (const char *constraint_grammar ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )) -{ - // @@: change to "ExTCL" later. - if (ACE_OS::strcmp (constraint_grammar, "TCL") != 0 && - ACE_OS::strcmp (constraint_grammar, "ETCL") != 0 && - ACE_OS::strcmp (constraint_grammar, "EXTENDED_TCL") != 0) - ACE_THROW_RETURN (CosNotifyFilter::InvalidGrammar (), 0); - - - // Create the RefCounted servant. - TAO_NS_ETCL_Filter* filter = 0; - - ACE_NEW_THROW_EX (filter, - TAO_NS_ETCL_Filter (), - CORBA::NO_MEMORY ()); - - PortableServer::ServantBase_var filter_var (filter); - - PortableServer::ObjectId_var oid = - this->filter_poa_->activate_object (filter - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ()); - - CORBA::Object_var obj = - this->filter_poa_->id_to_reference (oid.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ()); - - return CosNotifyFilter::Filter::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::MappingFilter_ptr -TAO_NS_ETCL_FilterFactory::create_mapping_filter (const char * /*constraint_grammar*/, - const CORBA::Any & /*default_value*/ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyFilter::MappingFilter::_nil ()); -} - -ACE_FACTORY_DEFINE (TAO_Notify, TAO_NS_ETCL_FilterFactory) diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h deleted file mode 100644 index 2257259fc0a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ETCL_FilterFactory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_ETCL_FILTERFACTORY_H -#define TAO_NS_ETCL_FILTERFACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyFilterS.h" -#include "FilterFactory.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_NS_ETCL_FilterFactory - * - * @brief - * - */ -class TAO_Notify_Export TAO_NS_ETCL_FilterFactory : public virtual PortableServer::RefCountServantBase - , public virtual POA_CosNotifyFilter::FilterFactory - , public TAO_NS_FilterFactory -{ -public: - /// Constuctor - TAO_NS_ETCL_FilterFactory (void); - - /// Destructor - ~TAO_NS_ETCL_FilterFactory (); - - ///= TAO_NS_FilterFactory methods. - - virtual CosNotifyFilter::FilterFactory_ptr create (PortableServer::POA_var& filter_poa ACE_ENV_ARG_DECL); - - ///= CosNotifyFilter::FilterFactory methods - - virtual CosNotifyFilter::Filter_ptr create_filter (const char * constraint_grammar - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )); - - virtual CosNotifyFilter::MappingFilter_ptr create_mapping_filter (const char * constraint_grammar, - const CORBA::Any & default_value - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )); - -protected: - /// The POA in which to activate the Filters. - PortableServer::POA_var filter_poa_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_ETCL_FilterFactory) - -#if defined (__ACE_INLINE__) -#include "ETCL_FilterFactory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_ETCL_FILTERFACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.inl b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event.cpp b/TAO/orbsvcs/orbsvcs/Notify/Event.cpp deleted file mode 100644 index dba27e9dffd..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// $Id$ - -#include "Event.h" - -#if ! defined (__ACE_INLINE__) -#include "Event.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Event, "$Id$") - -#include "tao/debug.h" -#include "orbsvcs/CosNotificationC.h" - -TAO_NS_Event::TAO_NS_Event (void) - :priority_ (CosNotification::Priority, CosNotification::DefaultPriority), - timeout_ (CosNotification::Timeout) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG,"event:%x created\n", this )); -} - -TAO_NS_Event::~TAO_NS_Event () -{ - if (TAO_debug_level > 1) - ACE_DEBUG ((LM_DEBUG,"event:%x destroyed\n", this )); -} - -void -TAO_NS_Event::translate (const CORBA::Any& any, CosNotification::StructuredEvent& notification) -{ - notification.remainder_of_body <<= any; - notification.header.fixed_header.event_type.type_name = CORBA::string_dup ("%ANY"); - notification.header.fixed_header.event_type.domain_name = CORBA::string_dup (""); -} - -void -TAO_NS_Event::translate (const CosNotification::StructuredEvent& notification, CORBA::Any& any) -{ - any <<= notification; // is the typecode set by this operation or do we need to set it explicity. -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Auto_Basic_Ptr<TAO_NS_Event>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Auto_Basic_Ptr<TAO_NS_Event> -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event.h b/TAO/orbsvcs/orbsvcs/Notify/Event.h deleted file mode 100644 index bbe45c870e3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event.h +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Event.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENT_H -#define TAO_NS_EVENT_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Copy_Disabled.h" -#include "orbsvcs/Event_ForwarderS.h" -#include "orbsvcs/CosNotifyFilterC.h" -#include "orbsvcs/CosNotificationC.h" -#include "Property.h" -#include "Property_T.h" - -class TAO_NS_Consumer; -class TAO_NS_EventType; - -/** - * @class TAO_NS_Event - * - * @brief Base class abstraction for Events flowing through the EventChannel. - * - */ -class TAO_Notify_Export TAO_NS_Event : private ACE_Copy_Disabled -{ -public: - /// Constuctor - TAO_NS_Event (void); - - /// Destructor - virtual ~TAO_NS_Event (); - - /// Translate Any to Structured - static void translate (const CORBA::Any& any, CosNotification::StructuredEvent& notification); - - /// Translate Structured to Any - static void translate (const CosNotification::StructuredEvent& notification, CORBA::Any& any); - - /// Get the event type. - virtual const TAO_NS_EventType& type (void) const = 0; - - /// Returns true if the filter matches. - virtual CORBA::Boolean do_match (CosNotifyFilter::Filter_ptr filter ACE_ENV_ARG_DECL) = 0; - - /// Convert to CosNotification::Structured type - virtual void convert (CosNotification::StructuredEvent& notification) = 0; - - /// Push event to consumer - virtual void push (TAO_NS_Consumer* consumer ACE_ENV_ARG_DECL) const = 0; - - /// Push event to the Event_Forwarder interface - virtual void push (Event_Forwarder::StructuredProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) = 0; - - /// Push event to the Event_Forwarder interface - virtual void push_no_filtering (Event_Forwarder::StructuredProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) = 0; - - /// Push event to the Event_Forwarder interface - virtual void push (Event_Forwarder::ProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) = 0; - - /// Push event to the Event_Forwarder interface - virtual void push_no_filtering (Event_Forwarder::ProxyPushSupplier_ptr forwarder ACE_ENV_ARG_DECL) = 0; - - ///= Accessors - /// Priority - TAO_NS_Property_Short& priority (void); - - /// Timeout - TAO_NS_Property_Time& timeout (void); - -protected: - /// = QoS properties - - /// Priority. - TAO_NS_Property_Short priority_; - - /// Timeout. - TAO_NS_Property_Time timeout_; -}; - -template <class X, class ACE_LOCK> class ACE_Refcounted_Auto_Ptr; -template <class T> class ACE_Unbounded_Queue; -typedef ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> TAO_NS_Event_var; -typedef ACE_Unbounded_Queue<TAO_NS_Event_var> TAO_NS_Event_Collection; - -#if defined (__ACE_INLINE__) -#include "Event.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENT_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event.inl b/TAO/orbsvcs/orbsvcs/Notify/Event.inl deleted file mode 100644 index 019194c78aa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event.inl +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_Property_Short& -TAO_NS_Event::priority (void) -{ - return this->priority_; -} - -ACE_INLINE TAO_NS_Property_Time& -TAO_NS_Event::timeout (void) -{ - return this->timeout_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp deleted file mode 100644 index c816c90acd0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp +++ /dev/null @@ -1,379 +0,0 @@ -// $Id$ - -#include "EventChannel.h" - -#if ! defined (__ACE_INLINE__) -#include "EventChannel.inl" -#endif /* __ACE_INLINE__ */ - -#include "Container_T.h" -#include "EventChannelFactory.h" -#include "ConsumerAdmin.h" -#include "SupplierAdmin.h" -#include "Event_Manager.h" -#include "Properties.h" -#include "Factory.h" -#include "Builder.h" -#include "Find_Worker_T.h" -#include "Seq_Worker_T.h" - -ACE_RCSID(RT_Notify, TAO_NS_EventChannel, "$Id$") - -TAO_NS_EventChannel::TAO_NS_EventChannel (void) - : ecf_ (0) - , ca_container_ (0) - , sa_container_ (0) -{ -} - -TAO_NS_EventChannel::~TAO_NS_EventChannel () -{ - delete this->event_manager_; // The EventChannel always owns the EventManager. - - this->ecf_->_decr_refcnt (); -} - -void -TAO_NS_EventChannel::init (TAO_NS_EventChannelFactory* ecf - , const CosNotification::QoSProperties & initial_qos - , const CosNotification::AdminProperties & initial_admin - ACE_ENV_ARG_DECL) -{ - this->TAO_NS_Object::init (ecf); - - this->ecf_ = ecf; - - this->ecf_->_incr_refcnt (); - - // Init ca_container_ - ACE_NEW_THROW_EX (this->ca_container_, - TAO_NS_ConsumerAdmin_Container (), - CORBA::INTERNAL ()); - ACE_CHECK; - - this->ca_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Init ca_container_ - ACE_NEW_THROW_EX (this->sa_container_, - TAO_NS_SupplierAdmin_Container (), - CORBA::INTERNAL ()); - ACE_CHECK; - - this->sa_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_AdminProperties* admin_properties = 0; - - // Set the admin properties. - ACE_NEW_THROW_EX (admin_properties, - TAO_NS_AdminProperties (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - this->admin_properties_ = admin_properties; - - // create the event manager. @@ use factory - ACE_NEW_THROW_EX (this->event_manager_, - TAO_NS_Event_Manager (), - CORBA::INTERNAL ()); - ACE_CHECK; - - this->event_manager_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - const CosNotification::QoSProperties &default_ec_qos = - TAO_NS_PROPERTIES::instance ()->default_event_channel_qos_properties (); - - this->set_qos (default_ec_qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->set_qos (initial_qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->set_admin (initial_admin ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CosNotifyChannelAdmin::AdminID id; - - // Set the default ConsumerAdmin. - this->default_consumer_admin_ = this->new_for_consumers (CosNotifyChannelAdmin::OR_OP, id ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Set the default SupplierAdmin. - this->default_supplier_admin_ = this->new_for_suppliers (CosNotifyChannelAdmin::OR_OP, id ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_EventChannel::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_incr_refcnt (); -} - -void -TAO_NS_EventChannel::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_decr_refcnt (); -} - -void -TAO_NS_EventChannel::release (void) -{ - delete this; - //@@ inform factory -} - -int -TAO_NS_EventChannel::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - if (TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return 1; - - this->ca_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (1); - - this->sa_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (1); - - delete this->ca_container_; - delete this->sa_container_; - - this->event_manager_->shutdown (); - - return 0; -} - -void -TAO_NS_EventChannel::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return; - - ACE_CHECK; - - this->ecf_->remove (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_EventChannel::remove (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL) -{ - this->ca_container_->remove (consumer_admin ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_EventChannel::remove (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL) -{ - this->sa_container_->remove (supplier_admin ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_EventChannel::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )) -{ - this->TAO_NS_Object::set_qos (qos ACE_ENV_ARG_PARAMETER); -} - -CosNotification::QoSProperties* -TAO_NS_EventChannel::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->TAO_NS_Object::get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_NS_EventChannel::MyFactory (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->ecf_->_this (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_NS_EventChannel::default_consumer_admin (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return CosNotifyChannelAdmin::ConsumerAdmin::_duplicate (this->default_consumer_admin_.in ()); -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_NS_EventChannel::default_supplier_admin (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return CosNotifyChannelAdmin::SupplierAdmin::_duplicate (this->default_supplier_admin_.in ()); -} - -::CosNotifyFilter::FilterFactory_ptr TAO_NS_EventChannel::default_filter_factory (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->ecf_->get_default_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -::CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_NS_EventChannel::new_for_consumers (CosNotifyChannelAdmin::InterFilterGroupOperator op, - CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) - -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_consumer_admin (this, op, id ACE_ENV_ARG_PARAMETER); -} - -::CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_NS_EventChannel::new_for_suppliers (CosNotifyChannelAdmin::InterFilterGroupOperator op, - CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_supplier_admin (this, op, id ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_NS_EventChannel::get_consumeradmin (CosNotifyChannelAdmin::AdminID id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminNotFound - )) -{ - TAO_NS_Find_Worker_T<TAO_NS_ConsumerAdmin - , CosNotifyChannelAdmin::ConsumerAdmin - , CosNotifyChannelAdmin::ConsumerAdmin_ptr - , CosNotifyChannelAdmin::AdminNotFound> find_worker; - - return find_worker.resolve (id, *this->ca_container_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_NS_EventChannel::get_supplieradmin (CosNotifyChannelAdmin::AdminID id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminNotFound - )) -{ - TAO_NS_Find_Worker_T<TAO_NS_SupplierAdmin - , CosNotifyChannelAdmin::SupplierAdmin - , CosNotifyChannelAdmin::SupplierAdmin_ptr - , CosNotifyChannelAdmin::AdminNotFound> find_worker; - - return find_worker.resolve (id, *this->sa_container_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminIDSeq* -TAO_NS_EventChannel::get_all_consumeradmins (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Seq_Worker_T<TAO_NS_ConsumerAdmin> seq_worker; - - return seq_worker.create (*this->ca_container_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminIDSeq* -TAO_NS_EventChannel::get_all_supplieradmins (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Seq_Worker_T<TAO_NS_SupplierAdmin> seq_worker; - - return seq_worker.create (*this->sa_container_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_EventChannel::set_admin (const CosNotification::AdminProperties & admin ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedAdmin - )) -{ - this->admin_properties_->init (admin); -} - -CosNotification::AdminProperties* -TAO_NS_EventChannel::get_admin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotification::AdminProperties_var properties; - - ACE_NEW_THROW_EX (properties, - CosNotification::AdminProperties (), - CORBA::NO_MEMORY ()); - - this->admin_properties_->populate (properties); - - return properties._retn (); -} - -CosEventChannelAdmin::ConsumerAdmin_ptr -TAO_NS_EventChannel::for_consumers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return CosEventChannelAdmin::ConsumerAdmin::_duplicate (this->default_consumer_admin_.in ()); -} - -CosEventChannelAdmin::SupplierAdmin_ptr -TAO_NS_EventChannel::for_suppliers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return CosEventChannelAdmin::SupplierAdmin::_duplicate (this->default_supplier_admin_.in ()); -} - -void -TAO_NS_EventChannel::validate_qos (const CosNotification::QoSProperties & /*required_qos*/, - CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_Find_Worker_T<TAO_NS_ConsumerAdmin>; -template class TAO_NS_Find_Worker_T<TAO_NS_SupplierAdmin>; -template class TAO_NS_Seq_Worker_T<TAO_NS_ConsumerAdmin>; -template class TAO_NS_Seq_Worker_T<TAO_NS_SupplierAdmin>; -template class TAO_NS_Container_T <TAO_NS_ConsumerAdmin>; -template class TAO_NS_Container_T <TAO_NS_SupplierAdmin>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_ConsumerAdmin> -#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_SupplierAdmin> -#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_ConsumerAdmin> -#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_SupplierAdmin> -#pragma instantiate TAO_NS_Container_T <TAO_NS_ConsumerAdmin> -#pragma instantiate TAO_NS_Container_T <TAO_NS_SupplierAdmin> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h deleted file mode 100644 index d49929af4fa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h +++ /dev/null @@ -1,221 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file EventChannel.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENTCHANNEL_H -#define TAO_NS_EVENTCHANNEL_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "Object.h" - -class TAO_NS_ConsumerAdmin; -class TAO_NS_SupplierAdmin; -class TAO_NS_EventChannelFactory; -template <class TYPE> class TAO_NS_Container_T; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_NS_EventChannel - * - * @brief Implementation of CosNotifyChannelAdmin::EventChannel - * - */ -class TAO_Notify_Export TAO_NS_EventChannel : public POA_CosNotifyChannelAdmin::EventChannel - , public virtual TAO_NS_Object -{ - friend class TAO_NS_Builder; - -public: - typedef CosNotifyChannelAdmin::ChannelIDSeq SEQ; - typedef CosNotifyChannelAdmin::ChannelIDSeq_var SEQ_VAR; - - /// Constuctor - TAO_NS_EventChannel (void); - - /// Destructor - ~TAO_NS_EventChannel (); - - /// Init - void init (TAO_NS_EventChannelFactory* ecf - , const CosNotification::QoSProperties & initial_qos - , const CosNotification::AdminProperties & initial_admin - ACE_ENV_ARG_DECL); - - /// Remove ConsumerAdmin from its container. - void remove (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL); - - /// Remove SupplierAdmin from its container. - void remove (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL); - - /// ServantBase refcount methods. - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Release - virtual void release (void); - - /// Shutdown - virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL); - -protected: - typedef TAO_NS_Container_T <TAO_NS_ConsumerAdmin> TAO_NS_ConsumerAdmin_Container; - typedef TAO_NS_Container_T <TAO_NS_SupplierAdmin> TAO_NS_SupplierAdmin_Container; - - /// = Data Members - /// The parent object. - TAO_NS_EventChannelFactory* ecf_; - - /// ConsumerAdmin Container. - TAO_NS_ConsumerAdmin_Container *ca_container_; - - /// SupplierAdmin Container. - TAO_NS_SupplierAdmin_Container *sa_container_; - - // Default Consumer Admin - CosNotifyChannelAdmin::ConsumerAdmin_var default_consumer_admin_; - - // Default Supplier Admin - CosNotifyChannelAdmin::SupplierAdmin_var default_supplier_admin_; - - /// =CosNotifyChannelAdmin::EventChannel methods - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::EventChannelFactory_ptr MyFactory (ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr default_consumer_admin (ACE_ENV_SINGLE_ARG_DECL - - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr default_supplier_admin (ACE_ENV_SINGLE_ARG_DECL - - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyFilter::FilterFactory_ptr default_filter_factory (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr new_for_consumers (CosNotifyChannelAdmin::InterFilterGroupOperator op, - CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr new_for_suppliers (CosNotifyChannelAdmin::InterFilterGroupOperator op, - CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ConsumerAdmin_ptr get_consumeradmin (CosNotifyChannelAdmin::AdminID id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminNotFound - )); - - virtual ::CosNotifyChannelAdmin::SupplierAdmin_ptr get_supplieradmin (CosNotifyChannelAdmin::AdminID id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminNotFound - )); - - virtual ::CosNotifyChannelAdmin::AdminIDSeq * get_all_consumeradmins (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::AdminIDSeq * get_all_supplieradmins (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotification::QoSProperties * get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos (const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )); - - virtual void validate_qos (const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )); - - virtual ::CosNotification::AdminProperties * get_admin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_admin (const CosNotification::AdminProperties & admin ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedAdmin - )); - - virtual ::CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__ACE_INLINE__) -#include "EventChannel.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENTCHANNEL_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.inl b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp deleted file mode 100644 index bc0eb18f7f2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// $Id$ - -#include "EventChannelFactory.h" - -#if ! defined (__ACE_INLINE__) -#include "EventChannelFactory.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_EventChannelFactory, "$Id$") - -#include "ace/Dynamic_Service.h" -#include "Properties.h" -#include "Factory.h" -#include "Builder.h" -#include "EventChannel.h" -#include "Container_T.h" -#include "Find_Worker_T.h" -#include "Seq_Worker_T.h" - -TAO_NS_EventChannelFactory::TAO_NS_EventChannelFactory (void) - :ec_container_ (0) -{ -} - -TAO_NS_EventChannelFactory::~TAO_NS_EventChannelFactory () -{ -} - -void -TAO_NS_EventChannelFactory::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return; - - this->ec_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance(); - - delete this->ec_container_; - - // Shutdown the ORB. - CORBA::ORB_var orb = properties->orb (); - orb->shutdown (); - - // Reset references to CORBA objects. - properties->orb (CORBA::ORB::_nil ()); - properties->default_poa (PortableServer::POA::_nil ()); -} - -void -TAO_NS_EventChannelFactory::init (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) -{ - this->default_filter_factory_ = - TAO_NS_PROPERTIES::instance()->builder()->build_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Init ec_container_ - ACE_NEW_THROW_EX (this->ec_container_, - TAO_NS_EventChannel_Container (), - CORBA::INTERNAL ()); - ACE_CHECK; - - this->ec_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_POA_Helper* object_poa = 0; - - // Bootstrap initial Object POA - ACE_NEW_THROW_EX (object_poa, - TAO_NS_POA_Helper (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - auto_ptr<TAO_NS_POA_Helper> auto_object_poa (object_poa); - - object_poa->init (poa ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // release auto_ref. - auto_object_poa.release (); - - this->object_poa_own (object_poa); - - // We are also activated in the same Object POA. - this->poa_ = this->object_poa_; -} - -void -TAO_NS_EventChannelFactory::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_incr_refcnt (); -} - -void -TAO_NS_EventChannelFactory::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_decr_refcnt (); -} - -void -TAO_NS_EventChannelFactory::release (void) -{ - delete this; - //@@ inform factory -} - -void -TAO_NS_EventChannelFactory::remove (TAO_NS_EventChannel* event_channel ACE_ENV_ARG_DECL) -{ - this->ec_container_->remove (event_channel ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -int -TAO_NS_EventChannelFactory::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - if (TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return 1; - - this->ec_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (1); - - return 0; -} - -CosNotifyFilter::FilterFactory_ptr -TAO_NS_EventChannelFactory::get_default_filter_factory (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - return CosNotifyFilter::FilterFactory::_duplicate (this->default_filter_factory_.in ()); -} - -::CosNotifyChannelAdmin::EventChannel_ptr TAO_NS_EventChannelFactory::create_channel ( - const CosNotification::QoSProperties & initial_qos, - const CosNotification::AdminProperties & initial_admin, - CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - , CosNotification::UnsupportedAdmin - )) -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_event_channel (this - , initial_qos - , initial_admin - , id - ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ChannelIDSeq* -TAO_NS_EventChannelFactory::get_all_channels (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Seq_Worker_T<TAO_NS_EventChannel> seq_worker; - - return seq_worker.create (*this->ec_container_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_NS_EventChannelFactory::get_event_channel (CosNotifyChannelAdmin::ChannelID id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::ChannelNotFound - )) -{ - TAO_NS_Find_Worker_T<TAO_NS_EventChannel - , CosNotifyChannelAdmin::EventChannel - , CosNotifyChannelAdmin::EventChannel_ptr - , CosNotifyChannelAdmin::ChannelNotFound> find_worker; - - return find_worker.resolve (id, *this->ec_container_ ACE_ENV_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_Find_Worker_T<TAO_NS_EventChannel>; -template class TAO_NS_Seq_Worker_T<TAO_NS_EventChannel>; -template class TAO_NS_Container_T <TAO_NS_EventChannel>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_EventChannel> -#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_EventChannel> -#pragma instantiate TAO_NS_Container_T <TAO_NS_EventChannel> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h deleted file mode 100644 index 268618aaf32..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h +++ /dev/null @@ -1,122 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file EventChannelFactory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENTCHANNELFACTORY_H -#define TAO_NS_EVENTCHANNELFACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "orbsvcs/NotifyExtS.h" -#include "Object.h" - -class TAO_NS_EventChannel; -template <class TYPE> class TAO_NS_Container_T; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_NS_EventChannelFactory - * - * @brief Implementation of CosNotifyChannelAdmin::EventChannelFactory - * - */ -class TAO_Notify_Export TAO_NS_EventChannelFactory : public virtual POA_NotifyExt::EventChannelFactory - , public virtual TAO_NS_Object -{ - friend class TAO_NS_Builder; - -public: - /// Constuctor - TAO_NS_EventChannelFactory (void); - - /// Init the factory - void init (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL); - - /// Destructor - virtual ~TAO_NS_EventChannelFactory (); - - /// = ServantBase Methods - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Release this object. - virtual void release (void); - - /// Remove <channel> from the <ec_container_> - void remove (TAO_NS_EventChannel* channel ACE_ENV_ARG_DECL); - - /// Accesor for the default filter factory shared by all EC's. - virtual CosNotifyFilter::FilterFactory_ptr get_default_filter_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// shutdown - virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL); - - protected: - typedef TAO_NS_Container_T<TAO_NS_EventChannel> TAO_NS_EventChannel_Container; - - /// = Data Members - /// Container for Event Channels. - TAO_NS_EventChannel_Container *ec_container_; - - /// The default filter factory. - CosNotifyFilter::FilterFactory_var default_filter_factory_; - - /// = NotifyExt method - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// = CosNotifyChannelAdmin Methods - - virtual ::CosNotifyChannelAdmin::EventChannel_ptr create_channel (const CosNotification::QoSProperties & initial_qos, - const CosNotification::AdminProperties & initial_admin, - CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - , CosNotification::UnsupportedAdmin - )); - - virtual ::CosNotifyChannelAdmin::ChannelIDSeq * get_all_channels (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::EventChannel_ptr get_event_channel (CosNotifyChannelAdmin::ChannelID id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::ChannelNotFound - )); -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__ACE_INLINE__) -#include "EventChannelFactory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENTCHANNELFACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.inl b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventType.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventType.cpp deleted file mode 100644 index 9ac68b89aad..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventType.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "EventType.h" - -#if ! defined (__ACE_INLINE__) -#include "EventType.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_EventType, "$Id$") - -TAO_NS_EventType -TAO_NS_EventType::special (void) -{ - return TAO_NS_EventType ("*", "%ALL"); -} - -TAO_NS_EventType::TAO_NS_EventType (void) -{ -} - -void -TAO_NS_EventType::init_i (const char* domain_name, const char* type_name) -{ - this->event_type_.domain_name = domain_name; - this->event_type_.type_name = type_name; - - if (this->is_special () == 1) - { - this->event_type_.domain_name = (const char* )"*"; - this->event_type_.type_name = (const char* )"%ALL"; - } - - this->recompute_hash (); -} - -TAO_NS_EventType::TAO_NS_EventType (const char* domain_name, const char* type_name) -{ - this->init_i (domain_name, type_name); -} - -TAO_NS_EventType::TAO_NS_EventType (const CosNotification::EventType& event_type) -{ - this->init_i (event_type.domain_name.in (), event_type.type_name.in ()); -} - -TAO_NS_EventType::~TAO_NS_EventType () -{ -} - -void -TAO_NS_EventType::recompute_hash (void) -{ - // @@ Pradeep: this code is bound to crash someday if the strings - // are too long.... See if the hash_pjw () function can be modified - // to take accumulate multiple strings, as in: - // hash = ACE::hash_pjw_accummulate (0, str1); - // hash = ACE::hash_pjw_accummulate (hash, str2); - // - // @@ Or use grow the buffer when needed, or just add the two hash - // values or something, but fix this code! - // - char buffer[BUFSIZ]; - ACE_OS::strcpy (buffer, this->event_type_.domain_name.in ()); - ACE_OS::strcat (buffer, this->event_type_.type_name.in ()); - - this->hash_value_ = ACE::hash_pjw (buffer); -} - -TAO_NS_EventType& -TAO_NS_EventType::operator=(const CosNotification::EventType& event_type) -{ - this->init_i (event_type.domain_name.in (),event_type.type_name.in ()); - - return *this; -} - -TAO_NS_EventType& -TAO_NS_EventType::operator=(const TAO_NS_EventType& event_type) -{ - if (this == &event_type) - return *this; - - this->init_i (event_type.event_type_.domain_name.in (),event_type.event_type_.type_name.in ()); - - return *this; -} - -int -TAO_NS_EventType::operator==(const TAO_NS_EventType& event_type) const -{ - if (this->hash () != event_type.hash ()) - return 0; - else // compare the strings - return (ACE_OS::strcmp (this->event_type_.type_name, event_type.event_type_.type_name) == 0 && - ACE_OS::strcmp (this->event_type_.domain_name, event_type.event_type_.domain_name) == 0 - ); -} - -int -TAO_NS_EventType::operator!=(const TAO_NS_EventType& event_type) const -{ - if (this->hash () != event_type.hash ()) - return 1; - else // compare the strings - return (ACE_OS::strcmp (this->event_type_.type_name, event_type.event_type_.type_name) != 0 || - ACE_OS::strcmp (this->event_type_.domain_name, event_type.event_type_.domain_name) != 0 - ); -} - -CORBA::Boolean -TAO_NS_EventType::is_special (void) const -{ - if ((this->event_type_.domain_name == 0 || - ACE_OS::strcmp (this->event_type_.domain_name, "") == 0 || - ACE_OS::strcmp (this->event_type_.domain_name, "*") == 0) && - (this->event_type_.type_name == 0 || - ACE_OS::strcmp (this->event_type_.type_name, "") == 0 || - ACE_OS::strcmp (this->event_type_.type_name, "*") == 0 || - ACE_OS::strcmp (this->event_type_.type_name, "%ALL") == 0)) - return 1; - else - return 0; -} - -void -TAO_NS_EventType::dump (void) const -{ - ACE_DEBUG ((LM_DEBUG, "(%s,%s)", this->event_type_.domain_name.in (), this->event_type_.type_name.in ())); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventType.h b/TAO/orbsvcs/orbsvcs/Notify/EventType.h deleted file mode 100644 index edeaca96cbc..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventType.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file EventType.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENTTYPE_H -#define TAO_NS_EVENTTYPE_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotificationC.h" - -/** - * @class TAO_NS_EventType - * - * @brief - * - * This type is used to compare different event types. - * It is used by the Event Manager as a key to find subscription lists. - * - */ -class TAO_Notify_Export TAO_NS_EventType -{ -public: - /// Constuctor - TAO_NS_EventType (void); - TAO_NS_EventType (const char* domain_name, const char* type_name); - TAO_NS_EventType (const CosNotification::EventType& event_type); - // Constuctor - - /// Destructor - ~TAO_NS_EventType (); - - /// hash value - u_long hash (void) const; - - /// Assignment from CosNotification::EventType - TAO_NS_EventType& operator=(const CosNotification::EventType& event_type); - - /// Assignment operator. - TAO_NS_EventType& operator=(const TAO_NS_EventType& event_type); - - /// == operator - int operator==(const TAO_NS_EventType& notify_event_type) const; - - /// != operator - int operator!=(const TAO_NS_EventType& notify_event_type) const; - - static TAO_NS_EventType special (void); - // Return the special event type. - - CORBA::Boolean is_special (void) const; - // Is this the special event (accept everything). - - const CosNotification::EventType& native (void) const; - // Get the type underneath us. - - /// Helper to print contents. - void dump (void) const; - -protected: - /// Init this object. - void init_i (const char* domain_name, const char* type_name); - - void recompute_hash (void); - // Recompute the hash value. - - // = Data Members - CosNotification::EventType event_type_; - // The event_type that we're decorating. - - u_long hash_value_; - // The hash value computed. -}; - -#if defined (__ACE_INLINE__) -#include "EventType.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENTTYPE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventType.inl b/TAO/orbsvcs/orbsvcs/Notify/EventType.inl deleted file mode 100644 index 93af3791bf9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventType.inl +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -ACE_INLINE u_long -TAO_NS_EventType::hash (void) const -{ - return this->hash_value_; -} - -ACE_INLINE const CosNotification::EventType& -TAO_NS_EventType::native (void) const -{ - return event_type_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.cpp deleted file mode 100644 index ccd6389e10c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.cpp +++ /dev/null @@ -1,223 +0,0 @@ -// $Id$ - -#include "EventTypeSeq.h" - -#if ! defined (__ACE_INLINE__) -#include "EventTypeSeq.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_EventTypeSeq, "$Id$") - -TAO_NS_EventTypeSeq::TAO_NS_EventTypeSeq (void) -{ -} - -TAO_NS_EventTypeSeq::TAO_NS_EventTypeSeq (const CosNotification::EventTypeSeq& event_type_seq) -{ - this->insert_seq (event_type_seq); -} - -void -TAO_NS_EventTypeSeq::populate (CosNotification::EventTypeSeq& event_type_seq) const -{ - event_type_seq.length (this->size ()); - - inherited::CONST_ITERATOR iter (*this); - - TAO_NS_EventType* event_type; - - CORBA::ULong i = 0; - for (iter.first (); iter.next (event_type); iter.advance (), ++i) - event_type_seq[i] = event_type->native (); -} - -void -TAO_NS_EventTypeSeq::populate_no_special (CosNotification::EventTypeSeq& event_type_seq) const -{ - // If the special exists in us, don't include it. - const TAO_NS_EventType& special = TAO_NS_EventType::special (); - - if (this->find (special) == 0) - { - event_type_seq.length (this->size () - 1); - } - else - event_type_seq.length (this->size ()); - - inherited::CONST_ITERATOR iter (*this); - - TAO_NS_EventType* event_type; - - CORBA::ULong i = 0; - for (iter.first (); iter.next (event_type); iter.advance (), ++i) - { - if (event_type->is_special () == 0) // if its not the special event type. - event_type_seq[i] = event_type->native (); - } -} - -void -TAO_NS_EventTypeSeq::insert_seq (const CosNotification::EventTypeSeq& event_type_seq) -{ - TAO_NS_EventType event_type; - - for (CORBA::ULong i = 0; i < event_type_seq.length (); ++i) - { - event_type = event_type_seq[i]; - inherited::insert (event_type); - } -} - -void -TAO_NS_EventTypeSeq::remove_seq (const CosNotification::EventTypeSeq& event_type_seq) -{ - TAO_NS_EventType event_type; - - for (CORBA::ULong i = 0; i < event_type_seq.length (); ++i) - { - event_type = event_type_seq[i]; - inherited::remove (event_type); - } -} - -void -TAO_NS_EventTypeSeq::insert_seq (const TAO_NS_EventTypeSeq& event_type_seq) -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (event_type_seq); - - TAO_NS_EventType* event_type; - - for (iter.first (); iter.next (event_type); iter.advance ()) - inherited::insert (*event_type); -} - -void -TAO_NS_EventTypeSeq::remove_seq (const TAO_NS_EventTypeSeq& event_type_seq) -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (event_type_seq); - - TAO_NS_EventType* event_type; - - for (iter.first (); iter.next (event_type); iter.advance ()) - inherited::remove (*event_type); -} - -void -TAO_NS_EventTypeSeq::init (TAO_NS_EventTypeSeq& seq_added, TAO_NS_EventTypeSeq& seq_remove) -{ - const TAO_NS_EventType& special = TAO_NS_EventType::special (); - - if (this->find (special) == 0) // If this object has the special type. - { - if (seq_added.find (special) == 0) // if the seq. being added has the special type, you cannot be adding or removing anythings. * overrides. - { - seq_added.reset (); // remove everything from the sequence bening added. - seq_remove.reset (); // remove everything form whats being removed. - } - else // sequence being added does not have * - { - this->reset (); // take away the * from this object. - this->insert_seq (seq_added); // insert the sequence being added as the new list of types. - - seq_remove.reset (); // reset all that is being removed. - seq_remove.insert (special); // remove * - } - } - else // if this object does not have the special type. - { - if (seq_added.find (special) == 0) // but the seq. being added has the special type, - { - if (seq_remove.find (special) == 0) // and you're removing * as well - { - seq_added.reset (); // ignore the request - seq_remove.reset (); // ignore the request - } - else // seq being removed does not have the special type - { - seq_remove.reset (); // everything that we're subscribed for is being removed. - seq_remove.insert_seq (*this); - - this->reset (); // insert the special in this object. - this->insert (special); - - seq_added.reset (); // also clear our set and add only * - seq_added.insert (special); - } - } - else // seq being added does not have special. - { - if (seq_remove.find (special) == 0) // but we're removing everything. - { - seq_remove.reset (); // move all that we have currently to removed. - seq_remove.insert_seq (*this); - } - - // so now there are no specials anywhere.. - { - //= First remove the duplicates in the added and removes lists. - // compute the intersection. - - TAO_NS_EventTypeSeq common; - common.intersection (seq_added, seq_remove); - - // remove the common elements from both the lists so Added {BCDK} and Removed {CDEA} will yield Added {BK} and Removed {EA} - seq_added.remove_seq (common); - seq_remove.remove_seq (common); - - // If we're already subscribed for an element we should not subscribe again (duplicate events). - // so if we currently subscribe for ABC and we Added {BK} we should now get ABCK as current subscription and Added {K} - common.reset (); - common.intersection (*this, seq_added); - // remove the common elements from the added list. i,e. doent ask to add what we're already added for. - seq_added.remove_seq (common); - // update the current subscription. - this->insert_seq (seq_added); - - - // Similarly for removed.. if we're removing EA and now our current list looks like ABC we should emd up with - // current subscription BC and Removed {A} - common.reset (); - common.intersection (*this, seq_remove); - - seq_remove.reset (); - seq_remove.insert_seq (common); // only remove what we currently have. - - this->remove_seq (seq_remove); - } - } - } -} - -void -TAO_NS_EventTypeSeq::intersection (const TAO_NS_EventTypeSeq& rhs, const TAO_NS_EventTypeSeq& lhs) -{ - // linear search. - TAO_NS_EventTypeSeq::CONST_ITERATOR rhs_iter (rhs); - TAO_NS_EventType* rhs_event_type; - - TAO_NS_EventTypeSeq::CONST_ITERATOR lhs_iter (lhs); - TAO_NS_EventType* lhs_event_type; - - for (rhs_iter.first (); rhs_iter.next (rhs_event_type); rhs_iter.advance ()) - { - for (lhs_iter.first (); lhs_iter.next (lhs_event_type); lhs_iter.advance ()) - { - if (*rhs_event_type == *lhs_event_type) // if both are same add to this object. - this->insert (*rhs_event_type); - } - } -} - -void -TAO_NS_EventTypeSeq::dump (void) const -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (*this); - - TAO_NS_EventType* event_type; - - for (iter.first (); iter.next (event_type); iter.advance ()) - { - event_type->dump (); - ACE_DEBUG ((LM_DEBUG, ", ")); - } -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.h b/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.h deleted file mode 100644 index b695dc9ea10..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file EventTypeSeq.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENTTYPESEQ_H -#define TAO_NS_EVENTTYPESEQ_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "EventType.h" -#include "ace/Unbounded_Set.h" - -/** - * @class TAO_NS_EventTypeSeq - * - * @brief Allows operations using the CosNotification::EventTypeSeq type. - * - */ -class TAO_Notify_Export TAO_NS_EventTypeSeq : public ACE_Unbounded_Set <TAO_NS_EventType> -{ - typedef ACE_Unbounded_Set <TAO_NS_EventType> inherited; - -public: - /// Constructor - TAO_NS_EventTypeSeq (void); - TAO_NS_EventTypeSeq (const CosNotification::EventTypeSeq& event_type_seq); - - /// Preprocess the types added and removed. - void init (TAO_NS_EventTypeSeq& added, TAO_NS_EventTypeSeq& removed); - - /// Populate this sequence with the intersection of rhs and lhs. - void intersection (const TAO_NS_EventTypeSeq& rhs, const TAO_NS_EventTypeSeq& lhs); - - /// insert_seq the contents of <event_type_seq> into this object. - void insert_seq (const CosNotification::EventTypeSeq& event_type_seq); - - /// remove_seq the contents of <event_type_seq> from this object. - void remove_seq (const CosNotification::EventTypeSeq& event_type_seq); - - /// insert_seq the contents of <event_type_seq> into this object. - void insert_seq (const TAO_NS_EventTypeSeq& event_type_seq); - - /// remove_seq the contents of <event_type_seq> from this object. - void remove_seq (const TAO_NS_EventTypeSeq& event_type_seq); - - /// Populate <event_type_seq> with the contents of this object. - void populate (CosNotification::EventTypeSeq& event_type) const; - - /// Populate <event_type_seq> with the contents of this object. - // Excludes the special event type. This is used to avoid sending * type updates to proxys. - void populate_no_special (CosNotification::EventTypeSeq& event_type) const; - - /// Print the contents. - void dump (void) const; -}; - -#if defined (__ACE_INLINE__) -#include "EventTypeSeq.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENTTYPESEQ_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.inl b/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/EventTypeSeq.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp deleted file mode 100644 index 2392dee4a63..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp +++ /dev/null @@ -1,328 +0,0 @@ -// $Id$ - -#include "Event_Manager.h" -#include "tao/debug.h" - -#if ! defined (__ACE_INLINE__) -#include "Event_Manager.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Event_Manager, "$Id$") - -#include "ProxyConsumer.h" -#include "ProxySupplier.h" -#include "Consumer_Map.h" -#include "Supplier_Map.h" - -TAO_NS_Event_Manager::TAO_NS_Event_Manager (void) - :consumer_map_ (0), supplier_map_ (0) -{ -} - -TAO_NS_Event_Manager::~TAO_NS_Event_Manager () -{ - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "destroying consumer/supplier map count = %d/%d, \n", - this->consumer_map_->proxy_count (), this->supplier_map_->proxy_count ())); - } - - delete this->consumer_map_; - delete this->supplier_map_; -} - -void -TAO_NS_Event_Manager::init (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->consumer_map_, - TAO_NS_Consumer_Map (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - ACE_NEW_THROW_EX (this->supplier_map_, - TAO_NS_Supplier_Map (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - this->consumer_map_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->supplier_map_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_Event_Manager::shutdown (void) -{ -} - -void -TAO_NS_Event_Manager::connect (TAO_NS_ProxySupplier* proxy_supplier ACE_ENV_ARG_DECL) -{ - this->consumer_map_->connect (proxy_supplier ACE_ENV_ARG_PARAMETER); - - // Inform about offered types. - TAO_NS_EventTypeSeq removed; - proxy_supplier->types_changed (this->offered_types (), removed ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Event_Manager::disconnect (TAO_NS_ProxySupplier* proxy_supplier ACE_ENV_ARG_DECL) -{ - this->consumer_map_->disconnect (proxy_supplier ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Event_Manager::connect (TAO_NS_ProxyConsumer* proxy_consumer ACE_ENV_ARG_DECL) -{ - this->supplier_map_->connect (proxy_consumer ACE_ENV_ARG_PARAMETER); - - // Inform about subscription types. - TAO_NS_EventTypeSeq removed; - proxy_consumer->types_changed (this->subscription_types (), removed ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Event_Manager::disconnect (TAO_NS_ProxyConsumer* proxy_consumer ACE_ENV_ARG_DECL) -{ - this->supplier_map_->disconnect (proxy_consumer ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Event_Manager::offer_change (TAO_NS_ProxyConsumer* proxy_consumer, const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq new_added, last_removed; - - this->publish (proxy_consumer, added, new_added ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->un_publish (proxy_consumer, removed, last_removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_Consumer_Map::ENTRY::COLLECTION* updates_collection = this->consumer_map_->updates_collection (); - - TAO_NS_ProxySupplier_Update_Worker worker (new_added, last_removed); - - if (updates_collection != 0) - updates_collection->for_each (&worker ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Event_Manager::subscription_change (TAO_NS_ProxySupplier* proxy_supplier, const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq new_added, last_removed; - - this->subscribe (proxy_supplier, added, new_added ACE_ENV_ARG_PARAMETER); - this->un_subscribe (proxy_supplier, removed, last_removed ACE_ENV_ARG_PARAMETER); - - TAO_NS_Supplier_Map::ENTRY::COLLECTION* updates_collection = this->supplier_map_->updates_collection (); - - TAO_NS_ProxyConsumer_Update_Worker worker (new_added, last_removed); - - if (updates_collection != 0) - updates_collection->for_each (&worker ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Event_Manager::subscribe (TAO_NS_ProxySupplier* proxy_supplier, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& new_seq ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (seq); - - TAO_NS_EventType* event_type; - - for (iter.first (); iter.next (event_type) != 0; iter.advance ()) - { - int result = consumer_map_->insert (proxy_supplier, *event_type ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (result == 1) - new_seq.insert (*event_type); - } -} - -void -TAO_NS_Event_Manager::un_subscribe (TAO_NS_ProxySupplier* proxy_supplier, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& last_seq ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (seq); - - TAO_NS_EventType* event_type = 0; - - for (iter.first (); iter.next (event_type) != 0; iter.advance ()) - { - int result = consumer_map_->remove (proxy_supplier, *event_type ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (result == 1) - last_seq.insert (*event_type); - } -} - -void -TAO_NS_Event_Manager::publish (TAO_NS_ProxyConsumer* proxy_consumer, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& new_seq ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (seq); - - TAO_NS_EventType* event_type = 0; - - for (iter.first (); iter.next (event_type) != 0; iter.advance ()) - { - int result = supplier_map_->insert (proxy_consumer, *event_type ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (result == 1) - new_seq.insert (*event_type); - } -} - -void -TAO_NS_Event_Manager::un_publish (TAO_NS_ProxyConsumer* proxy_consumer, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& last_seq ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq::CONST_ITERATOR iter (seq); - - TAO_NS_EventType* event_type = 0; - - for (iter.first (); iter.next (event_type) != 0; iter.advance ()) - { - int result = supplier_map_->remove (proxy_consumer, *event_type ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (result == 1) - last_seq.insert (*event_type); - } -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX>; -template class TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX>; - -template class ACE_Hash<TAO_NS_EventType>; -template class ACE_Equal_To<TAO_NS_EventType>; - -template class TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer>; -template class TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier>; - -template class ACE_Hash_Map_Manager_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Null_Mutex>; -template class ACE_Hash_Map_Manager<ACE_CString, CORBA::Any, ACE_Null_Mutex>; - -template class ACE_Unbounded_Set<TAO_NS_EventType>; -template class ACE_Unbounded_Set_Const_Iterator<TAO_NS_EventType>; -template class ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> >; -template class ACE_Unbounded_Set_Iterator<TAO_NS_EventType>; - -template class TAO_ESF_Worker<TAO_NS_ProxySupplier>; -template class TAO_ESF_Worker<TAO_NS_ProxyConsumer>; -template class TAO_ESF_Worker<TAO_NS_Proxy>; -template class TAO_ESF_Worker<TAO_NS_Consumer>; -template class TAO_ESF_Worker<TAO_NS_Peer>; -template class TAO_ESF_Worker<TAO_NS_Admin>; -template class TAO_ESF_Worker<TAO_NS_EventChannel>; - -template class ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX>; -template class ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> >; - -template class ACE_Node<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX > >; -template class ACE_Node<TAO_NS_Supplier *>; -template class ACE_Node<TAO_NS_Admin *>; -template class ACE_Node<TAO_NS_EventChannel *>; -template class ACE_Node<TAO_NS_ProxyConsumer *>; -template class ACE_Node<TAO_NS_EventType>; -template class ACE_Node<TAO_NS_Peer *>; -template class ACE_Node<TAO_NS_ProxySupplier *>; -template class ACE_Node<TAO_NS_Proxy *>; -template class ACE_Node<TAO_NS_Consumer *>; - -template class ACE_Hash_Map_Entry<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *>; -template class ACE_Hash_Map_Entry<ACE_CString, CORBA::Any>; -template class ACE_Hash_Map_Entry<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *>; - -template class ACE_Hash_Map_Iterator_Base_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; - -template class ACE_Hash_Map_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; - -template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex>; - -template class ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>; - -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>; - -template class TAO_ESF_Shutdown_Proxy<TAO_NS_EventChannel>; -template class TAO_ESF_Shutdown_Proxy<TAO_NS_Admin>; -template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> -#pragma instantiate TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> - -#pragma instantiate ACE_Hash<TAO_NS_EventType> -#pragma instantiate ACE_Equal_To<TAO_NS_EventType> - -#pragma instantiate TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> -#pragma instantiate TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> - -#pragma instantiate ACE_Hash_Map_Manager_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString, CORBA::Any, ACE_Null_Mutex> - -#pragma instantiate ACE_Unbounded_Set<TAO_NS_EventType> -#pragma instantiate ACE_Unbounded_Set_Const_Iterator<TAO_NS_EventType> -#pragma instantiate ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> > -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_EventType> - -#pragma instantiate TAO_ESF_Worker<TAO_NS_ProxySupplier> -#pragma instantiate TAO_ESF_Worker<TAO_NS_ProxyConsumer> -#pragma instantiate TAO_ESF_Worker<TAO_NS_Proxy> -#pragma instantiate TAO_ESF_Worker<TAO_NS_Consumer> -#pragma instantiate TAO_ESF_Worker<TAO_NS_Peer> -#pragma instantiate TAO_ESF_Worker<TAO_NS_Admin> -#pragma instantiate TAO_ESF_Worker<TAO_NS_EventChannel> - -#pragma instantiate ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> > - -#pragma instantiate ACE_Node<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX > > -#pragma instantiate ACE_Node<TAO_NS_Supplier *> -#pragma instantiate ACE_Node<TAO_NS_Admin *> -#pragma instantiate ACE_Node<TAO_NS_EventChannel *> -#pragma instantiate ACE_Node<TAO_NS_ProxyConsumer *> -#pragma instantiate ACE_Node<TAO_NS_EventType> -#pragma instantiate ACE_Node<TAO_NS_Peer *> -#pragma instantiate ACE_Node<TAO_NS_ProxySupplier *> -#pragma instantiate ACE_Node<TAO_NS_Proxy *> -#pragma instantiate ACE_Node<TAO_NS_Consumer *> - -#pragma instantiate ACE_Hash_Map_Entry<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *> -#pragma instantiate ACE_Hash_Map_Entry<ACE_CString, CORBA::Any> -#pragma instantiate ACE_Hash_Map_Entry<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *> - -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> - -#pragma instantiate ACE_Hash_Map_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> - -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxySupplier> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Hash<TAO_NS_EventType>, ACE_Equal_To<TAO_NS_EventType>, ACE_Null_Mutex> - -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex> - -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex> - -#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_EventChannel> -#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_Admin> -#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h deleted file mode 100644 index efc8b257831..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h +++ /dev/null @@ -1,150 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Event_Manager.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENT_MANAGER_H -#define TAO_NS_EVENT_MANAGER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ESF/ESF_Worker.h" - -class TAO_NS_ProxySupplier; -class TAO_NS_ProxyConsumer; -class TAO_NS_EventTypeSeq; - -template <class PROXY, class ACE_LOCK> class TAO_NS_Event_Map_T; -typedef TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> TAO_NS_Consumer_Map; -typedef TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> TAO_NS_Supplier_Map; - -/** - * @class TAO_NS_Event_Manager - * - * @brief A class that manages the Consumer and Supplier maps. - * - */ -class TAO_Notify_Export TAO_NS_Event_Manager -{ -public: - /// Constuctor - TAO_NS_Event_Manager (void); - - /// Destructor - ~TAO_NS_Event_Manager (); - - /// Init - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Init - void shutdown (void); - - /// Connect ProxySupplier - void connect (TAO_NS_ProxySupplier* proxy_supplier ACE_ENV_ARG_DECL); - - /// Disconnect ProxySupplier - void disconnect (TAO_NS_ProxySupplier* proxy_supplier ACE_ENV_ARG_DECL); - - /// Connect ProxyConsumer - void connect (TAO_NS_ProxyConsumer* proxy_consumer ACE_ENV_ARG_DECL); - - /// Disconnect ProxyConsumer - void disconnect (TAO_NS_ProxyConsumer* proxy_consumer ACE_ENV_ARG_DECL); - - /// Map accessors. - TAO_NS_Consumer_Map* consumer_map (void); - TAO_NS_Supplier_Map* supplier_map (void); - - /// Offer change received on <proxy_consumer>. - void offer_change (TAO_NS_ProxyConsumer* proxy_consumer, const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL); - - /// Subscription change received on <proxy_supplier>. - void subscription_change (TAO_NS_ProxySupplier* proxy_supplier, const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL); - - /// What are the types being offered. - const TAO_NS_EventTypeSeq& offered_types (void); - - /// What are the types being subscribed. - const TAO_NS_EventTypeSeq& subscription_types (void); - -protected: - /// Subscribe <proxy_supplier> to the event type sequence list <seq>. - void subscribe (TAO_NS_ProxySupplier* proxy_supplier, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& new_seq ACE_ENV_ARG_DECL); - - /// Unsubscribe <proxy_supplier> to the event type sequence list <seq>. - void un_subscribe (TAO_NS_ProxySupplier* proxy_supplier, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& last_seq ACE_ENV_ARG_DECL); - - /// Subscribe <proxy_consumer> to the event type sequence list <seq>. - void publish (TAO_NS_ProxyConsumer* proxy_consumer, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& new_seq ACE_ENV_ARG_DECL); - - /// Subscribe <proxy_consumer> to the event type sequence list <seq>. - void un_publish (TAO_NS_ProxyConsumer* proxy_consumer, const TAO_NS_EventTypeSeq& seq, TAO_NS_EventTypeSeq& last_seq ACE_ENV_ARG_DECL); - - /// Consumer Map - TAO_NS_Consumer_Map* consumer_map_; - - /// Supplier Map - TAO_NS_Supplier_Map* supplier_map_; -}; - -/********************************************************************************/ - -/** - * @class TAO_NS_ProxyConsumer_Update_Worker - * - * @brief Inform ProxyConsumer of updates. - * - */ -class TAO_Notify_Export TAO_NS_ProxyConsumer_Update_Worker : public TAO_ESF_Worker<TAO_NS_ProxyConsumer> -{ -public: - TAO_NS_ProxyConsumer_Update_Worker (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed); - -protected: - ///= TAO_ESF_Worker method - void work (TAO_NS_ProxyConsumer* proxy ACE_ENV_ARG_DECL); - - const TAO_NS_EventTypeSeq& added_; - const TAO_NS_EventTypeSeq& removed_; -}; - -/********************************************************************************/ - -/** - * @class TAO_NS_ProxySupplier_Update_Worker - * - * @brief Inform ProxySupplier of updates. - * - */ -class TAO_Notify_Export TAO_NS_ProxySupplier_Update_Worker : public TAO_ESF_Worker<TAO_NS_ProxySupplier> -{ -public: - TAO_NS_ProxySupplier_Update_Worker (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed); - -protected: - ///= TAO_ESF_Worker method - void work (TAO_NS_ProxySupplier* proxy ACE_ENV_ARG_DECL); - - const TAO_NS_EventTypeSeq& added_; - const TAO_NS_EventTypeSeq& removed_; -}; - -/********************************************************************************/ - -#if defined (__ACE_INLINE__) -#include "Event_Manager.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENT_MANAGER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.inl b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.inl deleted file mode 100644 index 3ad395f331a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.inl +++ /dev/null @@ -1,57 +0,0 @@ -// $Id$ - -#include "ProxyConsumer.h" -#include "ProxySupplier.h" -#include "Event_Map_T.h" - -ACE_INLINE TAO_NS_Consumer_Map* -TAO_NS_Event_Manager::consumer_map (void) -{ - return this->consumer_map_; -} - -ACE_INLINE TAO_NS_Supplier_Map* -TAO_NS_Event_Manager::supplier_map (void) -{ - return this->supplier_map_; -} - -ACE_INLINE const TAO_NS_EventTypeSeq& -TAO_NS_Event_Manager::offered_types (void) -{ - return this->supplier_map_->event_types (); -} - -ACE_INLINE const TAO_NS_EventTypeSeq& -TAO_NS_Event_Manager::subscription_types (void) -{ - return this->consumer_map_->event_types (); -} - -/********************************************************************************/ - -ACE_INLINE TAO_NS_ProxyConsumer_Update_Worker::TAO_NS_ProxyConsumer_Update_Worker (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed) - :added_ (added), removed_ (removed) -{ -} - -ACE_INLINE void -TAO_NS_ProxyConsumer_Update_Worker::work (TAO_NS_ProxyConsumer* proxy ACE_ENV_ARG_DECL) -{ - proxy->types_changed (added_, removed_ ACE_ENV_ARG_PARAMETER); -} - -/********************************************************************************/ - -ACE_INLINE TAO_NS_ProxySupplier_Update_Worker::TAO_NS_ProxySupplier_Update_Worker (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed) - :added_ (added), removed_ (removed) -{ -} - -ACE_INLINE void -TAO_NS_ProxySupplier_Update_Worker::work (TAO_NS_ProxySupplier* proxy ACE_ENV_ARG_DECL) -{ - proxy->types_changed (added_, removed_ ACE_ENV_ARG_PARAMETER); -} - -/********************************************************************************/ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.cpp deleted file mode 100644 index 53573dafa90..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_EVENT_MAP_ENTRY_CPP -#define TAO_NS_EVENT_MAP_ENTRY_CPP - -#include "Event_Map_Entry_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Event_Map_Entry_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Event_Map_Entry_T, "$id$") - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Properties.h" -#include "Factory.h" - -template <class PROXY> -TAO_NS_Event_Map_Entry_T<PROXY>::TAO_NS_Event_Map_Entry_T (void) - : collection_ (0), count_ (0), usage_count_ (1) -{ -} - -template <class PROXY> -TAO_NS_Event_Map_Entry_T<PROXY>::~TAO_NS_Event_Map_Entry_T () -{ - delete collection_; -} - -template <class PROXY> void -TAO_NS_Event_Map_Entry_T<PROXY>::init (ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory (); - - factory->create (collection_ ACE_ENV_ARG_PARAMETER); -} - -template <class PROXY> void -TAO_NS_Event_Map_Entry_T<PROXY>::connected (PROXY* proxy ACE_ENV_ARG_DECL) -{ - this->collection_->connected (proxy ACE_ENV_ARG_PARAMETER); - ++count_; -} - -template <class PROXY> void -TAO_NS_Event_Map_Entry_T<PROXY>::disconnected (PROXY* proxy ACE_ENV_ARG_DECL) -{ - this->collection_->disconnected (proxy ACE_ENV_ARG_PARAMETER); - --count_; -} - -#endif /* TAO_NS_EVENT_MAP_ENTRY_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h deleted file mode 100644 index caca41aecf3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Event_Map_Entry_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENT_MAP_ENTRY_T_H -#define TAO_NS_EVENT_MAP_ENTRY_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Copy_Disabled.h" -#include "ace/Atomic_Op.h" -#include "tao/corba.h" - -template <class PROXY, class ACE_LOCK> class TAO_NS_Event_Map_T; -template <class PROXY> class TAO_ESF_Proxy_Collection; - -/** - * @class TAO_NS_Event_Map_Entry_T - * - * @brief The entry stored in the event map. - * - */ -template <class PROXY> -class TAO_NS_Event_Map_Entry_T : private ACE_Copy_Disabled -{ -public: - typedef TAO_ESF_Proxy_Collection<PROXY> COLLECTION; - - /// Constructor - TAO_NS_Event_Map_Entry_T (void); - - /// Destructor - ~TAO_NS_Event_Map_Entry_T (void); - - /// Init - Allocates collection - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Connect - void connected (PROXY* proxy ACE_ENV_ARG_DECL); - - /// Disconnect - void disconnected (PROXY* proxy ACE_ENV_ARG_DECL); - - /// Collection accessor - COLLECTION* collection (void); - - /// Count accessor - int count (void); - - ///= Reference counting methods. - // Incr the ref count. - CORBA::ULong _incr_refcnt (void); - - // Decr the ref count. This object is destroyed when the count is 0. - CORBA::ULong _decr_refcnt (void); - -protected: - /// The Collection - COLLECTION* collection_; - - /// Count of PROXY's connected in the collection; - int count_; - - /// Count of users accessing this entry. - ACE_Atomic_Op<TAO_SYNCH_MUTEX,int> usage_count_; -}; - -#if defined (__ACE_INLINE__) -#include "Event_Map_Entry_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Event_Map_Entry_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Event_Map_Entry_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENT_MAP_ENTRY_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.inl deleted file mode 100644 index b0dfa7c4676..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.inl +++ /dev/null @@ -1,25 +0,0 @@ -// $Id$ - -template <class PROXY> ACE_INLINE ACE_TYPENAME -TAO_NS_Event_Map_Entry_T<PROXY>::COLLECTION* -TAO_NS_Event_Map_Entry_T<PROXY>::collection (void) { - return collection_; -} - -template <class PROXY> ACE_INLINE int -TAO_NS_Event_Map_Entry_T<PROXY>::count (void) -{ - return this->count_; -} - -template <class PROXY> ACE_INLINE CORBA::ULong -TAO_NS_Event_Map_Entry_T<PROXY>::_incr_refcnt (void) -{ - return ++this->usage_count_; -} - -template <class PROXY> ACE_INLINE CORBA::ULong -TAO_NS_Event_Map_Entry_T<PROXY>::_decr_refcnt (void) -{ - return --this->usage_count_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer.h deleted file mode 100644 index 8b0887560d6..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Event_Map_Observer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENT_MAP_OBSERVER_H -#define TAO_NS_EVENT_MAP_OBSERVER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_NS_Event_Map_Observer - * - * @brief - * - */ -class TAO_Notify_Export TAO_NS_Event_Map_Observer -{ -public: - /// <event_type> was seen for the first time in the event map. - virtual void type_added (const TAO_NS_EventType& event_type) = 0; - - /// <event_type> does not have any proxy interested in it. - virtual void type_removed (const TAO_NS_EventType& event_type) = 0; -}; - -#include "ace/post.h" -#endif /* TAO_NS_EVENT_MAP_OBSERVER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.cpp deleted file mode 100644 index 255cd09c057..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// $Id$ - -#include "Event_Map_Observer_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Event_Map_Observer_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_Event_Map_Observer_T, "$id$") - -#include "Proxy.h" -#include "Peer.h" -#include "Dispatch_Observer_T.h" -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Event_Map_T.h" - -/******************************************************************************************/ - -template <class PROXY> -TAO_NS_Update_Added_Worker<PROXY>::TAO_NS_Update_Added_Worker (const TAO_NS_EventType& event_type, TAO_NS_Updates_Dispatch_Observer* dispatch_observer) - :event_type_ (event_type), dispatch_observer_ (dispatch_observer) -{ -} - -template <class PROXY> void -TAO_NS_Update_Added_Worker<PROXY>::work (PROXY* proxy ACE_ENV_ARG_DECL) -{ - proxy->peer()->type_added (this->event_type_); - this->dispatch_observer_->enqueue (proxy->peer()); // Tell the observer that this peer has a update pending. -} - -/******************************************************************************************/ - -template <class PROXY> -TAO_NS_Update_Removed_Worker<PROXY>::TAO_NS_Update_Removed_Worker (const TAO_NS_EventType& event_type, TAO_NS_Updates_Dispatch_Observer* dispatch_observer) - :event_type_ (event_type), dispatch_observer_ (dispatch_observer) -{ -} - -template <class PROXY> void -TAO_NS_Update_Removed_Worker<PROXY>::work (PROXY* proxy ACE_ENV_ARG_DECL) -{ - proxy->peer()->type_removed (this->event_type_); - this->dispatch_observer_->enqueue (proxy->peer()); // Tell the observer that this peer has a update pending. -} - -/******************************************************************************************/ - -template <class PROXY> -TAO_NS_Event_Map_Observer_T<PROXY>::TAO_NS_Event_Map_Observer_T (void) - :event_map_ (0), dispatch_observer_ (0) -{ -} - -template <class PROXY> -TAO_NS_Event_Map_Observer_T<PROXY>::~TAO_NS_Event_Map_Observer_T () -{ -} - -template <class PROXY> void -TAO_NS_Event_Map_Observer_T<PROXY>::init (EVENT_MAP* event_map, TAO_NS_Updates_Dispatch_Observer* dispatch_observer) -{ - this->event_map_ = event_map; - this->dispatch_observer_ = dispatch_observer; -} - -template <class PROXY> void -TAO_NS_Event_Map_Observer_T<PROXY>::type_added (const TAO_NS_EventType& event_type) -{ - UPDATE_ADDED_WORKER worker (event_type, this->dispatch_observer_); - - PROXY_COLLECTION* proxys = this->event_map_->find (event_type ACE_ENV_ARG_PARAMETER); - - if (proxys != 0) - proxys->for_each (&worker ACE_ENV_ARG_PARAMETER); - - // Get the default broadcast collection. - proxys = this->event_map_->broadcast_collection (); - - if (proxys != 0) - proxys->for_each (&worker ACE_ENV_ARG_PARAMETER); -} - -template <class PROXY> void -TAO_NS_Event_Map_Observer_T<PROXY>::type_removed (const TAO_NS_EventType& event_type) -{ - UPDATE_REMOVED_WORKER worker (event_type, this->dispatch_observer_); - - PROXY_COLLECTION* proxys = this->event_map_->find (event_type ACE_ENV_ARG_PARAMETER); - - if (proxys != 0) - proxys->for_each (&worker ACE_ENV_ARG_PARAMETER); - - // Get the default broadcast collection. - proxys = this->event_map_->broadcast_collection (); - - if (proxys != 0) - proxys->for_each (&worker ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.h deleted file mode 100644 index 4f01f9eaafa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.h +++ /dev/null @@ -1,126 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Event_Map_Observer_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_EVENT_MAP_OBSERVER_T_H -#define TAO_EVENT_MAP_OBSERVER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Types.h" -#include "Event_Map_Observer.h" -#include "orbsvcs/ESF/ESF_Worker.h" - -/** - * @class TAO_NS_Update_Added_Worker_T - * - * @brief Inform Peers of new offered type. - * - */ -template <class PROXY> -class TAO_Notify_Export TAO_NS_Update_Added_Worker : public TAO_ESF_Worker<PROXY> -{ -public: - TAO_NS_Update_Added_Worker (const TAO_NS_EventType& event_type, TAO_NS_Updates_Dispatch_Observer* dispatch_observer); - -protected: - ///= TAO_ESF_Worker method - void work (PROXY* proxy ACE_ENV_ARG_DECL); - - const TAO_NS_EventType& event_type_; - - /// Updates Observer. - TAO_NS_Updates_Dispatch_Observer* dispatch_observer_; -}; - -/*******************************************************************************************/ - - -/** - * @class TAO_NS_Update_Removed_Worker_T - * - * @brief Inform Peers of offered type removed. - * - */ -template <class PROXY> -class TAO_Notify_Export TAO_NS_Update_Removed_Worker : public TAO_ESF_Worker<PROXY> -{ -public: - TAO_NS_Update_Removed_Worker (const TAO_NS_EventType& event_type, TAO_NS_Updates_Dispatch_Observer* dispatch_observer); - -protected: - ///= TAO_ESF_Worker method - void work (PROXY* proxy ACE_ENV_ARG_DECL); - - const TAO_NS_EventType& event_type_; - - /// Updates Observer. - TAO_NS_Updates_Dispatch_Observer* dispatch_observer_; -}; - -/*******************************************************************************************/ - -/** - * @class TAO_Event_Map_Observer_T - * - * @brief Observe significant changes to the Event Map. - * - */ -template <class PROXY> -class TAO_Notify_Export TAO_NS_Event_Map_Observer_T : public TAO_NS_Event_Map_Observer -{ - typedef TAO_NS_Event_Map_T<PROXY, TAO_SYNCH_RW_MUTEX> EVENT_MAP; - typedef TAO_NS_Update_Added_Worker<PROXY> UPDATE_ADDED_WORKER; - typedef TAO_NS_Update_Removed_Worker<PROXY> UPDATE_REMOVED_WORKER; - typedef TAO_ESF_Proxy_Collection<PROXY> PROXY_COLLECTION; - -public: - /// Constructor - TAO_NS_Event_Map_Observer_T (void); - - /// Destructor - ~TAO_NS_Event_Map_Observer_T (); - - /// Set the inverse event map and the updates dispatch observer. - void init (EVENT_MAP* event_map, TAO_NS_Updates_Dispatch_Observer* dispatch_observer); - - /// <event_type> was seen for the first time in the event map. - virtual void type_added (const TAO_NS_EventType& event_type); - - /// <event_type> does not have any proxy interested in it. - virtual void type_removed (const TAO_NS_EventType& event_type); - -protected: - /// Event Map - EVENT_MAP* event_map_; - - /// Updates Observer. - TAO_NS_Updates_Dispatch_Observer* dispatch_observer_; -}; - -#if defined (__ACE_INLINE__) -#include "Event_Map_Observer_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Event_Map_Observer_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Event_Map_Observer_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_EVENT_MAP_OBSERVER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.inl deleted file mode 100644 index 64d00a6df8f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Observer_T.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Event_Map_Observer_T.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.cpp deleted file mode 100644 index fc2ba2f0c71..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.cpp +++ /dev/null @@ -1,164 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_EVENT_MAP_T_C -#define TAO_NS_EVENT_MAP_T_C - -#include "Event_Map_T.h" -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Event_Map_Entry_T.h" -#include "Properties.h" -#include "Factory.h" - -#if ! defined (__ACE_INLINE__) -#include "Event_Map_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Event_Map_T, "$Id$") - -template <class PROXY, class ACE_LOCK> -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::TAO_NS_Event_Map_T (void) - :proxy_count_ (0) -{ - -} - -template <class PROXY, class ACE_LOCK> -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::~TAO_NS_Event_Map_T () -{ -} - -template <class PROXY, class ACE_LOCK> void -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::init (ACE_ENV_SINGLE_ARG_DECL) -{ - this->broadcast_entry_.init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->updates_entry_.init (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class PROXY, class ACE_LOCK> void -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::connect (PROXY* proxy ACE_ENV_ARG_DECL) -{ - this->updates_entry_.connected (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_); - ++this->proxy_count_; -} - -template <class PROXY, class ACE_LOCK> void -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::disconnect (PROXY* proxy ACE_ENV_ARG_DECL) -{ - this->updates_entry_.disconnected (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_); - --this->proxy_count_; -} - -template <class PROXY, class ACE_LOCK> int -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::insert (PROXY* proxy, const TAO_NS_EventType& event_type ACE_ENV_ARG_DECL) -{ - ENTRY* entry; - - int result = -1; - - if (event_type.is_special () == 1) - { - entry = &this->broadcast_entry_; - - result = 0; - } - else - { - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - result = this->map_.find (event_type, entry); - } - - if (result == -1) // This type is being seen for the first time. - { - ACE_NEW_THROW_EX (entry, - ENTRY (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (-1); - - entry->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - entry->connected (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - if (map_.bind (event_type, entry) == -1) - ACE_THROW_RETURN (CORBA::NO_MEMORY (), -1); - - if (this->event_types_.insert (event_type) == -1) - return -1; - - return 1; - } - else // Add to existing entry or the broadcast entry. - { - entry->connected (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - return 0; -} - -template <class PROXY, class ACE_LOCK> int -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::remove (PROXY* proxy, const TAO_NS_EventType& event_type ACE_ENV_ARG_DECL) -{ - ENTRY* entry; - - if (event_type.is_special () == 1) - { - entry = &this->broadcast_entry_; - - entry->disconnected (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - else - { - int result = -1; - - { - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - result = this->map_.find (event_type, entry); - } - - if (result == 0) - { - entry->disconnected (proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (entry->count () == 0) - { - /// Exec a strategy for removing entries. - /// Strategy 1: remove_immediately - /// Strategy 2: remove a bunch_after crossing a threshold - /// Strategy 3: use cached allocator and 1 - - // Strategy 1: - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - this->map_.unbind (event_type); - - if (entry->_decr_refcnt () == 0) - delete entry; - - if (this->event_types_.remove (event_type) == -1) - return -1; - - return 1; - } - } - } - - return 0; -} - -#endif /* TAO_NS_EVENT_MAP_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h deleted file mode 100644 index b7219b3f509..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Event_Map_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_EVENT_MAP_T_H -#define TAO_NS_EVENT_MAP_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Hash_Map_Manager.h" -#include "ace/CORBA_macros.h" - -#include "EventType.h" -#include "Event_Map_Entry_T.h" -#include "EventTypeSeq.h" - -/** - * @class TAO_NS_Event_Map_T - * - * @brief Template class for storing the collection of Proxys. - * - */ -template <class PROXY, class ACE_LOCK> -class TAO_NS_Event_Map_T -{ - -public: - typedef TAO_NS_Event_Map_Entry_T<PROXY> ENTRY; - - /// Constuctor - TAO_NS_Event_Map_T (void); - - /// Destructor - ~TAO_NS_Event_Map_T (); - - /// Init - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Connect a PROXY - void connect (PROXY* proxy ACE_ENV_ARG_DECL); - - /// Disconnect a PROXY - void disconnect (PROXY* proxy ACE_ENV_ARG_DECL); - - /// Associate PROXY and event_type. - /// Returns 1 if <event_type> is being seem for the 1st time otherwise returns 0. - /// Returns -1 on error. - int insert (PROXY* proxy, const TAO_NS_EventType& event_type ACE_ENV_ARG_DECL); - - /// Remove association of PROXY and event_type. - /// Returns 1 if <event_type> is being seem for the last time otherwise returns 0. - /// Returns -1 on error. - int remove (PROXY* proxy, const TAO_NS_EventType& event_type ACE_ENV_ARG_DECL); - - /// Find the collection mapped to the <event_type> - /// The usage_count on the entry returned is incremented. - ENTRY* find (const TAO_NS_EventType& event_type ACE_ENV_ARG_DECL); - - /// Find the default broadcast list. - ACE_TYPENAME ENTRY::COLLECTION* broadcast_collection (void); - - /// Find the update list. This is all the PROXYS connected to this Map. - ACE_TYPENAME ENTRY::COLLECTION* updates_collection (void); - - /// Release the usage count on this entry. - void release (ENTRY* entry); - - /// Access all the event types available - const TAO_NS_EventTypeSeq& event_types (void); - - /// Access number of proxys connected in all. - int proxy_count (void); - -protected: - /// The Map that stores eventtype to entry mapping. - ACE_Hash_Map_Manager <TAO_NS_EventType, ENTRY*, ACE_SYNCH_NULL_MUTEX> map_; - - /// The lock to use. - ACE_LOCK lock_; - - /// Count of proxys connected. - int proxy_count_; - - /// The default broadcast list for EventType::special. - ENTRY broadcast_entry_; - - /// Update Entry - Keeps a list of all PROXY's connected to this Map. Updates are send to this list. - ENTRY updates_entry_; - - /// The event types that are available in this map. - TAO_NS_EventTypeSeq event_types_; -}; - -#if defined (__ACE_INLINE__) -#include "Event_Map_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Event_Map_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Event_Map_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_EVENT_MAP_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.inl deleted file mode 100644 index fb81c86a0b0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.inl +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ - -template <class PROXY, class ACE_LOCK> ACE_INLINE TAO_NS_Event_Map_Entry_T<PROXY>* -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::find (const TAO_NS_EventType& event_type ACE_ENV_ARG_DECL_NOT_USED) -{ - TAO_NS_Event_Map_Entry_T<PROXY>* entry; - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, 0); - - if (map_.find (event_type, entry) == 0) - { - entry->_incr_refcnt (); - return entry; - } - else - return 0; -} - -template <class PROXY, class ACE_LOCK> ACE_INLINE void -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::release (ENTRY* entry) -{ - ACE_WRITE_GUARD (ACE_LOCK, ace_mon, this->lock_); - - if (entry->_decr_refcnt () == 0) - delete entry; -} - -template <class PROXY, class ACE_LOCK> ACE_INLINE ACE_TYPENAME TAO_NS_Event_Map_Entry_T<PROXY>::COLLECTION* -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::broadcast_collection (void) -{ - return this->broadcast_entry_.collection (); -} - -template <class PROXY, class ACE_LOCK> ACE_INLINE ACE_TYPENAME TAO_NS_Event_Map_Entry_T<PROXY>::COLLECTION* -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::updates_collection (void) -{ - return this->updates_entry_.collection (); -} - -template <class PROXY, class ACE_LOCK> ACE_INLINE int -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::proxy_count (void) -{ - return this->proxy_count_; -} - -template <class PROXY, class ACE_LOCK> ACE_INLINE const TAO_NS_EventTypeSeq& -TAO_NS_Event_Map_T<PROXY, ACE_LOCK>::event_types (void) -{ - return this->event_types_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Factory.cpp deleted file mode 100644 index 3a4eecdde33..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Factory.cpp +++ /dev/null @@ -1,210 +0,0 @@ -// $Id$ - -#include "Factory.h" -#include "EventChannelFactory.h" -#include "EventChannel.h" -#include "Admin.h" -#include "Proxy.h" -#include "SupplierAdmin.h" -#include "ConsumerAdmin.h" -#include "Structured/StructuredProxyPushConsumer.h" -#include "Structured/StructuredProxyPushSupplier_Tie.h" -#include "QoSAdmin.h" - -#include "orbsvcs/ESF/ESF_Proxy_List.h" -#include "orbsvcs/ESF/ESF_Copy_On_Write.h" - -#if ! defined (__ACE_INLINE__) -#include "Factory.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RN_Notify, TAO_NS_Factory, "$Id$") - - -TAO_NS_Factory::TAO_NS_Factory (void) -{ -} - -TAO_NS_Factory::~TAO_NS_Factory () -{ -} - -ACE_Lock* -TAO_NS_Factory::create_object_lock (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_Lock* lock; - ACE_NEW_THROW_EX (lock, - ACE_Lock_Adapter<TAO_SYNCH_MUTEX> (), - CORBA::NO_MEMORY ()); - return lock; -} - -void -TAO_NS_Factory::create (TAO_NS_QoSAdmin*& qos_admin ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (qos_admin, TAO_NS_QoSAdmin (), CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_Peer_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_Peer>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_Peer, TAO_ESF_Proxy_List<TAO_NS_Peer>,ProxyIterator, ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_ProxyConsumer, TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ProxyIterator, ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_ProxySupplier, TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ProxyIterator, ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_Consumer_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_Consumer>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_Consumer, TAO_ESF_Proxy_List<TAO_NS_Consumer>,ProxyIterator, ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_EventChannel>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_EventChannel, TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ProxyIterator, ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_Admin_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_Admin>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_Admin, TAO_ESF_Proxy_List<TAO_NS_Admin>,ProxyIterator, ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_Proxy_Collection*& collection ACE_ENV_SINGLE_ARG_DECL) -{ - typedef TAO_ESF_Proxy_List<TAO_NS_Proxy>::Iterator ProxyIterator; - typedef TAO_ESF_Copy_On_Write<TAO_NS_Proxy,TAO_ESF_Proxy_List<TAO_NS_Proxy>,ProxyIterator,ACE_SYNCH> ProxyType; - - ACE_NEW_THROW_EX (collection, - ProxyType (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_EventChannelFactory*& factory ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (factory, - TAO_NS_EventChannelFactory (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_EventChannel*& channel ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (channel, - TAO_NS_EventChannel (), - CORBA::NO_MEMORY ()); -} - - -void -TAO_NS_Factory::create (TAO_NS_SupplierAdmin*& admin ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (admin, - TAO_NS_SupplierAdmin (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (admin, - TAO_NS_ConsumerAdmin (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_StructuredProxyPushConsumer (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_StructuredProxyPushSupplier_Tie* object; - - ACE_NEW_THROW_EX (object, - TAO_NS_StructuredProxyPushSupplier_Tie (), - CORBA::NO_MEMORY ()); - proxy = object->_tied_object (); - - /// set correct callback. - proxy->destroy_callback (object); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_Container_T <TAO_NS_EventChannelFactory, TAO_NS_NULL_PARENT>; -template class TAO_NS_Container_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory>; -template class TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel>; - -template class TAO_NS_Object_T <TAO_NS_EC_NULL_PARENT>; -template class TAO_NS_Object_T <TAO_NS_EventChannelfactory>; -template class TAO_NS_Object_T <TAO_NS_EventChannel>; -template class TAO_NS_Object_T <TAO_NS_Admin>; - -template class TAO_NS_Container_T <TAO_NS_EventChannel>; -template class TAO_NS_Container_T <TAO_NS_Admin>; -template class TAO_NS_Container_T <TAO_NS_Proxy>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_Container_T <TAO_NS_EventChannelFactory, TAO_NS_NULL_PARENT> -#pragma instantiate TAO_NS_Container_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory> -#pragma instantiate TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel> - -#pragma instantiate TAO_NS_Object_T <TAO_NS_EC_NULL_PARENT> -#pragma instantiate TAO_NS_Object_T <TAO_NS_EventChannelfactory> -#pragma instantiate TAO_NS_Object_T <TAO_NS_EventChannel> -#pragma instantiate TAO_NS_Object_T <TAO_NS_Admin> - -#pragma instantiate TAO_NS_Container_T <TAO_NS_EventChannel> -#pragma instantiate TAO_NS_Container_T <TAO_NS_Admin> -#pragma instantiate TAO_NS_Container_T <TAO_NS_Proxy> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Factory.h deleted file mode 100644 index 4f84b9aaffe..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Factory.h +++ /dev/null @@ -1,126 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_FACTORY_H -#define TAO_NS_FACTORY_H -#include "ace/pre.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "ace/CORBA_macros.h" -#include "ace/Service_Object.h" - -class ACE_Lock; -class TAO_NS_Object; -class TAO_NS_EventChannelFactory; -class TAO_NS_EventChannel; -class TAO_NS_SupplierAdmin; -class TAO_NS_ConsumerAdmin; -class TAO_NS_ProxyPushConsumer; -class TAO_NS_CosEC_ProxyPushSupplier; -class TAO_NS_CosEC_ProxyPushConsumer; -class TAO_NS_ProxyPushSupplier; -class TAO_NS_StructuredProxyPushConsumer; -class TAO_NS_StructuredProxyPushSupplier; -class TAO_NS_SequenceProxyPushConsumer; -class TAO_NS_SequenceProxyPushSupplier; -class TAO_NS_ProxyConsumer; -class TAO_NS_ProxySupplier; -class TAO_NS_ConsumerAdmin; -class TAO_NS_SupplierAdmin; -class TAO_NS_Proxy; -class TAO_NS_Consumer; -class TAO_NS_Supplier; -class TAO_NS_Peer; - -template <class PROXY> class TAO_ESF_Proxy_Collection; - -typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer> TAO_NS_ProxyConsumer_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier> TAO_NS_ProxySupplier_Collection; - -typedef TAO_ESF_Proxy_Collection<TAO_NS_EventChannel> TAO_NS_EventChannel_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_ConsumerAdmin> TAO_NS_ConsumerAdmin_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_SupplierAdmin> TAO_NS_SupplierAdmin_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_Proxy> TAO_NS_Proxy_Collection; - -/** - * @class TAO_NS_Factory - * - * @brief Factory interface for creating Notify Objects. - * - */ -class /*TAO_Notify_Export*/ TAO_NS_Factory : public ACE_Service_Object -{ -public: - /// Create ProxySupplier Collection - virtual void create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_ARG_DECL) = 0; - - /// Create ProxyConsumer Collection - virtual void create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL) = 0; - - /// Create EventChannel Collection - virtual void create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_ARG_DECL) = 0; - - /// Create ConsumerAdmin Collection - virtual void create (TAO_NS_ConsumerAdmin_Collection*& collection ACE_ENV_ARG_DECL) = 0; - - /// Create SupplierAdmin Collection - virtual void create (TAO_NS_SupplierAdmin_Collection*& collection ACE_ENV_ARG_DECL) = 0; - - /// Create Proxy Collection - virtual void create (TAO_NS_Proxy_Collection*& collection ACE_ENV_ARG_DECL) = 0; - - /// Create EventChannelFactory - virtual void create (TAO_NS_EventChannelFactory*& channel_factory ACE_ENV_ARG_DECL) = 0; - - /// Create EventChannel - virtual void create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL) = 0; - - /// Create SupplierAdmin - virtual void create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL) = 0; - - /// Create ConsumerAdmin - virtual void create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL) = 0; - - /// Create ProxyPushConsumer - virtual void create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create ProxyPushSupplier - virtual void create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create CosEC_ProxyPushConsumer - virtual void create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create CosEC_ProxyPushSupplier - virtual void create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create StructuredProxyPushConsumer - virtual void create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create StructuredProxyPushSupplier - virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create SequenceProxyPushConsumer - virtual void create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; - - /// Create SequenceProxyPushSupplier - virtual void create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; -}; - -#if defined (__ACE_INLINE__) -#include "Factory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/Factory.inl deleted file mode 100644 index 7750f22c607..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Factory.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Factory.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp deleted file mode 100644 index 4a804fe3f4b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* -*- C++ -*- $Id$ */ -#include "FilterAdmin.h" -#include "ace/Refcounted_Auto_Ptr.h" - -ACE_RCSID(Notify, FilterAdmin, "$Id$") - -// Implementation skeleton constructor -TAO_NS_FilterAdmin::TAO_NS_FilterAdmin (void) -{ -} - -// Implementation skeleton destructor -TAO_NS_FilterAdmin::~TAO_NS_FilterAdmin (void) -{ -} - -CORBA::Boolean -TAO_NS_FilterAdmin::match (const TAO_NS_Event_var &event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - // If no filter is active, match is successfull. - if (this->filter_list_.current_size () == 0) - return 1; - - // We want to return true if atleast one constraint matches. - FILTER_LIST::ITERATOR iter (this->filter_list_); - FILTER_LIST::ENTRY *entry; - CORBA::Boolean ret_val = 0; - - for (; iter.next (entry); iter.advance ()) - { - ret_val = event->do_match (entry->int_id_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if (ret_val == 1) - return 1; - } - - return 0; -} - -CosNotifyFilter::FilterID -TAO_NS_FilterAdmin::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (CORBA::is_nil (new_filter)) - ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0); - - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - CosNotifyFilter::FilterID new_id = this->filter_ids_.id (); - - CosNotifyFilter::Filter_var new_filter_var = - CosNotifyFilter::Filter::_duplicate (new_filter); - - if (this->filter_list_.bind (new_id, new_filter_var) == -1) - ACE_THROW_RETURN (CORBA::INTERNAL (), - 0); - else - return new_id; -} - -void -TAO_NS_FilterAdmin::remove_filter (CosNotifyFilter::FilterID filter_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->filter_list_.unbind (filter_id) == -1) - ACE_THROW (CosNotifyFilter::FilterNotFound ()); -} - -CosNotifyFilter::Filter_ptr -TAO_NS_FilterAdmin::get_filter (CosNotifyFilter::FilterID filter_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ()); - - CosNotifyFilter::Filter_var filter_var; - - if (this->filter_list_.find (filter_id, - filter_var) == -1) - ACE_THROW_RETURN (CosNotifyFilter::FilterNotFound (), - 0); - - return filter_var._retn (); -} - -CosNotifyFilter::FilterIDSeq* -TAO_NS_FilterAdmin::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - // Figure out the length of the list. - size_t len = this->filter_list_.current_size (); - - CosNotifyFilter::FilterIDSeq* list_ptr; - - // Allocate the list of <len> length. - ACE_NEW_THROW_EX (list_ptr, - CosNotifyFilter::FilterIDSeq, - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - CosNotifyFilter::FilterIDSeq_var list (list_ptr); - - list->length (len); - - FILTER_LIST::ITERATOR iter (this->filter_list_); - FILTER_LIST::ENTRY *entry; - - u_int index; - - for (index = 0; iter.next (entry) != 0; iter.advance (), ++index) - { - list[index] = entry->ext_id_; - } - - return list._retn (); -} - -void -TAO_NS_FilterAdmin::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->filter_list_.unbind_all (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Hash_Map_Entry<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var>; -template class ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Hash_Map_Entry<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var> -#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h deleted file mode 100644 index 89998714834..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h +++ /dev/null @@ -1,88 +0,0 @@ -//============================================================================= -/** - * @file FilterAdmin.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_FILTERADMIN_H -#define NOTIFY_FILTERADMIN_H -#include "ace/pre.h" - -#include "orbsvcs/CosNotifyFilterS.h" -#include "ace/Hash_Map_Manager.h" -#include "ID_Factory.h" -#include "Event.h" -#include "notify_export.h" - -/** - * @class TAO_NS_FilterAdmin - * - * @brief FilterAdmin interface methods implementation. - * - */ -class TAO_Notify_Export TAO_NS_FilterAdmin -{ - - public: - /// Constructor - TAO_NS_FilterAdmin (void); - - /// Destructor - virtual ~TAO_NS_FilterAdmin (void); - - // = match operation on all the filters - /// See if any of the filters match. - CORBA::Boolean match (const TAO_NS_Event_var &event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - - virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::Filter_ptr get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::FilterIDSeq * get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - private: - typedef ACE_Hash_Map_Manager <CosNotifyFilter::FilterID, CosNotifyFilter::Filter_var, ACE_SYNCH_NULL_MUTEX> FILTER_LIST; - - /// Mutex to serialize access to data members. - TAO_SYNCH_MUTEX lock_; - - /// List of filters - FILTER_LIST filter_list_; - - /// Id generator for proxy suppliers - TAO_NS_ID_Factory filter_ids_; -}; - -#include "ace/post.h" -#endif /* NOTIFY_FILTERADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h b/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h deleted file mode 100644 index 27708b31cd9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file FilterFactory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_FILTERFACTORY_H -#define TAO_NS_FILTERFACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Service_Object.h" -#include "tao/PortableServer/PortableServer.h" - -/** - * @class TAO_NS_FilterFactory - * - * @brief Service Object to obtain a CosNotifyFilter::FilterFactory reference. - * - */ -class /*TAO_Notify_Export*/ TAO_NS_FilterFactory : public ACE_Service_Object -{ -public: - /// Factory method to create a FilterFactory reference - /// The Factory is activated in the default POA. The filters created are activated in the <filter_poa>. - virtual CosNotifyFilter::FilterFactory_ptr create (PortableServer::POA_var& filter_poa ACE_ENV_ARG_DECL) = 0; -}; - -#include "ace/post.h" -#endif /* TAO_NS_FILTERFACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp deleted file mode 100644 index 1c560a73503..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_FIND_WORKER_T_CPP -#define TAO_NS_FIND_WORKER_T_CPP - -#include "Find_Worker_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Find_Worker_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Find_Worker_T, "$id$") - -template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> -TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::TAO_NS_Find_Worker_T (void) - :id_ (0), result_ (0) -{ -} - -template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> TYPE* -TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::find (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL) -{ - this->id_ = id; - - container.collection ()->for_each (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return this->result_; -} - -template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> INTERFACE_PTR -TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::resolve (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL) -{ - this->find (id, container ACE_ENV_ARG_PARAMETER); - - if (this->result_ == 0) - ACE_THROW_RETURN (EXCEPTION () - , INTERFACE::_nil ()); - - CORBA::Object_var object = this->result_->ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (INTERFACE::_nil ()); - - return INTERFACE::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - -} - -#endif /* TAO_NS_FIND_WORKER_T_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h deleted file mode 100644 index 172b64c2b56..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Find_Worker_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_FIND_WORKER_T_H -#define TAO_NS_FIND_WORKER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "orbsvcs/ESF/ESF_Worker.h" -#include "Container_T.h" - -/** - * @class TAO_NS_Find_Worker_T - * - * @brief Helper to locate a TYPE given its ID. - * - */ -template <class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> -class TAO_Notify_Export TAO_NS_Find_Worker_T : public TAO_ESF_Worker<TYPE> -{ - typedef TAO_NS_Container_T<TYPE> CONTAINER; - typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION; - -public: - /// Constructor - TAO_NS_Find_Worker_T (void); - - /// Find the Type. - TYPE* find (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL); - - /// Find and resolve to the Interface. - INTERFACE_PTR resolve (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL); - -protected: - ///= TAO_ESF_Worker method - void work (TYPE* object ACE_ENV_ARG_DECL); - - /// The id we're looking for. - TAO_NS_Object::ID id_; - - /// The result - TYPE* result_; -}; - -#if defined (__ACE_INLINE__) -#include "Find_Worker_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Find_Worker_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Find_Worker_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_FIND_WORKER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl deleted file mode 100644 index b93dd01c819..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl +++ /dev/null @@ -1,8 +0,0 @@ -// $Id$ - -template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> ACE_INLINE void -TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::work (TYPE* type ACE_ENV_ARG_DECL_NOT_USED) -{ - if (type->id () == this->id_) - this->result_ = type; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.cpp deleted file mode 100644 index 466a2ea8fb4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "ID_Factory.h" - -#if ! defined (__ACE_INLINE__) -#include "ID_Factory.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_ID_Factory, "$Id$") - -TAO_NS_ID_Factory::TAO_NS_ID_Factory (void) -{ -} - -TAO_NS_ID_Factory::~TAO_NS_ID_Factory () -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h deleted file mode 100644 index bd756a57ed3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ID_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_ID_FACTORY_H -#define TAO_NS_ID_FACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Atomic_Op.h" -#include "Object.h" - -/** - * @class TAO_NS_ID_Factory - * - * @brief A simple factory for generating ID's for objects created by Notify. - * - */ -class TAO_Notify_Export TAO_NS_ID_Factory -{ -public: - /// Constuctor - TAO_NS_ID_Factory (void); - - /// Destructor - ~TAO_NS_ID_Factory (); - - TAO_NS_Object::ID id (void); - -private: - ACE_Atomic_Op<TAO_SYNCH_MUTEX, TAO_NS_Object::ID> seed_; -}; - - -#if defined (__ACE_INLINE__) -#include "ID_Factory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_ID_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl deleted file mode 100644 index 3520fc9bb7a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_Object::ID -TAO_NS_ID_Factory::id (void) -{ - return ++seed_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request.cpp deleted file mode 100644 index 345c9da754e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ - -#include "Method_Request.h" - -#if ! defined (__ACE_INLINE__) -#include "Method_Request.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Method_Request, "$Id$") - -TAO_NS_Method_Request_Event::TAO_NS_Method_Request_Event (const TAO_NS_Event_var& event) - :event_ (event) -{ - // Set the parameters that affect queuing in the message queue. - // The ACE_Message_Block priorities go from 0 (lowest) to ULONG_MAX - // (highest), while the Notification Events go from -32767 (lowest, - // even though CORBA::Short goes to -32768) to 32767 (highest). - - // Convert to CORBA::Long to preserve the sign. Conversion to - // unsigned long will happen automatically and we do not have to worry - // about losing the number in the addition since priority () returns a - // CORBA::Short. - this->msg_priority ((CORBA::Long)this->event_->priority ().value () + - PRIORITY_BASE); - - // The deadline time for the message block is absolute, while the - // timeout for the event is relative to the time it was received. - // So, we do a little conversion and set it on the message block (us) - - TAO_NS_Property_Time& timeout = this->event_->timeout (); - - if (timeout.is_valid () && timeout != 0) - { - // I am multiplying timeout () by 1 because it returns a - // CORBA::ULongLong, which on some platforms doesn't automatically - // convert to the long that the ACE_Time_Value expects. The / - // operator returns a 32-bit integer. - ACE_Time_Value current = ACE_OS::gettimeofday () + -# if defined (ACE_CONFIG_WIN32_H) - ACE_Time_Value ( - ACE_static_cast (long, - timeout.value ())); -# else - ACE_Time_Value (timeout.value () / 1); -# endif /* ACE_CONFIG_WIN32_H */ - this->msg_deadline_time (current); - } -} - -TAO_NS_Method_Request_Event::~TAO_NS_Method_Request_Event () -{ -} - -int -TAO_NS_Method_Request_Event::execute (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - return -1; -} - -TAO_NS_Method_Request* -TAO_NS_Method_Request_Event::copy (void) -{ - return new TAO_NS_Method_Request_Event (this->event_); -} - -const TAO_NS_Event_var& -TAO_NS_Method_Request_Event::event (void) -{ - return this->event_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h deleted file mode 100644 index 4124b82b21e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Method_Request.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_METHOD_REQUEST_H -#define TAO_NS_METHOD_REQUEST_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Message_Block.h" -#include "ace/Refcounted_Auto_Ptr.h" -#include "Event.h" - -/** - * @class TAO_NS_Method_Request - * - * @brief Interface for NS method Requests - * - */ -class TAO_Notify_Export TAO_NS_Method_Request : public ACE_Message_Block -{ -public: - enum {PRIORITY_BASE = 32768}; - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL) = 0; - - /// Create a copy of this object. - virtual TAO_NS_Method_Request* copy (void) = 0; -}; - -/***********************************************************************/ - -/** - * @class TAO_NS_Method_Request_Event - * - * @brief Base class for NS method Requests on Events. - * - */ -class TAO_Notify_Export TAO_NS_Method_Request_Event : public TAO_NS_Method_Request -{ -public: - /// Constuctor - TAO_NS_Method_Request_Event (const TAO_NS_Event_var& event); - - /// Destructor - virtual ~TAO_NS_Method_Request_Event (); - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - - /// Create a copy of this object. - virtual TAO_NS_Method_Request* copy (void); - - /// Obtain the event. - const TAO_NS_Event_var& event (void); - -protected: - const TAO_NS_Event_var event_; -}; - - -#if defined (__ACE_INLINE__) -#include "Method_Request.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_METHOD_REQUEST_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.inl b/TAO/orbsvcs/orbsvcs/Notify/Method_Request.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp deleted file mode 100644 index caa1d7de399..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -#include "Method_Request_Dispatch.h" - -#if ! defined (__ACE_INLINE__) -#include "Method_Request_Dispatch.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Dispatch, "$Id$") - -#include "tao/debug.h" -#include "ProxySupplier.h" -#include "Consumer.h" -#include "Admin.h" -#include "ConsumerAdmin.h" - -TAO_NS_Method_Request_Dispatch::TAO_NS_Method_Request_Dispatch (const TAO_NS_Event_var& event, TAO_NS_ProxySupplier* proxy_supplier) - : TAO_NS_Method_Request_Event (event), proxy_supplier_ (proxy_supplier), refcountable_guard_ (*proxy_supplier) -{ -} - -TAO_NS_Method_Request_Dispatch::~TAO_NS_Method_Request_Dispatch () -{ -} - -TAO_NS_Method_Request* -TAO_NS_Method_Request_Dispatch::copy (void) -{ - /// @@use factory - return new TAO_NS_Method_Request_Dispatch (this->event_, this->proxy_supplier_); -} - -int -TAO_NS_Method_Request_Dispatch::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->proxy_supplier_->has_shutdown ()) - return 0; // If we were shutdown while waiting in the queue, return with no action. - - TAO_NS_Admin* parent = this->proxy_supplier_->consumer_admin (); - - CORBA::Boolean val = this->proxy_supplier_->check_filters (this->event_, - parent->filter_admin (), - parent->filter_operator () - ACE_ENV_ARG_PARAMETER); - - if (TAO_debug_level > 1) - ACE_DEBUG ((LM_DEBUG, "Proxysupplier %x filter eval result = %d",this->proxy_supplier_ , val)); - - // Filter failed - do nothing. - if (val == 0) - return 0; - - ACE_TRY - { - TAO_NS_Consumer* consumer = this->proxy_supplier_->consumer (); - - if (consumer != 0) - { - consumer->push (this->event_ ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - if (TAO_debug_level > 0) - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "TAO_NS_Method_Request_Dispatch::: error sending event. \n "); - } - ACE_ENDTRY; - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h deleted file mode 100644 index 862608c46a3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Method_Request_Dispatch.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_DISPATCH_METHOD_REQUEST_H -#define TAO_NS_DISPATCH_METHOD_REQUEST_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Method_Request.h" -#include "Refcountable.h" - -class TAO_NS_ProxySupplier; - -/** - * @class TAO_NS_Method_Request_Dispatch - * - * @brief Dispatchs an event to a proxy supplier. - * - */ -class TAO_Notify_Export TAO_NS_Method_Request_Dispatch : public TAO_NS_Method_Request_Event -{ -public: - /// Constuctor - TAO_NS_Method_Request_Dispatch (const TAO_NS_Event_var& event, TAO_NS_ProxySupplier* proxy_supplier); - - /// Destructor - ~TAO_NS_Method_Request_Dispatch (); - - /// Create a copy of this object. - TAO_NS_Method_Request* copy (void); - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - -private: - /// Proxy Supplier that we use. - TAO_NS_ProxySupplier* proxy_supplier_; - - /// Guard to automatically inc/decr ref count on the proxy. - TAO_NS_Refcountable_Guard refcountable_guard_; -}; - -#if defined (__ACE_INLINE__) -#include "Method_Request_Dispatch.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_DISPATCH_METHOD_REQUEST_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.inl b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp deleted file mode 100644 index 83626a87a1c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// $Id$ - -#include "Method_Request_Dispatch_No_Filtering.h" - -#if ! defined (__ACE_INLINE__) -#include "Method_Request_Dispatch_No_Filtering.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Dispatch_No_Filtering, "$Id$") - -#include "tao/debug.h" -#include "ProxySupplier.h" -#include "Consumer.h" - -TAO_NS_Method_Request_Dispatch_No_Filtering::TAO_NS_Method_Request_Dispatch_No_Filtering (const TAO_NS_Event_var& event, TAO_NS_ProxySupplier* proxy_supplier) - : TAO_NS_Method_Request_Event (event), proxy_supplier_ (proxy_supplier), refcountable_guard_ (*proxy_supplier) -{ -} - -TAO_NS_Method_Request_Dispatch_No_Filtering::~TAO_NS_Method_Request_Dispatch_No_Filtering () -{ -} - -TAO_NS_Method_Request* -TAO_NS_Method_Request_Dispatch_No_Filtering::copy (void) -{ - /// @@use factory - return new TAO_NS_Method_Request_Dispatch_No_Filtering (this->event_, this->proxy_supplier_); -} - -int -TAO_NS_Method_Request_Dispatch_No_Filtering::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->proxy_supplier_->has_shutdown ()) - return 0; // If we were shutdown while waiting in the queue, return with no action. - - ACE_TRY - { - this->proxy_supplier_->consumer ()->push (this->event_ ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::UserException, ue) - { - ACE_PRINT_EXCEPTION (ue, - "TAO_NS_Method_Request_Dispatch_No_Filtering::: error sending event. "); - //ACE_RE_THROW; - } - ACE_CATCH (CORBA::SystemException, se) - { - ACE_PRINT_EXCEPTION (se, - "TAO_NS_Method_Request_Dispatch_No_Filtering::: error sending event. "); - //ACE_RE_THROW; - } - ACE_ENDTRY; - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h deleted file mode 100644 index 153caadc5d5..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Method_Request_Dispatch_No_Filtering.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_DISPATCH_METHOD_REQUEST_NO_FILTERING_H -#define TAO_NS_DISPATCH_METHOD_REQUEST_NO_FILTERING_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Method_Request.h" -#include "Refcountable.h" - -class TAO_NS_ProxySupplier; - -/** - * @class TAO_NS_Method_Request_Dispatch_No_Filtering - * - * @brief Dispatchs an event to a proxy supplier but does NOT perform filtering. - * - */ -class TAO_Notify_Export TAO_NS_Method_Request_Dispatch_No_Filtering : public TAO_NS_Method_Request_Event -{ -public: - /// Constuctor - TAO_NS_Method_Request_Dispatch_No_Filtering (const TAO_NS_Event_var& event, TAO_NS_ProxySupplier* proxy_supplier); - - /// Destructor - ~TAO_NS_Method_Request_Dispatch_No_Filtering (); - - /// Create a copy of this object. - TAO_NS_Method_Request* copy (void); - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - -private: - /// Proxy Supplier that we use. - TAO_NS_ProxySupplier* proxy_supplier_; - - /// Guard to automatically inc/decr ref count on the proxy. - TAO_NS_Refcountable_Guard refcountable_guard_; -}; - -#if defined (__ACE_INLINE__) -#include "Method_Request_Dispatch_No_Filtering.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_DISPATCH_METHOD_REQUEST_NO_FILTERING_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.inl b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp deleted file mode 100644 index 5dc8208a752..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// $Id$ - -#include "Method_Request_Lookup.h" - -#if ! defined (__ACE_INLINE__) -#include "Method_Request_Lookup.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Lookup, "$Id$") - -#include "tao/debug.h" -#include "Consumer_Map.h" -#include "ProxySupplier.h" -#include "ProxyConsumer.h" -#include "Proxy.h" -#include "Admin.h" -#include "SupplierAdmin.h" - -TAO_NS_Method_Request_Lookup::TAO_NS_Method_Request_Lookup (const TAO_NS_Event_var& event, TAO_NS_ProxyConsumer* proxy_consumer, TAO_NS_Consumer_Map* map) - : TAO_NS_Method_Request_Event (event), proxy_consumer_ (proxy_consumer), map_ (map), - refcountable_guard_ (*proxy_consumer) -{ -} - -TAO_NS_Method_Request_Lookup::~TAO_NS_Method_Request_Lookup () -{ -} - -TAO_NS_Method_Request* -TAO_NS_Method_Request_Lookup::copy (void) -{ - /// @@use factory - return new TAO_NS_Method_Request_Lookup (this->event_, this->proxy_consumer_, this->map_); -} - -int -TAO_NS_Method_Request_Lookup::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->proxy_consumer_->has_shutdown ()) - return 0; // If we were shutdown while waiting in the queue, return with no action. - - TAO_NS_Admin* parent = this->proxy_consumer_->supplier_admin (); - - CORBA::Boolean val = this->proxy_consumer_->check_filters (this->event_, - parent->filter_admin (), - parent->filter_operator () - ACE_ENV_ARG_PARAMETER); - - if (TAO_debug_level > 1) - ACE_DEBUG ((LM_DEBUG, "Proxyconsumer %x filter eval result = %d",this->proxy_consumer_ , val)); - - // Filter failed - do nothing. - if (val == 0) - return 0; - - TAO_NS_Consumer_Map::ENTRY* entry = map_->find (this->event_->type () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - TAO_NS_ProxySupplier_Collection* consumers = 0; - - if (entry != 0) - { - consumers = entry->collection (); - - if (consumers != 0) - consumers->for_each (this ACE_ENV_ARG_PARAMETER); - - this->map_->release (entry); - } - - // Get the default consumers - consumers = map_->broadcast_collection (); - - if (consumers != 0) - consumers->for_each (this ACE_ENV_ARG_PARAMETER); - - return 0; -} - -void -TAO_NS_Method_Request_Lookup::work (TAO_NS_ProxySupplier* proxy_supplier ACE_ENV_ARG_DECL_NOT_USED) -{ - proxy_supplier->push (this->event_); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h deleted file mode 100644 index 4de8749c7e9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Method_Request_Lookup.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_LOOKUP_METHOD_REQUEST_H -#define TAO_NS_LOOKUP_METHOD_REQUEST_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ESF/ESF_Worker.h" -#include "Method_Request.h" -#include "ProxySupplier.h" -#include "Consumer_Map.h" - -class TAO_NS_ProxyConsumer; - -/** - * @class TAO_NS_Method_Request_Lookup - * - * @brief Lookup command object looks up the event type of the given event in the consumer map and send the event to each proxysupplier. - * - */ -class TAO_Notify_Export TAO_NS_Method_Request_Lookup : public TAO_NS_Method_Request_Event, public TAO_ESF_Worker<TAO_NS_ProxySupplier> -{ -public: - /// Constuctor - TAO_NS_Method_Request_Lookup (const TAO_NS_Event_var& event, TAO_NS_ProxyConsumer* proxy_consumer, TAO_NS_Consumer_Map* map); - - /// Destructor - ~TAO_NS_Method_Request_Lookup (); - - /// Create a copy of this object. - TAO_NS_Method_Request* copy (void); - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - - ///= TAO_ESF_Worker method - void work (TAO_NS_ProxySupplier* proxy_supplier ACE_ENV_ARG_DECL); - -private: - /// ProxyConsumer supplying event. - TAO_NS_ProxyConsumer* proxy_consumer_; - - /// The map of subscriptions. - TAO_NS_Consumer_Map* map_; - - /// Guard to automatically inc/decr ref count on the proxy. - TAO_NS_Refcountable_Guard refcountable_guard_; -}; - -#if defined (__ACE_INLINE__) -#include "Method_Request_Lookup.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_LOOKUP_METHOD_REQUEST_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.inl b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.cpp deleted file mode 100644 index cc52c47852f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -#include "Method_Request_Shutdown.h" -#include "ThreadPool_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "Method_Request_Shutdown.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Shutdown, "$Id$") - -TAO_NS_Method_Request_Shutdown::TAO_NS_Method_Request_Shutdown (TAO_NS_ThreadPool_Task* task) - : task_ (task) -{ -} - -TAO_NS_Method_Request_Shutdown::~TAO_NS_Method_Request_Shutdown () -{ -} - -TAO_NS_Method_Request* -TAO_NS_Method_Request_Shutdown::copy (void) -{ - return new TAO_NS_Method_Request_Shutdown (this->task_); -} - -int -TAO_NS_Method_Request_Shutdown::execute (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - // Shut down the scheduler by deactivating the activation queue's - // underlying message queue - should pop all worker threads off their - // wait and they'll exit. - this->task_->msg_queue ()->deactivate (); - return -1; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.h deleted file mode 100644 index 433dea36e51..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Method_Request_Shutdown.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_METHOD_REQUEST_SHUTDOWN_H -#define TAO_NS_METHOD_REQUEST_SHUTDOWN_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Method_Request.h" - -class TAO_NS_ThreadPool_Task; - -/** - * @class TAO_NS_Method_Request_Shutdown - * - * @brief Shutdown message for the ThreadPool_Task - * - */ -class TAO_Notify_Export TAO_NS_Method_Request_Shutdown : public TAO_NS_Method_Request -{ -public: - /// Constuctor - TAO_NS_Method_Request_Shutdown (TAO_NS_ThreadPool_Task* task); - - /// Destructor - ~TAO_NS_Method_Request_Shutdown (); - - /// Create a copy of this object. - TAO_NS_Method_Request* copy (void); - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - -private: - // Task to shutdown - TAO_NS_ThreadPool_Task* task_; -}; - -#if defined (__ACE_INLINE__) -#include "Method_Request_Shutdown.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_METHOD_REQUEST_SHUTDOWN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.inl b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Shutdown.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.cpp deleted file mode 100644 index 60049cf0bef..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// $Id$ - -#include "Method_Request_Updates.h" - -#if ! defined (__ACE_INLINE__) -#include "Method_Request_Updates.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Method_Request_Updates, "$id$") - -#include "tao/debug.h" -#include "Proxy.h" -#include "Peer.h" - -TAO_NS_Method_Request_Updates::TAO_NS_Method_Request_Updates (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed, TAO_NS_Proxy* proxy) - :added_ (added), removed_ (removed), proxy_ (proxy), refcountable_guard_ (*proxy) -{ -} - -TAO_NS_Method_Request_Updates::~TAO_NS_Method_Request_Updates () -{ -} - -TAO_NS_Method_Request* -TAO_NS_Method_Request_Updates::copy (void) -{ - /// @@use factory - return new TAO_NS_Method_Request_Updates (this->added_, this->removed_, this->proxy_); -} - -int -TAO_NS_Method_Request_Updates::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->proxy_->has_shutdown ()) - return 0; // If we were shutdown while waiting in the queue, return with no action. - - ACE_TRY - { - TAO_NS_Peer* peer = this->proxy_->peer(); - - if (peer != 0) - { - peer->dispatch_updates (this->added_, this->removed_ ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHANY - { - if (TAO_debug_level > 0) - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "TAO_NS_Method_Request_Updates::execute error sending updates\n "); - } - ACE_ENDTRY; - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h deleted file mode 100644 index 282b5df3097..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Method_Request_Updates.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_METHOD_REQUEST_UPDATES_H -#define TAO_NS_METHOD_REQUEST_UPDATES_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Method_Request.h" -#include "EventTypeSeq.h" -#include "Refcountable.h" - -class TAO_NS_Proxy; - -/** - * @class TAO_NS_Method_Request_Updates - * - * @brief Command Object to send updates to proxys. - * - */ -class TAO_Notify_Export TAO_NS_Method_Request_Updates : public TAO_NS_Method_Request -{ -public: - /// Constuctor - TAO_NS_Method_Request_Updates (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed, TAO_NS_Proxy* proxy); - - /// Destructor - ~TAO_NS_Method_Request_Updates (); - - /// Create a copy of this object. - TAO_NS_Method_Request* copy (void); - - /// Execute the Request - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - -private: - /// The Updates - const TAO_NS_EventTypeSeq added_; - const TAO_NS_EventTypeSeq removed_; - - /// The proxy that will receive the updates. - TAO_NS_Proxy* proxy_; - - /// Guard to automatically inc/decr ref count on the proxy. - TAO_NS_Refcountable_Guard refcountable_guard_; -}; - -#if defined (__ACE_INLINE__) -#include "Method_Request_Updates.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_METHOD_REQUEST_UPDATES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.inl b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.inl deleted file mode 100644 index bf5cc3848c2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Method_Request_Updates.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_AdminProperties.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_AdminProperties.cpp deleted file mode 100644 index 727cd0d066a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_AdminProperties.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// $Id$ - -#include "Notify_AdminProperties.h" - -#if ! defined (__ACE_INLINE__) -#include "Notify_AdminProperties.i" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, Notify_AdminProperties, "$Id$") - -TAO_Notify_AdminProperties::TAO_Notify_AdminProperties (void) - : max_queue_length_ (0), - max_consumers_ (0), - max_suppliers_ (0), - reject_new_events_ (0) -{ -} - -TAO_Notify_AdminProperties::~TAO_Notify_AdminProperties () -{ -} - -CosNotification::AdminProperties* -TAO_Notify_AdminProperties::get_admin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CORBA::Long property_count = 4; //The spec has 4 properties, so far. - - CosNotification::AdminProperties_var admin; - - ACE_NEW_THROW_EX (admin, - CosNotification::AdminProperties (property_count), - CORBA::NO_MEMORY ()); - admin->length (property_count); - - (*admin)[0].name = - CORBA::string_dup (CosNotification::MaxQueueLength); - (*admin)[0].value <<= (CORBA::Long)max_queue_length_; - - (*admin)[1].name = - CORBA::string_dup (CosNotification::MaxConsumers); - (*admin)[1].value <<= (CORBA::Long)max_consumers_; - - (*admin)[2].name = - CORBA::string_dup (CosNotification::MaxSuppliers); - (*admin)[2].value <<= (CORBA::Long)max_suppliers_; - - (*admin)[3].name = - CORBA::string_dup (CosNotification::RejectNewEvents); - (*admin)[3].value <<= CORBA::Any::from_boolean (this->reject_new_events_); - - return admin._retn (); -} - -void -TAO_Notify_AdminProperties::set_admin (const CosNotification::AdminProperties & admin ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedAdmin - )) -{ - for (CORBA::ULong i = 0; i < admin.length (); ++i) - { - if (ACE_OS::strcmp (admin[i].name, - CosNotification::MaxQueueLength) == 0) - { - admin[i].value >>= max_queue_length_; - } - else if (ACE_OS::strcmp (admin[i].name, - CosNotification::MaxSuppliers) == 0) - { - admin[i].value >>= this->max_suppliers_; - } - else if (ACE_OS::strcmp (admin[i].name, - CosNotification::MaxConsumers) == 0) - { - admin[i].value >>= this->max_consumers_; - } - else if (ACE_OS::strcmp (admin[i].name, - CosNotification::RejectNewEvents) == 0) - { - admin[i].value >>= CORBA::Any::to_boolean (this->reject_new_events_); - } - else - ACE_THROW (CosNotification::UnsupportedAdmin ()); - } -} - -CORBA::Boolean -TAO_Notify_AdminProperties::queue_full (void) -{ - if (this->max_queue_length () == 0) - return 0; - else - if (this->queue_length ()->value () > this->max_queue_length ()) - return 1; - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Atomic_Op<TAO_SYNCH_MUTEX,int>; -template class ACE_Atomic_Op_Ex<TAO_SYNCH_MUTEX,int>; -template class TAO_Notify_Signal_Property<TAO_SYNCH_MUTEX,int>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Atomic_Op<TAO_SYNCH_MUTEX,int> -#pragma instantiate ACE_Atomic_Op_Ex<TAO_SYNCH_MUTEX,int> -#pragma instantiate TAO_Notify_Signal_Property<TAO_SYNCH_MUTEX,int> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_AdminProperties.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_AdminProperties.h deleted file mode 100644 index 52474c23e27..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_AdminProperties.h +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_AdminProperties.h - * - * $Id$ - * - * Implements get/set methods for EC Admin properties. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_ADMINPROPERTIES_H -#define TAO_NOTIFY_ADMINPROPERTIES_H - -#include "ace/pre.h" -#include "orbsvcs/CosNotificationC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_Listeners.h" -#include "notify_export.h" -#include "Notify_Signal_Property_T.h" - - -typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX,CORBA::Long> TAO_Notify_Property_Long; -typedef TAO_Notify_Signal_Property <TAO_SYNCH_MUTEX,CORBA::Long> TAO_Notify_Signal_Property_Long; - -/** - * @class TAO_Notify_AdminProperties - * - * @brief TAO_Notify_AdminProperties - * - * All the EC Admin properties are get/set via this class. - */ -class TAO_Notify_Export TAO_Notify_AdminProperties -{ -public: - TAO_Notify_AdminProperties (void); - virtual ~TAO_Notify_AdminProperties (); - - virtual CosNotification::AdminProperties * get_admin ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_admin ( - const CosNotification::AdminProperties & admin - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedAdmin - )); - - // = Accessors - // There was no reason for these not to be const - CORBA::Long max_queue_length (void) const; - CORBA::Long max_consumers (void) const; - CORBA::Long max_suppliers (void) const; - CORBA::Boolean reject_new_events (void) const; - - TAO_Notify_Signal_Property_Long* queue_length (void); - TAO_Notify_Property_Long* consumers (void); - TAO_Notify_Property_Long* suppliers (void); - - // = Helper method - /// Returns true if Queue is full - CORBA::Boolean queue_full (void); - -protected: - // @@ Pradeep can you explain why there is any maximum for these - // values? Should they be configurable by the user so the resource - // requirements can be bounded? - - // = Admin. properties - // for all these properties the default O implies no limit - /** - * The maximum number of events that will be queued by the channel before - * the channel begins discarding events or rejecting new events upon - * receipt of each new event. - */ - CORBA::Long max_queue_length_; - - /// The maximum number of consumers that can be connected to the channel at - /// any given time. - CORBA::Long max_consumers_; - - /// The maximum number of suppliers that can be connected to the channel at - /// any given time. - CORBA::Long max_suppliers_; - - /// Reject any new event. - CORBA::Boolean reject_new_events_; - - //= Variables - /// This is used to count the queue length across all buffers in the Notify Service - /// to enforce the "MaxQueueLength" property. - TAO_Notify_Signal_Property_Long queue_length_; - - /// These are used to count the number of consumers and suppliers connected to - /// the system. - TAO_Notify_Property_Long consumers_; - TAO_Notify_Property_Long suppliers_; -}; - - -#if defined (__ACE_INLINE__) -#include "Notify_AdminProperties.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_ADMINPROPERTIES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Buffering_Strategy.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Buffering_Strategy.cpp deleted file mode 100644 index 16db407d876..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Buffering_Strategy.cpp +++ /dev/null @@ -1,233 +0,0 @@ -// $Id$ - -#include "Notify_Buffering_Strategy.h" -#include "Notify_Command.h" - -#include "orbsvcs/CosNotificationC.h" - -#include "tao/debug.h" - -ACE_RCSID(Notify, Notify_Buffering_Strategy, "$Id$") - -TAO_Notify_Buffering_Strategy::TAO_Notify_Buffering_Strategy ( - TAO_Notify_Signal_Property_Long* const queue_length) - : queue_length_ (queue_length), - max_queue_length_ (0), - max_events_per_consumer_ (0), - order_policy_ (CosNotification::AnyOrder), - discard_policy_ (CosNotification::AnyOrder), - use_max_queue_ (0), - blocking_timeout_ (0), - use_blocking_timeout_ (0) -{ -} - -TAO_Notify_Buffering_Strategy::~TAO_Notify_Buffering_Strategy () -{ -} - -void -TAO_Notify_Buffering_Strategy::execute (ACE_Message_Queue<ACE_SYNCH>* msg_queue, TAO_Notify_Command *mb ACE_ENV_ARG_DECL_NOT_USED /*ACE_ENV_SINGLE_ARG_PARAMETER*/, ACE_Time_Value *tv) -{ - // use_max_queue_ may be set to 0. If max_events_per_consumer_ is - // 0, then we are going to use the maximum queue length regardless. - if (this->max_events_per_consumer_ == 0) - this->use_max_queue_ = 1; - - if (TAO_debug_level > 0) - { - if (this->use_max_queue_) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - Enqueing command " - "priority %d, queue_length = %d, max queue" - " length = %d\n", - mb->priority (), this->queue_length_->value (), - this->max_queue_length_)); - else - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - Enqueing command " - "priority %d, queue_length = %d, max events" - " per consumer = %d\n", - mb->priority (), this->queue_length_->value (), - this->max_events_per_consumer_)); - } - - int result = 0; - - // If we decide to use_max_queue_ and max_queue_length_ is not 0 and - // the queue_length_ is more than max_queue_length_. - // Or if we did not decide to use_max_queue_ and max_events_per_consumer_ - // and queue_length_ is more than max_events_per_consumer_. - CORBA::Long current = this->queue_length_->value (); - if ((this->use_max_queue_ && this->max_queue_length_ != 0 && - current > this->max_queue_length_) || - (!this->use_max_queue_ && this->max_events_per_consumer_ != 0 && - current > this->max_events_per_consumer_)) - { - if (this->use_blocking_timeout_) - { - - // I am multiplying blocking_timeout_ by 1 because it is a - // CORBA::ULongLong, which on some platforms doesn't automatically - // convert to the long that the ACE_Time_Value expects. The / - // operator returns a 32-bit integer. - ACE_Time_Value absolute; - - if (this->blocking_timeout_ != 0) - { - absolute = ACE_OS::gettimeofday () + -# if defined (ACE_CONFIG_WIN32_H) - ACE_Time_Value ( - ACE_static_cast (long, - this->blocking_timeout_)); -# else - ACE_Time_Value (this->blocking_timeout_ / 1); -# endif /* ACE_CONFIG_WIN32_H */ - - } - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, - "Notify (%P|%t) - Blocking\n")); - - if (this->queue_length_->wait_for_change (&absolute) == -1) - { - // We timed out waiting for the queue length to change - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "Timed out blocking on the client\n")); - return; - } - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, - "Notify (%P|%t) - Resuming\n")); - } - else - { - if (TAO_debug_level > 0) - { - if (this->use_max_queue_) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - max queue length " - "reached, discarding event with " - "policy %d\n", - this->discard_policy_)); - else - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - max events per " - "consumer reached, discarding event " - "with policy %d\n", - this->discard_policy_)); - } - - if (this->discard_policy_ == CosNotification::AnyOrder || - this->discard_policy_ == CosNotification::FifoOrder) - { - ACE_Message_Block *first_item; - result = msg_queue->dequeue_head (first_item, tv); - } - else if (this->discard_policy_ == CosNotification::LifoOrder) - { - ACE_Message_Block *last_item; - result = msg_queue->dequeue_tail (last_item, tv); - } - else if (this->discard_policy_ == CosNotification::DeadlineOrder) - { - ACE_Message_Block *dequeued_item; - result = msg_queue->dequeue_deadline (dequeued_item, tv); - } - else if (this->discard_policy_ == CosNotification::PriorityOrder) - { - ACE_Message_Block *dequeued_item; - result = msg_queue->dequeue_prio (dequeued_item, tv); - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "Invalid discard policy\n")); - result = -1; - } - - if (result == -1) // we could not dequeue successfully. - { - return; // behave as if we discarded this event. - } - else - { - // decrement the global count of events since we successfully - // dequeued an item from the message queue. - (*this->queue_length_)--; - } - } - } - - // Queue according to order policy - if (this->order_policy_ == CosNotification::AnyOrder || - this->order_policy_ == CosNotification::FifoOrder) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "enqueue in fifo order\n")); - // Insert at the end of the queue. - result = msg_queue->enqueue_tail (mb, tv); - } - else if (this->order_policy_ == CosNotification::PriorityOrder) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "enqueue in priority order\n")); - result = msg_queue->enqueue_prio (mb, tv); - } - else if (this->order_policy_ == CosNotification::DeadlineOrder) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "enqueue in deadline order\n")); - result = msg_queue->enqueue_deadline (mb, tv); - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - Invalid order policy\n")); - result = -1; - } - - if (result == -1) // we could not enqueue successfully - { - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "Panic! failed to enqueue event")); - // behave as if we discarded this event. - } - else - { - // increment the global count of events. - (*this->queue_length_)++; - } -} - -void -TAO_Notify_Buffering_Strategy::max_queue_length (CORBA::Long max_queue_length) -{ - this->max_queue_length_ = max_queue_length; -} - -void -TAO_Notify_Buffering_Strategy::max_events_per_consumer (CORBA::Long max_events_per_consumer) -{ - this->max_events_per_consumer_ = max_events_per_consumer; -} - -void -TAO_Notify_Buffering_Strategy::order_policy (CORBA::Short order_policy) -{ - this->order_policy_ = order_policy; -} - -void -TAO_Notify_Buffering_Strategy::discard_policy (CORBA::Short discard_policy) -{ - this->discard_policy_ = discard_policy; -} - -void -TAO_Notify_Buffering_Strategy::blocking_timeout (TimeBase::TimeT timeout) -{ - this->blocking_timeout_ = timeout; - this->use_blocking_timeout_ = 1; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Buffering_Strategy.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Buffering_Strategy.h deleted file mode 100644 index 1d6fb5c048d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Buffering_Strategy.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Buffering_Strategy.h - * - * $Id$ - * - * A Strategy class that buffers command objects in a message queue. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_BUFFERING_STRATEGY_H -#define TAO_NOTIFY_BUFFERING_STRATEGY_H - -#include "ace/pre.h" -#include "tao/corba.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_AdminProperties.h" -#include "orbsvcs/TimeBaseC.h" - -#include "ace/Message_Queue.h" -#include "ace/Synch.h" - -class TAO_Notify_Command; - -/** - * @class TAO_Notify_Buffering_Strategy - * - * @brief TAO_Notify_Buffering_Strategy - * - * This buffering strategy buffers and discards events according to the - * policies specified in the CosNotification.idl - */ -class TAO_Notify_Export TAO_Notify_Buffering_Strategy -{ -public: - TAO_Notify_Buffering_Strategy (TAO_Notify_Signal_Property_Long* const queue_length); - - virtual ~TAO_Notify_Buffering_Strategy (); - - /// Execute this strategy. - virtual void execute (ACE_Message_Queue<ACE_SYNCH>* msg_queue, TAO_Notify_Command *mb ACE_ENV_ARG_DECL, ACE_Time_Value *tv); - - /// Set the max. queue length. - void max_queue_length (CORBA::Long max_queue_length); - - /// Set the max. events per consumer. - void max_events_per_consumer (CORBA::Long max_events_per_consumer); - - /// Set the order policy. - void order_policy (CORBA::Short order_policy); - - /// Set the discard policy. - void discard_policy (CORBA::Short discard_policy); - - /// Set the blocking timeout. - void blocking_timeout (TimeBase::TimeT timeout); - -protected: - /// The overall queue length. - TAO_Notify_Signal_Property_Long* const queue_length_; - - /// Discarding policies kicks in when the <queue_length_> exceeds <max_queue_length_> - CORBA::Long max_queue_length_; - - /// Discarding policies kicks in when the <queue_length_> exceeds <max_events_per_consumer_> - CORBA::Long max_events_per_consumer_; - - /// Order of events in internal buffers. - CORBA::Short order_policy_; - - /// Policy to discard when buffers are full. - CORBA::Short discard_policy_; - - /// Should we use the max queue or max events. - CORBA::Boolean use_max_queue_; - - /// The blocking timeout will be used in place of discarding - /// if use_blocking_timeout_ is set. This is a TAO specific extension. - TimeBase::TimeT blocking_timeout_; - CORBA::Boolean use_blocking_timeout_; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_BUFFERING_STRATEGY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Channel_Objects_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Channel_Objects_Factory.h deleted file mode 100644 index 9376ea7096e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Channel_Objects_Factory.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Channel_Objects_Factory.h - * - * $Id$ - * - * Factory for all CosNotify objects defined in the idl files and - * other related objects. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_CO_FACTORY_H -#define TAO_NOTIFY_CO_FACTORY_H - -#include "ace/pre.h" -#include "ace/Service_Object.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "notify_export.h" - -class TAO_Notify_EventChannelFactory_i; -class TAO_Notify_EventChannel_i; -class TAO_Notify_ConsumerAdmin_i; -class TAO_Notify_SupplierAdmin_i; -class TAO_Notify_FilterFactory_i; -class TAO_Notify_StructuredProxyPushSupplier_i; -class TAO_Notify_SequenceProxyPushSupplier_i; -class TAO_Notify_ProxyPushSupplier_i; -class TAO_Notify_StructuredProxyPushConsumer_i; -class TAO_Notify_SequenceProxyPushConsumer_i; -class TAO_Notify_ProxyPushConsumer_i; -class ACE_Lock; - -// @@ Pradeep: I'm not sure if I like the name of this class (and the -// name of the file is mismatched).... In any case, you need a better -// description here. I don't see any destroy methods: what if the -// objects are allocated from a free list, or from shared memory or -// something like that? - /** - * @class TAO_Notify_CO_Factory - * - * @brief TAO_Notify_CO_Factory - * - * Factory for channel objects. - */ -class TAO_Notify_Export TAO_Notify_CO_Factory : public ACE_Service_Object -{ - public: - // = Creation methods - /// Create an Event Channel. - virtual TAO_Notify_EventChannel_i* create_event_channel (TAO_Notify_EventChannelFactory_i* parent ACE_ENV_ARG_DECL)=0; - - /// Create a Consumer Admin. - virtual TAO_Notify_ConsumerAdmin_i* create_consumer_admin (TAO_Notify_EventChannel_i* channel ACE_ENV_ARG_DECL)=0; - - /// Create a Supplier Admin. - virtual TAO_Notify_SupplierAdmin_i* create_supplier_admin (TAO_Notify_EventChannel_i* channel ACE_ENV_ARG_DECL)=0; - - /// Create the Filter Factory. - virtual TAO_Notify_FilterFactory_i* create_filter_factory (ACE_ENV_SINGLE_ARG_DECL)=0; - - // = Proxy Creation methods. - /// Create a Structured ProxyPushSupplier. - virtual TAO_Notify_StructuredProxyPushSupplier_i* create_struct_proxy_pushsupplier (TAO_Notify_ConsumerAdmin_i* parent ACE_ENV_ARG_DECL)=0; - - /// Create a Sequence ProxyPushSupplier. - virtual TAO_Notify_SequenceProxyPushSupplier_i* create_seq_proxy_pushsupplier (TAO_Notify_ConsumerAdmin_i* parent ACE_ENV_ARG_DECL)=0; - - /// Create a ProxyPushSupplier. - virtual TAO_Notify_ProxyPushSupplier_i* create_proxy_pushsupplier (TAO_Notify_ConsumerAdmin_i* parent ACE_ENV_ARG_DECL)=0; - - /// Create a Structured ProxyPushConsumer. - virtual TAO_Notify_StructuredProxyPushConsumer_i* create_struct_proxy_pushconsumer (TAO_Notify_SupplierAdmin_i* parent ACE_ENV_ARG_DECL)=0; - - /// Create a Sequence ProxyPushConsumer. - virtual TAO_Notify_SequenceProxyPushConsumer_i* create_seq_proxy_pushconsumer (TAO_Notify_SupplierAdmin_i* parent ACE_ENV_ARG_DECL)=0; - - /// Create a ProxyPushConsumer. - virtual TAO_Notify_ProxyPushConsumer_i* create_proxy_pushconsumer (TAO_Notify_SupplierAdmin_i* parent ACE_ENV_ARG_DECL)=0; - - //= Locks - // = Methods to create locks. - /// Create lock type used by channel factory. - virtual ACE_Lock* create_channel_factory_lock (ACE_ENV_SINGLE_ARG_DECL)=0; - - /// Create lock type used by EC's. - virtual ACE_Lock* create_event_channel_lock (ACE_ENV_SINGLE_ARG_DECL)=0; - - /// Create lock type used by Consumer Admin's. - virtual ACE_Lock* create_consumer_admin_lock (ACE_ENV_SINGLE_ARG_DECL)=0; - - /// Create lock type used by Supplier Admin's. - virtual ACE_Lock* create_supplier_admin_lock (ACE_ENV_SINGLE_ARG_DECL)=0; - - /// Create lock type used by proxy supplier. - virtual ACE_Lock* create_proxy_supplier_lock (ACE_ENV_SINGLE_ARG_DECL)=0; - - /// Create lock type used by proxy consumer. - virtual ACE_Lock* create_proxy_consumer_lock (ACE_ENV_SINGLE_ARG_DECL)=0; -}; - -#include "ace/post.h" - -#endif /* TAO_NOTIFY_CO_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection.cpp deleted file mode 100644 index c982a30a01b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// $Id$ - -#include "Notify_Collection.h" -//#include "Notify_Event.h" -#include "Notify_Listeners.h" -#include "tao/debug.h" - -ACE_RCSID(Notify, Notify_Collection, "$Id$") - -void -TAO_Notify_EventType_List::preprocess (TAO_Notify_EventType_List& current, TAO_Notify_EventType_List& seq_added, TAO_Notify_EventType_List& seq_removed) -{ - #if 0 - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, " Before preprocess: current = ")); current.dump (); - ACE_DEBUG ((LM_DEBUG, "\n Before preprocess: seq_added = ")); seq_added.dump (); - ACE_DEBUG ((LM_DEBUG, "\n Before preprocess: seq_removed = ")); seq_removed.dump (); - } -#endif - TAO_Notify_EventType special = TAO_Notify_EventType::special_event_type (); - - if (current.find (special) == 0) - { - if (seq_added.find (special) == 0) - { - seq_added.reset (); - seq_removed.reset (); - } - else - { - current.reset (); - current.insert_seq (seq_added); - - seq_removed.reset (); - seq_removed.insert (special); - } - } - else - { - if (seq_added.find (special) == 0) - { - if (seq_removed.find (special) == 0) - { - seq_added.reset (); - seq_removed.reset (); - } - else - { - seq_removed.reset (); - seq_removed.insert_seq (current); - - current.reset (); - current.insert (special); - - seq_added.reset (); - seq_added.insert (special); - } - } - else - { - if (seq_removed.find (special) == 0) - { - - seq_removed.reset (); - seq_removed.insert_seq (current); - - current.reset (); - current.insert_seq (seq_added); - } - else - { - current.insert_seq (seq_added); - current.remove_seq (seq_removed); - } - } - } - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, " After preprocess: current = ")); current.dump (); - ACE_DEBUG ((LM_DEBUG, "\n After preprocess: seq_added = ")); seq_added.dump (); - ACE_DEBUG ((LM_DEBUG, "\n After preprocess: seq_removed = ")); seq_removed.dump (); - } -} - -// = TAO_Notify_EventType_List -void -TAO_Notify_EventType_List::populate (CosNotification::EventTypeSeq& event_type_seq) -{ - event_type_seq.length (this->size ()); - - TAO_Notify_EventType_List::CONST_ITERATOR iter (*this); - - TAO_Notify_EventType* event_type; - - CORBA::ULong i = 0; - for (iter.first (); iter.next (event_type); iter.advance (), ++i) - event_type_seq[i] = event_type->get_native (); -} - -void -TAO_Notify_EventType_List::insert_seq (const CosNotification::EventTypeSeq& event_type_seq) -{ - TAO_Notify_EventType event_type; - - for (CORBA::ULong i = 0; i < event_type_seq.length (); ++i) - { - event_type = event_type_seq[i]; - inherited::insert (event_type); - } -} - -void -TAO_Notify_EventType_List::remove_seq (const CosNotification::EventTypeSeq& event_type_seq) -{ - TAO_Notify_EventType event_type; - - for (CORBA::ULong i = 0; i < event_type_seq.length (); ++i) - { - event_type = event_type_seq[i]; - inherited::remove (event_type); - } -} - -void -TAO_Notify_EventType_List::insert_seq (const TAO_Notify_EventType_List& event_type_seq) -{ - TAO_Notify_EventType_List::CONST_ITERATOR iter (event_type_seq); - - TAO_Notify_EventType* event_type; - - for (iter.first (); iter.next (event_type); iter.advance ()) - inherited::insert (*event_type); -} - -void -TAO_Notify_EventType_List::remove_seq (const TAO_Notify_EventType_List& event_type_seq) -{ - TAO_Notify_EventType_List::CONST_ITERATOR iter (event_type_seq); - - TAO_Notify_EventType* event_type; - - for (iter.first (); iter.next (event_type); iter.advance ()) - inherited::remove (*event_type); -} - -/********************************************************************/ - -TAO_Notify_Shutdown_Worker::TAO_Notify_Shutdown_Worker (void) -{ -} - -void -TAO_Notify_Shutdown_Worker::work (TAO_Notify_EventListener* listener ACE_ENV_ARG_DECL) -{ - listener->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -/********************************************************************/ - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Unbounded_Set <TAO_Notify_EventType>; -template class ACE_Unbounded_Set_Iterator<TAO_Notify_EventType>; -template class ACE_Unbounded_Set_Const_Iterator<TAO_Notify_EventType>; -template class ACE_Node<TAO_Notify_EventType>; - -template class ACE_Unbounded_Set<TAO_Notify_EventListener*>; -template class ACE_Unbounded_Set_Iterator<TAO_Notify_EventListener*>; -template class ACE_Node<TAO_Notify_EventListener*>; - -template class ACE_Unbounded_Set<TAO_Notify_UpdateListener*>; -template class ACE_Unbounded_Set_Iterator<TAO_Notify_UpdateListener*>; -template class ACE_Node<TAO_Notify_UpdateListener*>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Unbounded_Set<TAO_Notify_EventType> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_Notify_EventType> -#pragma instantiate ACE_Unbounded_Set_Const_Iterator<TAO_Notify_EventType> -#pragma instantiate ACE_Node<TAO_Notify_EventType> - -#pragma instantiate ACE_Unbounded_Set<TAO_Notify_EventListener*> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_Notify_EventListener*> -#pragma instantiate ACE_Node<TAO_Notify_EventListener*> - -#pragma instantiate ACE_Unbounded_Set<TAO_Notify_UpdateListener*> -#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_Notify_UpdateListener*> -#pragma instantiate ACE_Node<TAO_Notify_UpdateListener*> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection.h deleted file mode 100644 index a014d9c3b6c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection.h +++ /dev/null @@ -1,96 +0,0 @@ -//============================================================================= -/** - * @file Notify_Collection.h - * - * $Id$ - * - * Collection types used by Notify - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_COLLECTION_H -#define TAO_NOTIFY_COLLECTION_H - -#include "ace/pre.h" -#include "orbsvcs/CosNotifyCommC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ESF/ESF_Worker.h" -#include "notify_export.h" -#include "Notify_Event.h" - -template<class PROXY> class TAO_ESF_Proxy_Collection; -template<class T> class ACE_Unbounded_Set; - -class TAO_Notify_EventListener; -class TAO_Notify_UpdateListener; -class TAO_Notify_EventType; - -/// A list of event listeners that are looking for the same event type. -typedef TAO_ESF_Proxy_Collection<TAO_Notify_EventListener> TAO_Notify_EventListener_List; - -/// A list of update listeners who want to be notified about publish/subscribe changes. -typedef TAO_ESF_Proxy_Collection<TAO_Notify_UpdateListener> TAO_Notify_UpdateListener_List; - -/** - * @class TAO_Notify_EventType_List - * - * @brief TAO_Notify_EventType_List - * - * Allows operations using the CosNotification::EventTypeSeq type. - */ -class TAO_Notify_Export TAO_Notify_EventType_List : public ACE_Unbounded_Set <TAO_Notify_EventType> -{ - - typedef ACE_Unbounded_Set <TAO_Notify_EventType> inherited; - -public: - /// Preprocess lists for subscriptions - static void preprocess (TAO_Notify_EventType_List& current, TAO_Notify_EventType_List& seq_added, TAO_Notify_EventType_List& seq_removed); - - /// Populate <event_type_seq> with the contents of this object. - void populate (CosNotification::EventTypeSeq& event_type_seq); - - /// insert the contents of <event_type_seq> into this object. - void insert_seq (const CosNotification::EventTypeSeq& event_type_seq); - - /// remove the contents of <event_type_seq> from this object. - void remove_seq (const CosNotification::EventTypeSeq& event_type_seq); - - /// insert the contents of <event_type_seq> into this object. - void insert_seq (const TAO_Notify_EventType_List& event_type_seq); - - /// remove the contents of <event_type_seq> from this object. - void remove_seq (const TAO_Notify_EventType_List& event_type_seq); -}; - -// **************************************************************** - -// = Collection Iterators. - - /** - * @class TAO_Notify_Shutdown_Worker - * - * @brief TAO_Notify_Shutdown_Worker - * - * Shutdown each listener - */ -class TAO_Notify_Export TAO_Notify_Shutdown_Worker : public TAO_ESF_Worker<TAO_Notify_EventListener> -{ - public: - TAO_Notify_Shutdown_Worker (void); - - // = TAO_ESF_Worker method - void work (TAO_Notify_EventListener* listener ACE_ENV_ARG_DECL); -}; - -// **************************************************************** -#include "ace/post.h" -#endif /* TAO_NOTIFY_COLLECTION_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection_Factory.h deleted file mode 100644 index 2d06c672fe3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Collection_Factory.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Collection_Factory.h - * - * $Id$ - * - * A factory fpr the collection types used by Notify. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_COLLECTION_FACTORY_H -#define NOTIFY_COLLECTION_FACTORY_H - -#include "ace/pre.h" -#include "ace/Service_Object.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "notify_export.h" -#include "Notify_Collection.h" - -/** - * @class TAO_Notify_Collection_Factory - * - * @brief TAO_Notify_Collection_Factory - * - * Collection factory - */ -class TAO_Notify_Export TAO_Notify_Collection_Factory : public ACE_Service_Object -{ -public: - // = Methods to create listener collections. - /// Create the event listener list. - virtual TAO_Notify_EventListener_List* create_event_listener_list (ACE_ENV_SINGLE_ARG_DECL) = 0; - - /// Create update listener list. - virtual TAO_Notify_UpdateListener_List* create_update_listener_list (ACE_ENV_SINGLE_ARG_DECL) = 0; -}; - -#include "ace/post.h" - -#endif /* NOTIFY_COLLECTION_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Command.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Command.cpp deleted file mode 100644 index d42202b5074..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Command.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// $Id$ - -#include "Notify_Command.h" - -#if !defined (__ACE_INLINE__) -#include "Notify_Command.i" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, Notify_Command, "$Id$") diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Command.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Command.h deleted file mode 100644 index 14d1c5a5e18..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Command.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Command.h - * - * $Id$ - * - * Command Object base class used by Notify's Worker Task objects. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_COMMAND_H -#define TAO_NOTIFY_COMMAND_H - -#include "ace/pre.h" -#include "ace/Message_Block.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "notify_export.h" - -#if !defined (TAO_NOTIFY_COMMAND_PRIORITY_BASE) -#define TAO_NOTIFY_COMMAND_PRIORITY_BASE 32768 -#endif /* TAO_NOTIFY_COMMAND_PRIORITY_BASE */ - -class TAO_Notify_Event_Processor; -class TAO_Notify_Event; - - /** - * @class TAO_Notify_Command - * - * @brief TAO_Notify_Command - * - * Base class for Command Objects. - * Command objects are executed by the Notify_Worker_Task. - */ -class TAO_Notify_Export TAO_Notify_Command : public ACE_Message_Block -{ - public: - TAO_Notify_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event); - ~TAO_Notify_Command (); - - /// Command callback - virtual int execute (ACE_ENV_SINGLE_ARG_DECL) = 0; - - virtual CORBA::Short priority (void) const; - -protected: - // = Data Members - /// The command objects should notify the event processor once they have successfully - /// executed commands. - TAO_Notify_Event_Processor* event_processor_; - - /// The event that we "execute" this command on. - TAO_Notify_Event* event_; -}; - - -#if defined (__ACE_INLINE__) -#include "Notify_Command.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" - -#endif /* TAO_NOTIFY_COMMAND_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp deleted file mode 100644 index 0dc683e4f0b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// $Id$ - -#include "Notify_Constraint_Interpreter.h" -#include "Notify_Constraint_Visitors.h" - -ACE_RCSID(Notify, NS_Constraint_Interpreter, "$Id$") - -TAO_NS_Constraint_Interpreter::TAO_NS_Constraint_Interpreter (void) -{ -} - -TAO_NS_Constraint_Interpreter::~TAO_NS_Constraint_Interpreter (void) -{ -} - -void -TAO_NS_Constraint_Interpreter::build_tree ( - const char *constraints - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CosNotifyFilter::InvalidConstraint, - CORBA::NO_MEMORY)) -{ - if (TAO_ETCL_Interpreter::is_empty_string (constraints)) - { - // Root is deleted in the TAO_Interpreter's destructor. - ACE_NEW_THROW_EX (this->root_, - TAO_ETCL_Literal_Constraint ((CORBA::Boolean) 1), - CORBA::NO_MEMORY ()); - ACE_CHECK; - } - else - { - // root_ is set in this base class call. - if (TAO_ETCL_Interpreter::build_tree (constraints) != 0) - ACE_THROW (CosNotifyFilter::InvalidConstraint ()); - } -} - -CORBA::Boolean -TAO_NS_Constraint_Interpreter::evaluate (TAO_NS_Constraint_Visitor &evaluator) -{ - CORBA::Boolean retval = evaluator.evaluate_constraint (this->root_); - - return retval; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h deleted file mode 100644 index 03ca6f6d4f4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Constraint_Interpreter.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_CONSTRAINT_INTERPRETER_H -#define TAO_NOTIFY_CONSTRAINT_INTERPRETER_H - -#include "ace/pre.h" -#include "orbsvcs/ETCL/ETCL_Interpreter.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ETCL/ETCL_Constraint.h" -#include "orbsvcs/CosNotifyFilterC.h" -#include "notify_export.h" - -class TAO_NS_Constraint_Visitor; - -/** - * @class TAO_NS_Constraint_Interpreter - * - * @brief "ETCL" Interpreter for the Notify queries. - */ -class TAO_Notify_Export TAO_NS_Constraint_Interpreter : public TAO_ETCL_Interpreter -{ -public: - // = Initialization and termination methods. - TAO_NS_Constraint_Interpreter (void); - - /// Destructor - ~TAO_NS_Constraint_Interpreter (void); - - /** - * This method builds an expression tree representing the - * constraint specified in <constraints>, and throws an Illegal - * Constraint exception if the constraint given has syntax errors or - * semantic errors, such as mismatched types. - */ - void build_tree (const char* constraints - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CosNotifyFilter::InvalidConstraint, - CORBA::NO_MEMORY)); - - /// Returns true if the constraint is evaluated successfully by - /// the evaluator. - CORBA::Boolean evaluate (TAO_NS_Constraint_Visitor &evaluator); -}; -#include "ace/post.h" -#endif /* TAO_NOTIFY_CONSTRAINT_INTERPRETER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp deleted file mode 100644 index e7224c069a0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.cpp +++ /dev/null @@ -1,1564 +0,0 @@ -/* -*- C++ -*- */ -/* $Id$ */ - -#include "Notify_Constraint_Visitors.h" -#include "orbsvcs/ETCL/ETCL_Constraint.h" -#include "orbsvcs/ETCL/ETCL_y.h" -#include "tao/DynamicAny/DynArray_i.h" -#include "tao/DynamicAny/DynSequence_i.h" -#include "tao/DynamicAny/DynStruct_i.h" -#include "tao/DynamicAny/DynUnion_i.h" -#include "tao/DynamicAny/DynEnum_i.h" -#include "tao/DynamicAny/DynAnyFactory.h" - -TAO_NS_Constraint_Visitor::TAO_NS_Constraint_Visitor (void) - : implicit_id_ (NONE) -{ - (void) this->implicit_ids_.bind (ACE_CString ("filterable_data", - 0, - 0), - FILTERABLE_DATA); - (void) this->implicit_ids_.bind (ACE_CString ("header", - 0, - 0), - HEADER); - (void) this->implicit_ids_.bind (ACE_CString ("remainder_of_body", - 0, - 0), - REMAINDER_OF_BODY); - (void) this->implicit_ids_.bind (ACE_CString ("fixed_header", - 0, - 0), - FIXED_HEADER); - (void) this->implicit_ids_.bind (ACE_CString ("variable_header", - 0, - 0), - VARIABLE_HEADER); - (void) this->implicit_ids_.bind (ACE_CString ("event_name", - 0, - 0), - EVENT_NAME); - (void) this->implicit_ids_.bind (ACE_CString ("event_type", - 0, - 0), - EVENT_TYPE); - (void) this->implicit_ids_.bind (ACE_CString ("domain_name", - 0, - 0), - DOMAIN_NAME); - (void) this->implicit_ids_.bind (ACE_CString ("type_name", - 0, - 0), - TYPE_NAME); -} - -int -TAO_NS_Constraint_Visitor::bind_structured_event ( - const CosNotification::StructuredEvent &s_event - ) -{ - // The two sequences contained in a structured event are - // copied into hash tables so iteration is done only once. - - CORBA::ULong length = s_event.filterable_data.length (); - CORBA::ULong index = 0; - - for (index = 0; index < length; ++index) - { - ACE_CString name_str (s_event.filterable_data[index].name, 0, 0); - - int status = - this->filterable_data_.bind ( - name_str, - ACE_const_cast (CORBA::Any *, - &s_event.filterable_data[index].value) - ); - - if (status != 0) - { - return -1; - } - } - - length = s_event.header.variable_header.length (); - - for (index = 0; index < length; ++index) - { - ACE_CString name_str (s_event.header.variable_header[index].name, 0, 0); - - int status = - this->variable_header_.bind ( - name_str, - ACE_const_cast (CORBA::Any *, - &s_event.header.variable_header[index].value) - ); - - if (status != 0) - { - return -1; - } - } - - this->domain_name_ = - CORBA::string_dup (s_event.header.fixed_header.event_type.domain_name); - - this->type_name_ = - CORBA::string_dup (s_event.header.fixed_header.event_type.type_name); - - this->event_name_ = - CORBA::string_dup (s_event.header.fixed_header.event_name); - - this->remainder_of_body_ = s_event.remainder_of_body; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::evaluate_constraint ( - TAO_ETCL_Constraint* root - ) -{ - CORBA::Boolean result = 0; - this->queue_.reset (); - - // Evaluate the constraint in root_; - if (root != 0) - { - if ((root->accept (this) == 0) && - (! this->queue_.is_empty ())) - { - TAO_ETCL_Literal_Constraint top; - this->queue_.dequeue_head (top); - result = (CORBA::Boolean) top; - } - } - - // If a property couldn't be evaluated we must return 0. - return result; -} - -int -TAO_NS_Constraint_Visitor::visit_literal ( - TAO_ETCL_Literal_Constraint *literal - ) -{ - this->queue_.enqueue_head (*literal); - return 0; -} - -int -TAO_NS_Constraint_Visitor::visit_identifier (TAO_ETCL_Identifier *ident) -{ - int return_value = -1; - const char *name = ident->value (); - ACE_CString key (name, 0, 0); - - CORBA::Any *any = 0; - - if (this->filterable_data_.find (key, any) == 0) - { - if (any != 0) - { - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (any)); - return_value = 0; - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_union_value ( - TAO_ETCL_Union_Value *union_value - ) -{ - switch (union_value->sign ()) - { - case 0: - this->queue_.enqueue_head (*union_value->string ()); - break; - case -1: - this->queue_.enqueue_head (-(*union_value->integer ())); - break; - case 1: - this->queue_.enqueue_head (*union_value->integer ()); - break; - default: - return -1; - } - - return 0; -} - -int -TAO_NS_Constraint_Visitor::visit_union_pos ( - TAO_ETCL_Union_Pos *union_pos - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - if (union_pos->union_value ()->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint disc_val; - this->queue_.dequeue_head (disc_val); - - TAO_DynUnion_i dyn_union; - dyn_union.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::TypeCode_var tc = this->current_value_->type (); - - switch (disc_val.expr_type ()) - { - case TAO_ETCL_INTEGER: - case TAO_ETCL_SIGNED: - case TAO_ETCL_UNSIGNED: - { - CORBA::Any disc_any; - CORBA::TypeCode_var disc_tc = - tc->discriminator_type (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - CORBA::TCKind disc_kind = - TAO_DynAnyFactory::unalias (disc_tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - switch (disc_kind) - { - case CORBA::tk_boolean: - disc_any <<= CORBA::Any::from_boolean ((CORBA::Boolean) disc_val); - break; - case CORBA::tk_short: - disc_any <<= (CORBA::Short) ((CORBA::Long) disc_val); - break; - case CORBA::tk_ushort: - disc_any <<= (CORBA::UShort) ((CORBA::ULong) disc_val); - break; - case CORBA::tk_long: - disc_any <<= (CORBA::Long) disc_val; - break; - case CORBA::tk_ulong: - disc_any <<= (CORBA::ULong) disc_val; - break; - case CORBA::tk_enum: - { - TAO_OutputCDR cdr; - cdr.write_ulong ((CORBA::ULong) disc_val); - disc_any._tao_replace (disc_tc.in (), - TAO_ENCAP_BYTE_ORDER, - cdr.begin ()); - break; - } - // @@@ (JP) I don't think ETCL handles 64-bit - // integers at this point, and I also think that - // chars and/or wchars will just come out in the - // constraint as (w)strings of length 1. - case CORBA::tk_longlong: - case CORBA::tk_ulonglong: - case CORBA::tk_char: - case CORBA::tk_wchar: - default: - return -1; - } - - DynamicAny::DynAny_var dyn_any = - TAO_DynAnyFactory::make_dyn_any (disc_any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - dyn_union.set_discriminator (dyn_any.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - DynamicAny::DynAny_var u_member = - dyn_union.member (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - this->current_value_ = - u_member->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - case TAO_ETCL_STRING: - { - const char *name = (const char *) disc_val; - CORBA::ULong count = - tc->member_count (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - const char *member_name = 0; - CORBA::ULong i = 0; - - for (i = 0; i < count; ++i) - { - member_name = tc->member_name (i - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (ACE_OS::strcmp (name, member_name) == 0) - { - break; - } - } - - // If there's no match, member_label will throw - // CORBA::TypeCode::Bounds and the catch block will - // return -1; - this->current_value_ = tc->member_label (i - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - // The TAO_ETCL_Union_Value that was put on the queue - // shouldn't have any other type. - default: - return -1; - } - - TAO_ETCL_Constraint *nested = union_pos->component (); - - // If there's no nested component, then we just want the - // union member value on the queue. Otherwise, we want - // the member value in current_value_ while we visit - // the nested component. - if (nested == 0) - { - TAO_ETCL_Literal_Constraint lit (this->current_value_); - this->queue_.enqueue_head (lit); - return 0; - } - else - { - return nested->accept (this); - } - } - else - { - return -1; - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_component_pos ( - TAO_ETCL_Component_Pos *pos - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - // If we are here (from visit_component) the Any containing the - // component as found in filterable_data_ will be in current_value_. - CORBA::TypeCode_var tc = this->current_value_->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var member; - CORBA::Boolean success = 0; - CORBA::ULong slot = (CORBA::ULong) *pos->integer (); - - switch (kind) - { - case CORBA::tk_enum: - { - TAO_DynEnum_i dyn_enum; - dyn_enum.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_enum.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = - dyn_enum.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - case CORBA::tk_struct: - { - TAO_DynStruct_i dyn_struct; - dyn_struct.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_struct.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = dyn_struct.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - // @@@ (JP) I think enums and structs are the only two cases handled - // by Component_Pos, since arrays and sequences are handled by - // Component_Array, and unions are handled by Union_Pos. - default: - return -1; - } - - CORBA::Any_var value = member->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Constraint *comp = pos->component (); - - if (comp == 0) - { - TAO_ETCL_Literal_Constraint result (value); - this->queue_.enqueue_head (result); - return 0; - } - else - { - this->current_value_ = value._retn (); - return comp->accept (this); - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_component_assoc ( - TAO_ETCL_Component_Assoc *assoc - ) -{ - CORBA::Any *any = 0; - ACE_CString name (assoc->identifier ()->value (), - 0, - 0); - - switch (this->implicit_id_) - { - case FILTERABLE_DATA: - if (this->filterable_data_.find (name, any) != 0 - || any == 0) - { - return -1; - } - - break; - case VARIABLE_HEADER: - if (this->variable_header_.find (name, any) != 0 - || any == 0) - { - return -1; - } - - break; - // Only the sequence members of CosNotification::StructuredEvent can be - // treated as associative arrays. - default: - return -1; - } - - TAO_ETCL_Constraint *comp = assoc->component (); - CORBA::Any *any_ptr = 0; - - if (comp == 0) - { - TAO_ETCL_Literal_Constraint result (any); - this->queue_.enqueue_head (result); - - // If we're at the end of the line, put the name into - // current_value_ so visit_exist can use it. - ACE_NEW_RETURN (any_ptr, - CORBA::Any, - -1); - (*any_ptr) <<= name.c_str (); - this->current_value_ = any_ptr; - - return 0; - } - else - { - ACE_NEW_RETURN (any_ptr, - CORBA::Any (*any), - -1); - this->current_value_ = any_ptr; - return comp->accept (this); - } -} - -int -TAO_NS_Constraint_Visitor::visit_component_array ( - TAO_ETCL_Component_Array *array - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - // If we are here (from visit_component) the Any containing the - // component as found in filterable_data_ will be in current_value_. - CORBA::TypeCode_var tc = this->current_value_->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var member; - CORBA::Boolean success = 0; - CORBA::ULong slot = (CORBA::ULong) *array->integer (); - - switch (kind) - { - case CORBA::tk_array: - { - TAO_DynEnum_i dyn_array; - dyn_array.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_array.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = dyn_array.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - case CORBA::tk_sequence: - { - TAO_DynStruct_i dyn_sequence; - dyn_sequence.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - success = dyn_sequence.seek (slot - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (success == 0) - { - return -1; - } - - member = - dyn_sequence.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - break; - } - // Enums and sequences are the only two cases handled - // by Component_Array. - default: - return -1; - } - - CORBA::Any_var value = member->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Constraint *comp = array->component (); - - if (comp == 0) - { - TAO_ETCL_Literal_Constraint result (value); - this->queue_.enqueue_head (result); - return 0; - } - else - { - this->current_value_ = value._retn (); - return comp->accept (this); - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_special (TAO_ETCL_Special *special) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var tc = this->current_value_->type (); - - switch (special->type ()) - { - case TAO_ETCL_LENGTH: - { - // If the TCKind is not a sequence or an array, the - // call to length() will raise an exception, and the - // catch block will return -1; - CORBA::ULong length = tc->length (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (length); - this->queue_.enqueue_head (lit); - return 0; - } - case TAO_ETCL_DISCRIMINANT: - { - // If the TCKind is not a union, the - // call to init() will raise an exception, and the - // catch block will return -1; - TAO_DynUnion_i dyn_union; - dyn_union.init (this->current_value_.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var disc = - dyn_union.get_discriminator (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Any_var disc_any = disc->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (disc_any); - this->queue_.enqueue_head (lit); - return 0; - } - case TAO_ETCL_TYPE_ID: - { - const char *name = tc->name (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (name); - this->queue_.enqueue_head (lit); - return 0; - } - case TAO_ETCL_REPOS_ID: - { - const char *id = tc->id (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - TAO_ETCL_Literal_Constraint lit (id); - this->queue_.enqueue_head (lit); - return 0; - } - default: - return -1; - } - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_component ( - TAO_ETCL_Component *component - ) -{ - TAO_ETCL_Constraint *nested = component->component (); - TAO_ETCL_Identifier *identifier = component->identifier (); - ACE_CString component_name (identifier->value (), - 0, - 0); - CORBA::Any *any_ptr = 0; - - if (this->implicit_ids_.find (component_name, this->implicit_id_) != 0) - { - this->implicit_id_ = NONE; - } - - // If this component has no sub-component, only an identifier, - // then we just visit the identifier, which puts a literal on - // the queue to be handled upon returning from this method call. - // If there is a sub-component, we store the literal's value - // in our member _var for possible examination at a more - // nested level, and visit the sub-component. If the identifier - // matches one of the nested field names in - // CosNotification::StructuredEvent, we just visit the nested - // component, if any. - if (this->implicit_id_ == NONE) - { - if (nested == 0) - { - // If this is the end of the line, we put the component name - // into current_value_ so visit_exist can use it. - ACE_NEW_RETURN (any_ptr, - CORBA::Any, - -1); - (*any_ptr) <<= component_name.c_str (); - this->current_value_ = any_ptr; - return identifier->accept (this); - } - else - { - int result = identifier->accept (this); - - if (result != 0) - { - return result; - } - - TAO_ETCL_Literal_Constraint id; - this->queue_.dequeue_head (id); - ACE_NEW_RETURN (any_ptr, - CORBA::Any (*(const CORBA::Any *) id), - -1); - this->current_value_ = any_ptr; - } - } - - if (nested != 0) - { - return nested->accept (this); - } - else - { - switch (this->implicit_id_) - { - case TYPE_NAME: - { - TAO_ETCL_Literal_Constraint tn (this->type_name_.in ()); - this->queue_.enqueue_head (tn); - return 0; - } - case EVENT_NAME: - { - TAO_ETCL_Literal_Constraint en (this->event_name_.in ()); - this->queue_.enqueue_head (en); - return 0; - } - case DOMAIN_NAME: - { - TAO_ETCL_Literal_Constraint dn (this->domain_name_.in ()); - this->queue_.enqueue_head (dn); - return 0; - } - case REMAINDER_OF_BODY: - { - TAO_ETCL_Literal_Constraint rob (&this->remainder_of_body_); - this->queue_.enqueue_head (rob); - return 0; - } - // The above cases are the leaves of the - // CosNotification::StructuredEvent "tree". Anything else and we - // should have a nested component. otherwise, it's an error. - default: - return -1; - } - } -} - -int -TAO_NS_Constraint_Visitor::visit_dot (TAO_ETCL_Dot *dot) -{ - // If we are here, we know we're headed for a more nested - // level, so we just visit it, there's nothing else in this - // constraint. - return dot->component ()->accept (this); -} - -int -TAO_NS_Constraint_Visitor::visit_eval (TAO_ETCL_Eval *eval) -{ - // Nothing to do but visit the contained component. - return eval->component ()->accept (this); -} - -int -TAO_NS_Constraint_Visitor::visit_default (TAO_ETCL_Default *def) -{ - TAO_ETCL_Constraint *comp = def->component (); - - if (comp == 0) - { - return -1; - } - - if (comp->accept (this) != 0) - { - return -1; - } - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var tc = this->current_value_->type (); - - // If the current member is not a union, this call will - // throw BadKind and the catch block will return -1. - CORBA::Long default_index = tc->default_index (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // No default index. - if (default_index == -1) - { - TAO_ETCL_Literal_Constraint result ((CORBA::Boolean) 0); - this->queue_.enqueue_head (result); - return 0; - } - - // Okay, there's a default index, but is it active? - - TAO_ETCL_Literal_Constraint disc; - this->queue_.dequeue_head (disc); - TAO_ETCL_Literal_Constraint default_index_value (default_index); - return (disc == default_index_value); - } - ACE_CATCHANY - { - return -1; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -int -TAO_NS_Constraint_Visitor::visit_exist (TAO_ETCL_Exist *exist) -{ - TAO_ETCL_Constraint *component = exist->component (); - - if (component->accept (this) == 0) - { - const char *value = 0; - CORBA::Boolean result = 0; - - // For the two cases below, we don't want the item at the top of - // the queue, because it's the result of a hash table lookup. For - // an existence test, we want the key value, which is stored in - // the current_value_ member. - if (this->implicit_id_ == FILTERABLE_DATA - || this->implicit_id_ == VARIABLE_HEADER) - { - TAO_ETCL_Literal_Constraint current ( - &this->current_value_.inout () - ); - value = CORBA::string_dup ((const char *) current); - } - - switch (this->implicit_id_) - { - case FILTERABLE_DATA: - result = - (this->filterable_data_.find (ACE_CString (value, 0, 0)) == 0); - break; - case VARIABLE_HEADER: - result = - (this->variable_header_.find (ACE_CString (value, 0, 0)) == 0); - break; - case TYPE_NAME: - result = (this->type_name_.in () != 0); - break; - case EVENT_NAME: - result = (this->event_name_.in () != 0); - break; - case DOMAIN_NAME: - result = (this->domain_name_.in () != 0); - break; - // Anything other than the above cases is an error. - default: - return -1; - } - - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - - return 0; - } - - return -1; -} - -int -TAO_NS_Constraint_Visitor::visit_unary_expr ( - TAO_ETCL_Unary_Expr *unary_expr - ) -{ - TAO_ETCL_Constraint *subexpr = unary_expr->subexpr (); - - if (subexpr->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint subexpr_result; - CORBA::Boolean result = 0; - int op_type = unary_expr->type (); - - switch (op_type) - { - case TAO_ETCL_NOT: - this->queue_.dequeue_head (subexpr_result); - result = ! (CORBA::Boolean) subexpr_result; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - return 0; - case TAO_ETCL_MINUS: - // The leading '-' was parsed separately, so we have to pull - // the literal constraint off the queue, apply the class' own - // unary minus operator, and put it back. - this->queue_.dequeue_head (subexpr_result); - this->queue_.enqueue_head (-subexpr_result); - return 0; - case TAO_ETCL_PLUS: - // Leave the literal constraint on the queue. The leading - // '+' was just syntactic sugar - no action is necessary. - return 0; - default: - // The parser should never construct a TAO_ETCL_Unary_Constraint - // behind any operators except the above three. - return -1; - } - } - - return -1; -} - -int -TAO_NS_Constraint_Visitor::visit_binary_expr ( - TAO_ETCL_Binary_Expr *binary_expr - ) -{ - int bin_op_type = binary_expr->type (); - - switch (bin_op_type) - { - case TAO_ETCL_OR: - return this->visit_or (binary_expr); - case TAO_ETCL_AND: - return this->visit_and (binary_expr); - case TAO_ETCL_LT: - case TAO_ETCL_LE: - case TAO_ETCL_GT: - case TAO_ETCL_GE: - case TAO_ETCL_EQ: - case TAO_ETCL_NE: - case TAO_ETCL_PLUS: - case TAO_ETCL_MINUS: - case TAO_ETCL_MULT: - case TAO_ETCL_DIV: - return this->visit_binary_op (binary_expr, - bin_op_type); - case TAO_ETCL_TWIDDLE: - return this->visit_twiddle (binary_expr); - case TAO_ETCL_IN: - return this->visit_in (binary_expr); - default: - return -1; - } -} - -int -TAO_NS_Constraint_Visitor::visit_or ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - CORBA::Boolean result = 0; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint lhs_result; - this->queue_.dequeue_head (lhs_result); - result = (CORBA::Boolean) lhs_result; - - // Short-circuiting OR. - if (result == 0) - { - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint rhs_result; - this->queue_.dequeue_head (rhs_result); - result = (CORBA::Boolean) rhs_result; - return_value = 0; - } - } - else - { - return_value = 0; - } - } - - if (return_value == 0) - { - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_and ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - CORBA::Boolean result = 0; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint lhs_result; - this->queue_.dequeue_head (lhs_result); - result = (CORBA::Boolean) lhs_result; - - // Short-circuiting AND. - if (result == 1) - { - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint rhs_result; - this->queue_.dequeue_head (rhs_result); - result = (CORBA::Boolean) rhs_result; - return_value = 0; - } - } - else - { - return_value = 0; - } - } - - if (return_value == 0) - { - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_binary_op ( - TAO_ETCL_Binary_Expr *binary, - int op_type - ) -{ - int return_value = -1; - TAO_ETCL_Constraint *lhs = binary->lhs (); - CORBA::Boolean result = 0; - - // Perform an operation on the results of evaluating the left and - // right branches of this subtree. - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint left_operand; - this->queue_.dequeue_head (left_operand); - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint right_operand; - this->queue_.dequeue_head (right_operand); - return_value = 0; - - switch (op_type) - { - case TAO_ETCL_LT: - result = left_operand < right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_LE: - result = left_operand <= right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_GT: - result = left_operand > right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_GE: - result = left_operand >= right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_EQ: - result = left_operand == right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_NE: - result = left_operand != right_operand; - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - break; - case TAO_ETCL_PLUS: - this->queue_.enqueue_head (left_operand + right_operand); - break; - case TAO_ETCL_MINUS: - this->queue_.enqueue_head (left_operand - right_operand); - break; - case TAO_ETCL_MULT: - this->queue_.enqueue_head (left_operand * right_operand); - break; - case TAO_ETCL_DIV: - this->queue_.enqueue_head (left_operand / right_operand); - break; - default: - return_value = -1; - } - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_twiddle ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - // Determine if the left operand is a substring of the right. - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint left; - this->queue_.dequeue_head (left); - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint right; - this->queue_.dequeue_head (right); - CORBA::Boolean result = - (ACE_OS::strstr ((const char *) right, - (const char *) left) != 0); - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - return_value = 0; - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_in ( - TAO_ETCL_Binary_Expr *binary - ) -{ - int return_value = -1; - TAO_ETCL_Constraint *lhs = binary->lhs (); - - // Determine if the left operand is contained in the right. - - if (lhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint left; - this->queue_.dequeue_head (left); - - TAO_ETCL_Constraint *rhs = binary->rhs (); - - if (rhs->accept (this) == 0) - { - TAO_ETCL_Literal_Constraint bag; - this->queue_.dequeue_head (bag); - - if (bag.expr_type () == TAO_ETCL_COMPONENT) - { - const CORBA::Any *component = (const CORBA::Any *) bag; - CORBA::TCKind kind = CORBA::tk_null; - - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var tc = component->type (); - kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - return return_value; - } - ACE_ENDTRY; - - CORBA::Boolean result = 0; - - switch (kind) - { - case CORBA::tk_sequence: - result = this->sequence_does_contain (component, - left); - break; - case CORBA::tk_array: - result = this->array_does_contain (component, - left); - break; - case CORBA::tk_struct: - result = this->struct_does_contain (component, - left); - break; - case CORBA::tk_union: - result = this->union_does_contain (component, - left); - break; - case CORBA::tk_any: - result = this->any_does_contain (component, - left); - break; - default: - return return_value; - } - - this->queue_.enqueue_head (TAO_ETCL_Literal_Constraint (result)); - return_value = 0; - } - } - } - - return return_value; -} - -int -TAO_NS_Constraint_Visitor::visit_preference ( - TAO_ETCL_Preference * - ) -{ - // According to OMG 00-06-20 section 2.4.1, the Notification Service - // does not use the preference operators. The method must be here - // because it is called by the ETCL node, which may be used by other - // CORBA services that do use the preference operators. - return -1; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::sequence_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var type = any->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (type.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the array elements must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - return 0; - } - - TAO_DynSequence_i dyn_seq; - dyn_seq.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::AnySeq_var any_seq = - dyn_seq.get_elements (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong length = any_seq->length (); - - for (CORBA::ULong i = 0; i < length; ++i) - { - TAO_ETCL_Literal_Constraint element (&any_seq[i]); - - if (item == element) - { - return 1; - } - } - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::array_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - CORBA::TypeCode_var type = any->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (type.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the array elements must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - return 0; - } - - TAO_DynArray_i dyn_array; - dyn_array.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::AnySeq_var any_seq = - dyn_array.get_elements (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong length = any_seq->length (); - - for (CORBA::ULong i = 0; i < length; ++i) - { - TAO_ETCL_Literal_Constraint element (&any_seq[i]); - - if (item == element) - { - return 1; - } - } - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::struct_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - TAO_DynStruct_i dyn_struct; - dyn_struct.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::NameValuePairSeq_var members = - dyn_struct.get_members (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::ULong length = members->length (); - CORBA::TypeCode_var tc; - CORBA::TCKind kind; - - for (CORBA::ULong i = 0; i < length; ++i) - { - tc = members[i].value.type (); - kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the struct member must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - continue; - } - - TAO_ETCL_Literal_Constraint element (&members[i].value); - - if (item == element) - { - return 1; - } - } - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - return 0; -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::union_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - TAO_DynUnion_i dyn_union; - dyn_union.init (*any - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - DynamicAny::DynAny_var cc = - dyn_union.current_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Any_var member = cc->to_any (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::TypeCode_var tc = member->type (); - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // The literal and the union member must be - // of the same simple type. - CORBA::Boolean match = this->simple_type_match (item.expr_type (), - kind); - - if (match == 0) - { - return 0; - } - - TAO_ETCL_Literal_Constraint element (&member.inout ()); - - return (item == element); - } - ACE_CATCHANY - { - return 0; - } - ACE_ENDTRY; - - ACE_NOTREACHED (return 0); -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::any_does_contain ( - const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item - ) -{ - const CORBA::Any *result = 0; - - *any >>= result; - - TAO_ETCL_Literal_Constraint element (ACE_const_cast (CORBA::Any *, - result)); - - return (item == element); -} - -CORBA::Boolean -TAO_NS_Constraint_Visitor::simple_type_match (int expr_type, - CORBA::TCKind tc_kind) -{ - switch (expr_type) - { - case TAO_ETCL_STRING: - if (tc_kind != CORBA::tk_string) - { - return 0; - } - case TAO_ETCL_DOUBLE: - if (tc_kind != CORBA::tk_double - && tc_kind != CORBA::tk_float) - { - return 0; - } - case TAO_ETCL_INTEGER: - case TAO_ETCL_SIGNED: - if (tc_kind != CORBA::tk_short - && tc_kind != CORBA::tk_long - && tc_kind != CORBA::tk_longlong) - { - return 0; - } - case TAO_ETCL_UNSIGNED: - if (tc_kind != CORBA::tk_ushort - && tc_kind != CORBA::tk_ulong - && tc_kind != CORBA::tk_ulonglong) - { - return 0; - } - case TAO_ETCL_BOOLEAN: - if (tc_kind != CORBA::tk_boolean) - { - return 0; - } - default: - return 0; - } -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Hash_Map_Manager<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Entry <ACE_CString, CORBA::Any*>; -template class ACE_Hash_Map_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Node<TAO_ETCL_Literal_Constraint>; -template class ACE_Unbounded_Queue<TAO_ETCL_Literal_Constraint>; -template class ACE_Unbounded_Queue_Iterator<TAO_ETCL_Literal_Constraint>; - - -template class ACE_Hash_Map_Manager<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Entry <ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field>; -template class ACE_Hash_Map_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Entry <ACE_CString, CORBA::Any*> -#pragma instantiate ACE_Hash_Map_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<ACE_CString, CORBA::Any*, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Node<TAO_ETCL_Literal_Constraint> -#pragma instantiate ACE_Unbounded_Queue<TAO_ETCL_Literal_Constraint> -#pragma instantiate ACE_Unbounded_Queue_Iterator<TAO_ETCL_Literal_Constraint> - -#pragma instantiate ACE_Hash_Map_Manager<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Entry <ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field> -#pragma instantiate ACE_Hash_Map_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, TAO_NS_Constraint_Visitor::structured_event_field, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, TAO_SYNCH_MUTEX> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h deleted file mode 100644 index 4b356c9945f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Visitors.h +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Constraint_Visitors.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - * @author Jeff Parsons <parsons@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_CONSTRAINT_VISITORS_H -#define NOTIFY_CONSTRAINT_VISITORS_H - -#include "ace/pre.h" -#include "ace/Hash_Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ETCL/ETCL_Constraint_Visitor.h" -#include "orbsvcs/CosNotificationC.h" -#include "notify_export.h" - -class TAO_ETCL_Constraint; -class TAO_ETCL_Literal_Constraint; -class TAO_Notify_Property_Constraint; - -class TAO_Notify_Export TAO_NS_Constraint_Visitor - : public TAO_ETCL_Constraint_Visitor -{ -public: - /// Constructor. - TAO_NS_Constraint_Visitor (void); - - /// Put the event data into our hash map. - int bind_structured_event (const CosNotification::StructuredEvent &s_event); - - /** - * Returns 1 if the event satisfies the constraint - * represented by the the expression tree rooted at <root>, 0 if it - * doesn't. If an error occurs during the process, the traversal - * automatically fails. - */ - CORBA::Boolean evaluate_constraint (TAO_ETCL_Constraint *root); - - // The overridden methods. - int visit_literal (TAO_ETCL_Literal_Constraint *); - int visit_identifier (TAO_ETCL_Identifier *); - int visit_union_value (TAO_ETCL_Union_Value *); - int visit_union_pos (TAO_ETCL_Union_Pos *); - int visit_component_pos (TAO_ETCL_Component_Pos *); - int visit_component_assoc (TAO_ETCL_Component_Assoc *); - int visit_component_array (TAO_ETCL_Component_Array *); - int visit_special (TAO_ETCL_Special *); - int visit_component (TAO_ETCL_Component *); - int visit_dot (TAO_ETCL_Dot *); - int visit_eval (TAO_ETCL_Eval *); - int visit_default (TAO_ETCL_Default *); - int visit_exist (TAO_ETCL_Exist *); - int visit_unary_expr (TAO_ETCL_Unary_Expr *); - int visit_binary_expr (TAO_ETCL_Binary_Expr *); - int visit_preference (TAO_ETCL_Preference *); - -protected: - // Sub-methods for visit_binary_expr(). - int visit_or (TAO_ETCL_Binary_Expr *); - int visit_and (TAO_ETCL_Binary_Expr *); - int visit_twiddle (TAO_ETCL_Binary_Expr *); - int visit_in (TAO_ETCL_Binary_Expr *); - int visit_binary_op (TAO_ETCL_Binary_Expr *binary_expr, - int op_type); - - // These use dynamic anys to look inside the ETCL component. - CORBA::Boolean sequence_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean array_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean struct_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean union_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - CORBA::Boolean any_does_contain (const CORBA::Any *any, - TAO_ETCL_Literal_Constraint &item); - - // Utility function to compare a TAO_ETCL_Literal_Constraint type - // and a type code. - CORBA::Boolean simple_type_match (int expr_type, - CORBA::TCKind tc_kind); - - enum structured_event_field - { - FILTERABLE_DATA, - HEADER, - FIXED_HEADER, - EVENT_TYPE, - DOMAIN_NAME, - TYPE_NAME, - EVENT_NAME, - VARIABLE_HEADER, - REMAINDER_OF_BODY, - NONE - }; - - /// Storage for the type of implicit id the component has (if any). - structured_event_field implicit_id_; - - /// Lookup table for the implicit ids, to avoid string comparisons in - /// derived visitors. - ACE_Hash_Map_Manager <ACE_CString, structured_event_field, TAO_SYNCH_MUTEX> - implicit_ids_; - - /// Used to lookup names and values in the event's 'filterable_data' field. - ACE_Hash_Map_Manager <ACE_CString, CORBA::Any *, TAO_SYNCH_MUTEX> - filterable_data_; - - /// Used to lookup names and values in the event's 'variable_header' field. - ACE_Hash_Map_Manager <ACE_CString, CORBA::Any *, TAO_SYNCH_MUTEX> - variable_header_; - - /// Storage for string names under the structured event's - /// 'fixed_header' field. - CORBA::String_var domain_name_; - CORBA::String_var type_name_; - CORBA::String_var event_name_; - - /// Storage for the structured_event's 'remainder_of_body' field. - CORBA::Any remainder_of_body_; - - /// The result of a non_boolean operation. - ACE_Unbounded_Queue <TAO_ETCL_Literal_Constraint> queue_; - - /// Holder for a value found in the event fields filterable_data, - /// variable_header or remainder_of_body. - CORBA::Any_var current_value_; - - /// Holder for a string name in the event fields fixed_header, - /// variable_header, or filterable_data. - CORBA::String_var current_name_; -}; - -#include "ace/post.h" -#endif /* NOTIFY_CONSTRAINT_VISITORS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp deleted file mode 100644 index aacf0df5f45..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.cpp +++ /dev/null @@ -1,814 +0,0 @@ -// $Id$ - -#include "Notify_ConsumerAdmin_i.h" -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Notify_ProxyPushSupplier_i.h" -#include "Notify_StructuredProxyPushSupplier_i.h" -#include "Notify_SequenceProxyPushSupplier_i.h" -#include "Notify_EventChannel_i.h" -#include "Notify_Event_Manager.h" -#include "Notify_Channel_Objects_Factory.h" -#include "Notify_POA_Factory.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Collection_Factory.h" -#include "Notify_Factory.h" -#include "Notify_Listener_Filter_Eval_Command.h" -#include "Notify_Worker_Task.h" -#include "Notify_Event_Dispatch_Command.h" -#include "Notify_Event_Processor.h" -#include "Notify_Worker_Task.h" - -#include "tao/debug.h" - -ACE_RCSID (Notify, - Notify_ConsumerAdmin_i, - "$Id$") - -// Implementation skeleton constructor -TAO_Notify_ConsumerAdmin_i::TAO_Notify_ConsumerAdmin_i ( - TAO_Notify_EventChannel_i* event_channel - ) - :lock_ (0), - refcount_ (1), - destory_child_POAs_ (0), - event_channel_ (event_channel), - // @@ Pradeep: don't use statics, it is better to pass these as - // arguments. - channel_objects_factory_ (TAO_Notify_Factory::get_channel_objects_factory ()), - poa_factory_ (TAO_Notify_Factory::get_poa_factory ()), - collection_factory_ (TAO_Notify_Factory::get_collection_factory ()), - event_manager_ (event_channel->get_event_manager ()), - event_listener_list_ (0), - dispatching_task_ (0), - filter_eval_task_ (0) -{ - // @@ Pradeep: don't forget the this-> stuff for local variables. - this->event_manager_objects_factory_ = this->event_manager_->resource_factory (); - this->event_channel_->_add_ref (); // we don't want our parent to go away! -} - -// Implementation skeleton destructor -TAO_Notify_ConsumerAdmin_i::~TAO_Notify_ConsumerAdmin_i (void) -{ - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, - "in CA %d dtor\n", - this->my_id_)); - } - - delete this->lock_; - - delete this->event_listener_list_; - - this->event_channel_->consumer_admin_destroyed (this->my_id_); - this->event_channel_->_remove_ref (); - - delete this->dispatching_task_; - delete this->filter_eval_task_; -} - -CORBA::ULong -TAO_Notify_ConsumerAdmin_i::_incr_refcnt (void) -{ - ACE_GUARD_RETURN (ACE_Lock, - ace_mon, - *this->lock_, - 0); - return this->refcount_++; -} - -CORBA::ULong -TAO_Notify_ConsumerAdmin_i::_decr_refcnt (void) -{ - { - ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, 0); - this->refcount_--; - - if (this->refcount_ != 0) - { - return this->refcount_; - } - } - - delete this; - return 0; -} - -void -TAO_Notify_ConsumerAdmin_i::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_incr_refcnt (); -} - -void -TAO_Notify_ConsumerAdmin_i::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_decr_refcnt (); -} - -void -TAO_Notify_ConsumerAdmin_i::dispatch_event (TAO_Notify_Event &event - ACE_ENV_ARG_DECL) -{ - // Dispatch the event to all the registered listeners. - TAO_Notify_Dispatch_Command_Worker worker (&event, - this->event_manager_->event_processor ()); - // Propogate the filter command. - - this->event_listener_list_->for_each (&worker ACE_ENV_ARG_PARAMETER); -} - -CORBA::Boolean -TAO_Notify_ConsumerAdmin_i::evaluate_filter (TAO_Notify_Event &event, CORBA::Boolean /*eval_parent*/ ACE_ENV_ARG_DECL) -{ - CORBA::Boolean bval = - this->get_filter_admin ().match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if ((bval == 1 && this->filter_operator_ == CosNotifyChannelAdmin::AND_OP) || - (bval == 0 && this->filter_operator_ == CosNotifyChannelAdmin::OR_OP)) - { - // If the filter operator requires that each listener attached to this admin be evaluated, - // we feed the listeners to the "listener filter evaluation" task. - - TAO_Notify_Filter_Command_Worker worker (&event, this->event_manager_->event_processor (), 0); - // note the last param. we ask that the parent filter *not* be evaluated again - // because we've done it here. - - this->event_listener_list_->for_each (&worker ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - // Propogate the filter command. - - return 0; - } - else if (bval == 1 && this->filter_operator_ == CosNotifyChannelAdmin::OR_OP) - { - // no need to check any of the children. happy dispatching! - return 1; - - // OR we could instead do: - // - // this->dispatch_event (event ACE_ENV_ARG_PARAMETER); - // return 0; - // - // This will short circuit a few steps, because the event processor is going to - // turn around and create a dispatching command object to call dispatch_event. - // My $.02 worth optimization fetish! - // but we'll give in favour of consistency ;) - } - - return 0; // in all [other] cases, return false. -} - -void -TAO_Notify_ConsumerAdmin_i::proxy_pushsupplier_destroyed (CosNotifyChannelAdmin::ProxyID proxyID) -{ - this->proxy_pushsupplier_ids_.put (proxyID); // This id is no longer in use. -} - -void -TAO_Notify_ConsumerAdmin_i::init (CosNotifyChannelAdmin::AdminID my_id, - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator, - PortableServer::POA_ptr my_POA - ACE_ENV_ARG_DECL) -{ - my_POA_ = PortableServer::POA::_duplicate (my_POA); - - this->lock_ = - this->channel_objects_factory_->create_consumer_admin_lock (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->proxy_pushsupplier_POA_ = this->poa_factory_-> - create_proxy_pushsupplier_POA (this->my_POA_.in (), my_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->my_id_ = my_id; - this->filter_operator_ = filter_operator; - - this->event_listener_list_ = - this->collection_factory_->create_event_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Create the task to forward filtering/dispatching commands to: - // @@ think about how get rid of these 2 allocations per consumer admin. - // add a "get_singleton_reactive_task" to the event manager factory interface. - this->dispatching_task_ = - new TAO_Notify_Worker_Task (); - /*this->event_manager_objects_factory_->create_dispatching_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - */ - this->filter_eval_task_ = - new TAO_Notify_Worker_Task (); - // this->event_manager_objects_factory_->create_listener_eval_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - // Init the tasks, allowing them to update values based on - // the admin and qos properties. - this->dispatching_task_->init_task (admin_properties, - &(this->qos_admin_)); - this->filter_eval_task_->init_task (admin_properties, - &(this->qos_admin_)); - - // Initially we set up things so that all listeners are subscribed for - // all the events so that things "work" even if we don't twiddle with - // the subscriptions. The side effect is that whenever we start setting - // up subscriptions, we must remove the special event type otherwise we - // will get the same event twice! - // check with the resource manager if this option is enabled. - /*if (this->resource_manager_->default_subscription_enabled () == 1) - { - TAO_Notify_EventType& special_type = - TAO_Notify_EventType::special_event_type (); - - CosNotification::EventTypeSeq added (1), removed (0); - - added.length (1); - removed.length (0); - - added[0] = special_type.get_native (); - - this->subscription_change (added, removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - */ -} - -void -TAO_Notify_ConsumerAdmin_i::destroy_i (ACE_ENV_SINGLE_ARG_DECL) -{ - CosNotification::EventTypeSeq removed; - - CosNotification::EventTypeSeq added (0); - added.length (0); - - // unsubscribe it to our current subscriptions. - removed.length (this->subscription_list_.size ()); - - this->subscription_list_.populate (removed); - - this->event_manager_->subscribe_for_events (this, - added, removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // deactivate ourselves - this->poa_factory_->deactivate_object (this, this->my_POA_.in () - ACE_ENV_ARG_PARAMETER); - - // shutdown proxys. - TAO_Notify_Shutdown_Worker shutdown_worker; - - this->event_listener_list_->for_each (&shutdown_worker ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_listener_list_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->poa_factory_->destroy_POA (this->proxy_pushsupplier_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->dispatching_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->filter_eval_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_Notify_ConsumerAdmin_i::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // unregister from EC - this->event_channel_->unregister_listener (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->destroy_i (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_ConsumerAdmin_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - this->destroy_i (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -TAO_Notify_Worker_Task* -TAO_Notify_ConsumerAdmin_i::event_dispatch_task (void) -{ - return this->dispatching_task_; -} - -TAO_Notify_Worker_Task* -TAO_Notify_ConsumerAdmin_i::filter_eval_task (void) -{ - return this->filter_eval_task_; -} - -void -TAO_Notify_ConsumerAdmin_i::subscription_change (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )) -{ - - TAO_Notify_EventType_List seq_added, seq_removed; - - seq_added.insert_seq (added); - seq_removed.insert_seq (removed); - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - TAO_Notify_EventType_List::preprocess (this->subscription_list_, seq_added, seq_removed); - - } - - CosNotification::EventTypeSeq p_added, p_removed; - - seq_added.populate (p_added); - seq_removed.populate (p_removed); - - this->event_manager_->subscribe_for_events (this, - p_added, - p_removed - ACE_ENV_ARG_PARAMETER); - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, - "ConsumerAdmin %d: added following types: ", - my_id_ )); - - CORBA::ULong i = 0; - - for (i = 0; i < p_added.length (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - "(%s, %s)\t", - p_added[i].domain_name.in(), - p_added[i].type_name.in())); - } - - ACE_DEBUG ((LM_DEBUG,"\n ConsumerAdmin %d: removed following types: ",my_id_ )); - - for (i = 0; i < p_removed.length (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - "(%s, %s)\t", - p_removed[i].domain_name.in(), - p_removed[i].type_name.in())); - } - - CosNotification::EventTypeSeq current; - this->subscription_list_.populate (current); - - ACE_DEBUG ((LM_DEBUG, - "\n ConsumerAdmin %d:current subscriptions: ", - my_id_)); - - for (i = 0; i < current.length (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - "(%s, %s)\n", - current[i].domain_name.in(), - current[i].type_name.in())); - } - } -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_Notify_ConsumerAdmin_i::get_ref (ACE_ENV_SINGLE_ARG_DECL) -{ - CORBA::Object_var obj = this->poa_factory_-> - servant_to_reference (this->my_POA_.in (), this ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - return CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -TAO_Notify_Event_Manager* -TAO_Notify_ConsumerAdmin_i::get_event_manager (void) -{ - return this->event_manager_; -} - -TAO_Notify_FilterAdmin_i& -TAO_Notify_ConsumerAdmin_i::get_filter_admin (void) -{ - return this->filter_admin_; -} - -void -TAO_Notify_ConsumerAdmin_i::register_listener (TAO_Notify_EventListener *listener ACE_ENV_ARG_DECL) -{ - // register it. - this->event_listener_list_->connected (listener ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_Notify_ConsumerAdmin_i::unregister_listener (TAO_Notify_EventListener *listener ACE_ENV_ARG_DECL) -{ - this->event_listener_list_->disconnected (listener ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_Notify_ConsumerAdmin_i::deactivate_proxy_pushsupplier (PortableServer::Servant servant ACE_ENV_ARG_DECL) -{ - this->poa_factory_-> - deactivate_object (servant, this->proxy_pushsupplier_POA_.in () - ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminID -TAO_Notify_ConsumerAdmin_i::MyID (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return my_id_; -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_Notify_ConsumerAdmin_i::MyChannel (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return event_channel_->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::InterFilterGroupOperator -TAO_Notify_ConsumerAdmin_i::MyOperator (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return filter_operator_; -} - -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_Notify_ConsumerAdmin_i::push_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->proxy_pushsupplier_ids_.get_sequence (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_Notify_ConsumerAdmin_i::get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ProxyNotFound - )) -{ - CORBA::Object_var obj = - this->poa_factory_->id_to_reference (proxy_id, - proxy_pushsupplier_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ()); - - return CosNotifyChannelAdmin::ProxySupplier::_narrow (obj.in ()); -} - -CORBA::Object_ptr -TAO_Notify_ConsumerAdmin_i::obtain_struct_proxy_pushsupplier_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - TAO_Notify_StructuredProxyPushSupplier_i* struct_proxy_pushsupplier = - this->channel_objects_factory_->create_struct_proxy_pushsupplier (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - PortableServer::ServantBase_var proxy_pushsupplier_var (struct_proxy_pushsupplier); - - struct_proxy_pushsupplier->init (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return this->poa_factory_-> - activate_object_with_id (proxy_id, - this->proxy_pushsupplier_POA_.in (), - struct_proxy_pushsupplier - ACE_ENV_ARG_PARAMETER); -} - -CORBA::Object_ptr -TAO_Notify_ConsumerAdmin_i::obtain_sequence_proxy_pushsupplier_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - TAO_Notify_SequenceProxyPushSupplier_i* seq_proxy_pushsupplier = - this->channel_objects_factory_->create_seq_proxy_pushsupplier (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - PortableServer::ServantBase_var proxy_pushsupplier_var (seq_proxy_pushsupplier); - - seq_proxy_pushsupplier->init (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return this->poa_factory_-> - activate_object_with_id (proxy_id, - this->proxy_pushsupplier_POA_.in (), - seq_proxy_pushsupplier - ACE_ENV_ARG_PARAMETER); -} - -CORBA::Object_ptr -TAO_Notify_ConsumerAdmin_i::obtain_proxy_pushsupplier_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - TAO_Notify_ProxyPushSupplier_i* proxy_pushsupplier = - this->channel_objects_factory_->create_proxy_pushsupplier (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - PortableServer::ServantBase_var proxy_pushsupplier_var (proxy_pushsupplier); - - proxy_pushsupplier->init (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return this->poa_factory_-> - activate_object_with_id (proxy_id, - this->proxy_pushsupplier_POA_.in (), - proxy_pushsupplier - ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_Notify_ConsumerAdmin_i::obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )) -{ - CORBA::Object_var obj; - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ()); - - proxy_id = this->proxy_pushsupplier_ids_.get (); - } - - switch (ctype) - { - case CosNotifyChannelAdmin::ANY_EVENT: - { - obj = this->obtain_proxy_pushsupplier_i (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ()); - } - break; - case CosNotifyChannelAdmin::STRUCTURED_EVENT: - { - obj = this->obtain_struct_proxy_pushsupplier_i (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ()); - } - break; - - case CosNotifyChannelAdmin::SEQUENCE_EVENT: - { - obj = this->obtain_sequence_proxy_pushsupplier_i (proxy_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ()); - } - break; - - default: - ACE_THROW_RETURN (CORBA::BAD_PARAM (), - CosNotifyChannelAdmin::ProxySupplier::_nil ()); - } - - this->proxy_pushsupplier_ids_.next (); // commit this id to the pool - return CosNotifyChannelAdmin::ProxySupplier::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -CosNotification::QoSProperties* -TAO_Notify_ConsumerAdmin_i::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->qos_admin_.get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_ConsumerAdmin_i::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.set_qos (qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Then update our task's qos - if (this->dispatching_task_ != 0) - { - this->dispatching_task_->update_qos (this->qos_admin_); - } - if (this->filter_eval_task_ != 0) - { - this->filter_eval_task_->update_qos (this->qos_admin_); - } -} - -void -TAO_Notify_ConsumerAdmin_i::validate_qos (const CosNotification::QoSProperties & required_qos, CosNotification::NamedPropertyRangeSeq_out available_qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.validate_qos (required_qos, available_qos ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::FilterID -TAO_Notify_ConsumerAdmin_i::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_ConsumerAdmin_i::remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::Filter_ptr -TAO_Notify_ConsumerAdmin_i::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::FilterIDSeq* -TAO_Notify_ConsumerAdmin_i::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_ConsumerAdmin_i::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosEventChannelAdmin::ProxyPushSupplier_ptr -TAO_Notify_ConsumerAdmin_i::obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_Notify_CosEC_ProxyPushSupplier_i* cosec_proxy; - - ACE_NEW_THROW_EX (cosec_proxy, - TAO_Notify_CosEC_ProxyPushSupplier_i (this), - CORBA::NO_MEMORY ()); - - PortableServer::ServantBase_var proxy_var (cosec_proxy); - - cosec_proxy->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (CosEventChannelAdmin::ProxyPushSupplier::_nil ()); - - PortableServer::POA_var def_poa = - this->event_channel_->get_default_POA (); - - CORBA::Object_var obj = this->poa_factory_-> - activate_object (def_poa.in (), cosec_proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosEventChannelAdmin::ProxyPushSupplier::_nil ()); - - return CosEventChannelAdmin::ProxyPushSupplier::_narrow (obj.in ()); -} - -CosNotifyChannelAdmin::ProxySupplier_ptr -TAO_Notify_ConsumerAdmin_i::obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType /*ctype*/, CosNotifyChannelAdmin::ProxyID_out /*proxy_id*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyChannelAdmin::ProxySupplier::_nil ()); -} - -CosEventChannelAdmin::ProxyPullSupplier_ptr -TAO_Notify_ConsumerAdmin_i::obtain_pull_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosEventChannelAdmin::ProxyPullSupplier::_nil ()); -} - - -CosNotifyFilter::MappingFilter_ptr -TAO_Notify_ConsumerAdmin_i::priority_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyFilter::MappingFilter::_nil ()); -} - -void -TAO_Notify_ConsumerAdmin_i::priority_filter (CosNotifyFilter::MappingFilter_ptr /*priority_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosNotifyFilter::MappingFilter_ptr -TAO_Notify_ConsumerAdmin_i::lifetime_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyFilter::MappingFilter::_nil ()); -} - -void -TAO_Notify_ConsumerAdmin_i::lifetime_filter (CosNotifyFilter::MappingFilter_ptr /*lifetime_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_Notify_ConsumerAdmin_i::pull_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); -} - -/****************************************************************************************************/ - -TAO_Notify_Filter_Command_Worker::TAO_Notify_Filter_Command_Worker (TAO_Notify_Event* event, TAO_Notify_Event_Processor* event_processor, CORBA::Boolean eval_parent) - : event_ (event), - event_processor_ (event_processor), - eval_parent_ (eval_parent) -{ -} - -void -TAO_Notify_Filter_Command_Worker::work (TAO_Notify_EventListener* event_listener ACE_ENV_ARG_DECL) -{ - this->event_processor_->evaluate_listener_filter (this->event_, event_listener, - this->eval_parent_ ACE_ENV_ARG_PARAMETER); -} - -/****************************************************************************************************/ - -TAO_Notify_Dispatch_Command_Worker::TAO_Notify_Dispatch_Command_Worker (TAO_Notify_Event* event, TAO_Notify_Event_Processor* event_processor) - : event_ (event), - event_processor_ (event_processor) -{ -} - -TAO_Notify_Dispatch_Command_Worker::~TAO_Notify_Dispatch_Command_Worker () -{ -} - -void -TAO_Notify_Dispatch_Command_Worker::work (TAO_Notify_EventListener* event_listener ACE_ENV_ARG_DECL) -{ - this->event_processor_->dispatch_event (this->event_, event_listener ACE_ENV_ARG_PARAMETER); -} - -/****************************************************************************************************/ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.h deleted file mode 100644 index 76992877c46..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ConsumerAdmin_i.h +++ /dev/null @@ -1,440 +0,0 @@ -//============================================================================= -/** - * @file Notify_ConsumerAdmin_i.h - * - * $Id$ - * - * Implements the CosNotifyChannelAdmin::ConsumerAdmin interface. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_CONSUMERADMIN_I_H -#define TAO_NOTIFY_CONSUMERADMIN_I_H -#include "ace/pre.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_ID_Pool_T.h" -#include "Notify_QoSAdmin_i.h" -#include "Notify_FilterAdmin_i.h" -#include "Notify_Event.h" -#include "Notify_Listeners.h" -#include "Notify_Collection.h" -#include "notify_export.h" - -class TAO_Notify_EventChannel_i; -class TAO_Notify_Event_Manager; -class TAO_Notify_CO_Factory; -class TAO_Notify_POA_Factory; -class TAO_Notify_EMO_Factory; -class TAO_Notify_Collection_Factory; -class TAO_Notify_Worker_Task; -class TAO_Notify_Event_Processor; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_ConsumerAdmin_i - * - * @brief TAO_Notify_ConsumerAdmin_i - * - * Implements the CosNotifyChannelAdmin::ConsumerAdmin interface. - */ -class TAO_Notify_Export TAO_Notify_ConsumerAdmin_i : public TAO_Notify_EventListener, public POA_CosNotifyChannelAdmin::ConsumerAdmin, public PortableServer::RefCountServantBase -{ - - public: - /// Constructor - /// <myChannel> is this objects parent. - TAO_Notify_ConsumerAdmin_i (TAO_Notify_EventChannel_i* myChannel); - - /// Destructor - virtual ~TAO_Notify_ConsumerAdmin_i (void); - - // = TAO_Notify_RefCounted - virtual CORBA::ULong _incr_refcnt (void); - virtual CORBA::ULong _decr_refcnt (void); - - // = The Servant methods - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - //= TAO_Notify_EventListener methods - /// Callback methods to supply the event to the listener. - virtual void dispatch_event (TAO_Notify_Event &event ACE_ENV_ARG_DECL); - - /// Evaluates true if this event is acceptable by the listener. - virtual CORBA::Boolean evaluate_filter (TAO_Notify_Event &event, CORBA::Boolean eval_parent ACE_ENV_ARG_DECL); - - /// Ask the listener to relinqish any bindings and prepare to be disposed. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// The Worker task associated with the event listener for event dispatching - virtual TAO_Notify_Worker_Task* event_dispatch_task (void); - - /// The Worker task associated with the event listener for filter evaluation. - ///= Admin Methods. - virtual TAO_Notify_Worker_Task* filter_eval_task (void); - - /// Initialize the Consumer Admin. - void init (CosNotifyChannelAdmin::AdminID myID, - CosNotifyChannelAdmin::InterFilterGroupOperator myOperator, - PortableServer::POA_ptr my_POA - ACE_ENV_ARG_DECL); - - /// Return the CORBA object for this servant. - CosNotifyChannelAdmin::ConsumerAdmin_ptr get_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Accesor for the event manager. - TAO_Notify_Event_Manager* get_event_manager (void); - - /// Get our filter admin. - TAO_Notify_FilterAdmin_i& get_filter_admin (void); - - /// Deactivate servant from <proxy_pushsupplier_POA_>. - void deactivate_proxy_pushsupplier (PortableServer::Servant servant ACE_ENV_ARG_DECL); - - /// Register with parent for subscription updates. - void register_listener (TAO_Notify_EventListener *listener ACE_ENV_ARG_DECL); - - /// Unregister with parent from subscription updates. - void unregister_listener (TAO_Notify_EventListener *listener ACE_ENV_ARG_DECL); - - /// This id is no longer in use.It can be reused by <proxy_pushsupplier_ids_> - void proxy_pushsupplier_destroyed (CosNotifyChannelAdmin::ProxyID proxyID); - - // = Interface methods - virtual CosNotifyChannelAdmin::AdminID MyID ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::EventChannel_ptr MyChannel ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyFilter::MappingFilter_ptr priority_filter ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void priority_filter ( - CosNotifyFilter::MappingFilter_ptr priority_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyFilter::MappingFilter_ptr lifetime_filter ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void lifetime_filter ( - CosNotifyFilter::MappingFilter_ptr lifetime_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ProxyIDSeq * pull_suppliers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ProxyIDSeq * push_suppliers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ProxySupplier_ptr get_proxy_supplier ( - CosNotifyChannelAdmin::ProxyID proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ProxyNotFound - )); - -virtual CosNotifyChannelAdmin::ProxySupplier_ptr obtain_notification_pull_supplier ( - CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )); - -virtual CosNotifyChannelAdmin::ProxySupplier_ptr obtain_notification_push_supplier ( - CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )); - -virtual void destroy ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotification::QoSProperties * get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - -virtual void validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - -virtual void subscription_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )); - -virtual CosNotifyFilter::FilterID add_filter ( - CosNotifyFilter::Filter_ptr new_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - -virtual CosNotifyFilter::Filter_ptr get_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - -virtual CosNotifyFilter::FilterIDSeq * get_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void remove_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosEventChannelAdmin::ProxyPushSupplier_ptr obtain_push_supplier ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosEventChannelAdmin::ProxyPullSupplier_ptr obtain_pull_supplier ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -protected: - // = Helper methods - /// Destroy CA - void destroy_i (ACE_ENV_SINGLE_ARG_DECL); - - /// Obtain a proxy pushsupplier object - CORBA::Object_ptr obtain_struct_proxy_pushsupplier_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL); - - /// Obtain a structured proxy pushsupplier object. - CORBA::Object_ptr obtain_proxy_pushsupplier_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL); - - /// Obtain a sequence proxy pushsupplier object. - CORBA::Object_ptr obtain_sequence_proxy_pushsupplier_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL); - - // = Data members - /// The locking strategy. - ACE_Lock* lock_; - - /// The reference count. - CORBA::ULong refcount_; - - /// Flag to tell if the child poa's should be destroyed. - CORBA::Boolean destory_child_POAs_; - - /// The channel to which we belong. - TAO_Notify_EventChannel_i* event_channel_; - - /// The factory for channel objects. - TAO_Notify_CO_Factory* channel_objects_factory_; - - /// The factory for POA based containers. - TAO_Notify_POA_Factory* poa_factory_; - - /// Event manager objects factory, - TAO_Notify_EMO_Factory* event_manager_objects_factory_; - - /// Collection objects factory - TAO_Notify_Collection_Factory* collection_factory_; - - /// The event manager to use. - TAO_Notify_Event_Manager* event_manager_; - - /// The inter filter operator to use. - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator_; - - /// My ID. - CosNotifyChannelAdmin::AdminID my_id_; - - /// The POA in which we live. - PortableServer::POA_var my_POA_; - - /// The POA in which all our push suppliers live. - /// We create and own this POA. - PortableServer::POA_var proxy_pushsupplier_POA_; - - /// The list of event types that all our proxys are interested in receiving. - TAO_Notify_EventType_List subscription_list_; - - /// The list of event listeners that have registered with us - TAO_Notify_EventListener_List* event_listener_list_; - - /// Id generator for proxy push suppliers. - TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::ProxyID, - CosNotifyChannelAdmin::ProxyIDSeq> proxy_pushsupplier_ids_; - - /// Handle QoS admin methods. - TAO_Notify_QoSAdmin_i qos_admin_; - - /// Handles the Filter Admin methods. - TAO_Notify_FilterAdmin_i filter_admin_; - - /// The dispatching task to send events to a listener group affiliated with this admin. - TAO_Notify_Worker_Task* dispatching_task_; - - /// The filter evaluation task for this admin. - TAO_Notify_Worker_Task* filter_eval_task_; -}; - -/****************************************************************************************************/ - -/** - * @class TAO_Notify_Filter_Command_Worker - * - * @brief TAO_Notify_Filter_Command_Worker - * - * Enqueue each listener for the filter evaluation command. - */ -class TAO_Notify_Export TAO_Notify_Filter_Command_Worker : public TAO_ESF_Worker<TAO_Notify_EventListener> -{ -public: - TAO_Notify_Filter_Command_Worker (TAO_Notify_Event* event, TAO_Notify_Event_Processor* event_processor, CORBA::Boolean eval_parent); - - // = TAO_ESF_Worker method - void work (TAO_Notify_EventListener* listener ACE_ENV_ARG_DECL); - -protected: - TAO_Notify_Event* event_; - TAO_Notify_Event_Processor* event_processor_; - CORBA::Boolean eval_parent_; -}; - -/****************************************************************************************************/ - -/** - * @class TAO_Notify_Dispatch_Command_Worker - * - * @brief TAO_Notify_Dispatch_Command_Worker - * - * Worker to invoke the dispatch command for each member of the collection. - */ -class TAO_Notify_Export TAO_Notify_Dispatch_Command_Worker : public TAO_ESF_Worker<TAO_Notify_EventListener> -{ -public: - TAO_Notify_Dispatch_Command_Worker (TAO_Notify_Event* event, TAO_Notify_Event_Processor* event_processor); - ~TAO_Notify_Dispatch_Command_Worker (); - - // = TAO_ESF_Worker method - void work (TAO_Notify_EventListener* listener ACE_ENV_ARG_DECL); - -protected: - TAO_Notify_Event* event_; - TAO_Notify_Event_Processor* event_processor_; -}; - -/****************************************************************************************************/ - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_CONSUMERADMIN_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.cpp deleted file mode 100644 index fcc7dacc7df..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "Notify_Default_CO_Factory.h" - -ACE_RCSID(Notify, Notify_Default_CO_Factory, "$Id$") - -int -TAO_Notify_Default_CO_Factory::init_svc (void) -{ - // NOP. - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.h deleted file mode 100644 index 0cbba6a2173..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_CO_Factory.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Default_CO_Factory.h - * - * $Id$ - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_DEFAULT_CO_FACTORY_H -#define NOTIFY_DEFAULT_CO_FACTORY_H - -#include "ace/pre.h" -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_Default_CO_Factory - * - * @brief TAO_Notify_Default_CO_Factory - * - * Maintained for backward compatibility. - */ -class TAO_Notify_Export TAO_Notify_Default_CO_Factory -{ -public: - /// Helper function to register the default factory into the service - /// configurator. - static int init_svc (void); - -}; - -#include "ace/post.h" - -#endif /* NOTIFY_DEFAULT_CO_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.cpp deleted file mode 100644 index d1ac87b35e1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "Notify_Default_Collection_Factory.h" - -ACE_RCSID(Notify, Notify_Default_Collection_Factory, "$Id$") - -int -TAO_Notify_Default_Collection_Factory::init_svc (void) -{ - // NOP. - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.h deleted file mode 100644 index 8a6916dbc76..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_Collection_Factory.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Default_Collection_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_DEFAULT_COLLECTION_FACTORY_H -#define NOTIFY_DEFAULT_COLLECTION_FACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_Default_Collection_Factory - * - * @brief Maintained for backward compatibility. - * - * - */ -class TAO_Notify_Export TAO_Notify_Default_Collection_Factory -{ -public: - - /// Helper function to register the default factory into the service - /// configurator. - static int init_svc (void); -}; - -#include "ace/post.h" -#endif /* NOTIFY_DEFAULT_COLLECTION_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.cpp deleted file mode 100644 index 5cfb1d7e8cb..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "Notify_Default_EMO_Factory.h" - -ACE_RCSID(Notify, Notify_Default_EMO_Factory, "$Id$") - -int -TAO_Notify_Default_EMO_Factory::init_svc (void) -{ - // NOP. - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.h deleted file mode 100644 index 0b666380e84..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Default_EMO_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_DEFAULT_EMO_FACTORY_H -#define NOTIFY_DEFAULT_EMO_FACTORY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_Default_EMO_Factory - * - * @brief Maintained for backward compatibility. - * - */ -class TAO_Notify_Export TAO_Notify_Default_EMO_Factory -{ -public: - /// Helper function to register the default factory into the service - /// configurator. - static int init_svc (void); -}; - -#include "ace/post.h" -#endif /* NOTIFY_DEFAULT_EMO_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.cpp deleted file mode 100644 index 046d1c507ff..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "Notify_Default_POA_Factory.h" - -ACE_RCSID(Notify, Notify_Default_POA_Factory, "$Id$") - -int -TAO_Notify_Default_POA_Factory::init_svc (void) -{ - // NOP. - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.h deleted file mode 100644 index c2dc512c414..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Default_POA_Factory.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Default_POA_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_DEFAULT_POA_FACTORY_H -#define TAO_NOTIFY_DEFAULT_POA_FACTORY_H - -#include "ace/pre.h" -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_Default_POA_Factory - * - * @brief Maintained for backward compatibility. - */ -class TAO_Notify_Export TAO_Notify_Default_POA_Factory -{ -public: - /// Helper function to register the default factory into the service - /// configurator. - static int init_svc (void); -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_DEFAULT_POA_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event.cpp deleted file mode 100644 index 45ae9463e96..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event.cpp +++ /dev/null @@ -1,493 +0,0 @@ -// $Id$ -#include "Notify_Event.h" - -#include "tao/debug.h" - -#if ! defined (__ACE_INLINE__) -#include "Notify_Event.i" -#endif /* __ACE_INLINE__ */ - - -ACE_RCSID(Notify, Notify_Event, "$Id$") - -// @@ Pradeep: David is going to give you a hard time from having a -// static object -TAO_Notify_EventType -TAO_Notify_EventType::special_event_type_ ("*", "%ALL"); - -// @@ You can probably get away returning this stuff by value, and -// creating it on the fly, assuming there aren't too many calls to -// this. -TAO_Notify_EventType& -TAO_Notify_EventType::special_event_type (void) -{ - return special_event_type_; -} - -TAO_Notify_EventType::TAO_Notify_EventType (void) -{ - // No-Op. -} - -void -TAO_Notify_EventType::init_i (const char* domain_name, - const char* type_name) -{ - this->event_type_.domain_name = domain_name; - this->event_type_.type_name = type_name; - - if (this->is_special () == 1) - { - this->event_type_.domain_name = "*"; - this->event_type_.type_name = "%ALL"; - } - - this->recompute_hash (); -} - -TAO_Notify_EventType::TAO_Notify_EventType (const char* domain_name, - const char* type_name) -{ - this->init_i (domain_name, type_name); -} - -TAO_Notify_EventType::TAO_Notify_EventType (const CosNotification::EventType& event_type) -{ - this->init_i (event_type.domain_name.in (),event_type.type_name.in ()); -} - -TAO_Notify_EventType::~TAO_Notify_EventType () -{ -} - -u_long -TAO_Notify_EventType::hash (void) const -{ - // @@ Pradeep: this is an excellent candidate for an inline - // function. Get in the habit of creating .h, .cpp and .i files, - // even if initially the .i file is empty, that way it is easier to - // do this stuff. - return this->hash_value_; -} - -void -TAO_Notify_EventType::recompute_hash (void) -{ - // @@ Pradeep: this code is bound to crash someday if the strings - // are too long.... See if the hash_pjw () function can be modified - // to take accumulate multiple strings, as in: - // hash = ACE::hash_pjw_accummulate (0, str1); - // hash = ACE::hash_pjw_accummulate (hash, str2); - // - // @@ Or use grow the buffer when needed, or just add the two hash - // values or something, but fix this code! - // - char buffer[BUFSIZ]; - ACE_OS::strcpy (buffer, this->event_type_.domain_name.in ()); - ACE_OS::strcat (buffer, this->event_type_.type_name.in ()); - - this->hash_value_ = ACE::hash_pjw (buffer); -} - -void -TAO_Notify_EventType::operator=(const CosNotification::EventType& rhs) -{ - this->init_i (rhs.domain_name.in (),rhs.type_name.in ()); -} - -void -TAO_Notify_EventType::operator=(CosNotification::EventType& rhs) -{ - this->init_i (rhs.domain_name.in (),rhs.type_name.in ()); -} - -int -TAO_Notify_EventType::operator==(const TAO_Notify_EventType& rhs) const -{ - if (this->hash () != rhs.hash ()) - return 0; - else // compare the strings - return (ACE_OS::strcmp (this->event_type_.type_name, rhs.event_type_.type_name) == 0 && - ACE_OS::strcmp (this->event_type_.domain_name, rhs.event_type_.domain_name) == 0 - ); -} - -CORBA::Boolean -TAO_Notify_EventType::is_special (void) const -{ - if ((this->event_type_.domain_name == 0 || - ACE_OS::strcmp (this->event_type_.domain_name, "") == 0 || - ACE_OS::strcmp (this->event_type_.domain_name, "*") == 0) && - (this->event_type_.type_name == 0 || - ACE_OS::strcmp (this->event_type_.type_name, "") == 0 || - ACE_OS::strcmp (this->event_type_.type_name, "*") == 0 || - ACE_OS::strcmp (this->event_type_.type_name, "%ALL") == 0)) - return 1; - else - return 0; -} - -const CosNotification::EventType& -TAO_Notify_EventType::get_native (void) const -{ - return event_type_; -} - -// **************************************************************** - -TAO_Notify_Event::TAO_Notify_Event (void) - :lock_ (0), - refcount_ (1), - event_reliability_ (CosNotification::BestEffort), - priority_ (CosNotification::DefaultPriority), - // start_time_ (0), - // stop_time_ (0), - timeout_ (0) -{ - ACE_NEW (this->lock_, ACE_Lock_Adapter<TAO_SYNCH_MUTEX> ()); -} - -TAO_Notify_Event::~TAO_Notify_Event () -{ - delete this->lock_; - this->lock_ = 0; - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "in ~TAO_Notify_Event %X\n", this)); -} - - -void -TAO_Notify_Event::_incr_refcnt (void) -{ - ACE_GUARD (ACE_Lock, ace_mon, *this->lock_); - this->refcount_++; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "in TAO_Notify_Event %X incr %d\n", this, this->refcount_)); -} - -void -TAO_Notify_Event::_decr_refcnt (void) -{ - int delete_me = 0; - - { - ACE_GUARD (ACE_Lock, ace_mon, *this->lock_); - this->refcount_--; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "in TAO_Notify_Event %X decr %d\n", this, this->refcount_)); - - if (this->refcount_ == 0) - delete_me = 1; - } - - if (delete_me == 1) - delete this; -} - -// **************************************************************** - -// = Any Event Type. - -TAO_Notify_Any::TAO_Notify_Any (CORBA::Any * data) - :data_ (data), - is_owner_ (1) -{ -} - -TAO_Notify_Any::TAO_Notify_Any (const CORBA::Any * data) - :data_ ((CORBA::Any*)data), - is_owner_ (0) -{ -} - -TAO_Notify_Any::~TAO_Notify_Any () -{ - if (this->is_owner_) - delete this->data_; -} - -TAO_Notify_Event* -TAO_Notify_Any::clone (void) -{ - TAO_Notify_Any* clone; - - if (this->is_owner_) - { - // @@ Are you sure this is the right way to clone? You are - // stealing the data from the original class... - ACE_NEW_RETURN (clone, TAO_Notify_Any ((CORBA::Any const *)this->data_), - 0); - this->is_owner_ = 0; - } - else - { - CORBA::Any * data_copy; - ACE_NEW_RETURN (data_copy, CORBA::Any (*this->data_), 0); - ACE_NEW_RETURN (clone, TAO_Notify_Any (data_copy), 0); - - // Later: cleanup data_copy if this new fails. - } - - return clone; -} - -void -TAO_Notify_Any::operator=(const TAO_Notify_Any& notify_any) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "In TAO_Notify_Any::operator=\n")); - - if (this->is_owner_) - delete data_; - - ACE_NEW (this->data_, - CORBA::Any (*notify_any.data_)); - - this->is_owner_ = 1; -} - -CORBA::Boolean -TAO_Notify_Any::is_special_event_type (void) const -{ - return 1; -} - -const TAO_Notify_EventType& -TAO_Notify_Any::event_type (void) const -{ - return TAO_Notify_EventType::special_event_type (); -} - -CORBA::Boolean -TAO_Notify_Any::do_match (CosNotifyFilter::Filter_ptr filter - ACE_ENV_ARG_DECL) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_Any::do_match ()\n")); - - return filter->match (*this->data_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Any::do_push (CosEventComm::PushConsumer_ptr consumer - ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_Any::do_push (" - "CosEventComm::PushConsumer_ptr)\n")); - - consumer->push (*this->data_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Any::do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer - ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_Any::do_push (" - "CosNotifyComm::StructuredPushConsumer_ptr)\n")); - - // translation pg. 28 - CosNotification::StructuredEvent event; - event.remainder_of_body <<= *this->data_; - event.header.fixed_header.event_type.type_name = CORBA::string_dup ("%ANY"); - event.header.fixed_header.event_type.domain_name = CORBA::string_dup (""); - - consumer->push_structured_event (event ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Any::do_push (CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& /*qos_admin*/, - CosNotification::EventBatch& /*unsent*/, - int /*flush_queue*/ - ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_Any::do_push (" - "CosNotifyComm::SequencePushConsumer_ptr)\n")); - - // translation pg. 28 - CosNotification::StructuredEvent event; - event.remainder_of_body <<= *this->data_; - event.header.fixed_header.event_type.type_name = CORBA::string_dup ("%ANY"); - event.header.fixed_header.event_type.domain_name = CORBA::string_dup (""); - - CosNotification::EventBatch events; - events.length (1); - events[0] = event; - - consumer->push_structured_events (events ACE_ENV_ARG_PARAMETER); -} - -// **************************************************************** - -// = TAO_Notify_StructuredEvent - -// @@ Pradeep: many of the same comments that i made for -// TAO_Notify_Any apply here too. - -TAO_Notify_StructuredEvent::TAO_Notify_StructuredEvent (CosNotification::StructuredEvent * notification) - :data_ (notification), - event_type_ (notification->header.fixed_header.event_type), - is_owner_ (1) -{ - - this->init_QoS (); -} - -TAO_Notify_StructuredEvent::TAO_Notify_StructuredEvent (const CosNotification::StructuredEvent * notification) - :data_ ((CosNotification::StructuredEvent*)notification), - event_type_ (notification->header.fixed_header.event_type), - is_owner_ (0) -{ -} - -TAO_Notify_StructuredEvent::~TAO_Notify_StructuredEvent () -{ - if (this->is_owner_) - delete this->data_; -} - -void -TAO_Notify_StructuredEvent::init_QoS (void) -{ - CosNotification::PropertySeq& qos = this->data_->header.variable_header; - - for (CORBA::ULong index = 0; index < qos.length (); ++index) - { - ACE_CString property_name (qos[index].name); - - if (property_name.compare (CosNotification::Priority) == 0) - { - qos[index].value >>= this->priority_; - } - else if (property_name.compare (CosNotification::StartTime) == 0) - { - // qos[index].value >>= this->start_time_; - } - else if (property_name.compare (CosNotification::StopTime) == 0) - { - // qos[index].value >>= this->stop_time_; - } - else if (property_name.compare (CosNotification::Timeout) == 0) - { - qos[index].value >>= this->timeout_; - } - } -} - -TAO_Notify_Event* -TAO_Notify_StructuredEvent::clone (void) -{ - TAO_Notify_StructuredEvent* clone; - - if (this->is_owner_) - { - ACE_NEW_RETURN (clone, TAO_Notify_StructuredEvent ((CosNotification::StructuredEvent const *) this->data_), 0); - this->is_owner_ = 0; - } - else - { - CosNotification::StructuredEvent *data_copy; - ACE_NEW_RETURN (data_copy, CosNotification::StructuredEvent (*this->data_), - 0); - ACE_NEW_RETURN (clone, TAO_Notify_StructuredEvent (data_copy), 0); - // Later: cleanup *data_copy if this new fails. - clone->is_owner_ = 1; - } - - return clone; -} - -void -TAO_Notify_StructuredEvent::operator=(const TAO_Notify_StructuredEvent& structured_event) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "In TAO_Notify_StructuredEvent::operator=\n")); - - if (this->is_owner_) - delete this->data_; - - ACE_NEW (this->data_, - CosNotification::StructuredEvent (*structured_event.data_)); - - this->is_owner_ = 1; - this->event_type_ = structured_event.data_->header.fixed_header.event_type; -} - -CORBA::Boolean -TAO_Notify_StructuredEvent::is_special_event_type (void) const -{ - return this->event_type_.is_special (); -} - -const TAO_Notify_EventType& -TAO_Notify_StructuredEvent::event_type (void) const -{ - return this->event_type_; -} - -CORBA::Boolean -TAO_Notify_StructuredEvent::do_match (CosNotifyFilter::Filter_ptr filter - ACE_ENV_ARG_DECL) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_StructuredEvent::do_match ()\n")); - - return filter->match_structured (*this->data_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_StructuredEvent::do_push (CosEventComm::PushConsumer_ptr consumer - ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_StructuredEvent::do_push (" - "CosEventComm::PushConsumer_ptr)\n")); - - // translation pg. 28 - CORBA::Any any; - any <<= *this->data_; - // is the typecode set by this operation or do we need to set it explicity. - - consumer->push (any ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_StructuredEvent::do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_StructuredEvent::do_push (" - "CosNotifyComm::StructuredPushConsumer_ptr)\n")); - - consumer->push_structured_event (*this->data_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_StructuredEvent::do_push (CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& /*qos_admin*/, - CosNotification::EventBatch& /*unsent*/, - int /*flush_queue*/ - ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_StructuredEvent::do_push (" - "CosNotifyComm::SequencePushConsumer_ptr)\n")); - - CosNotification::EventBatch events; - events.length (1); - events[0] = *this->data_; - - consumer->push_structured_events (events ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event.h deleted file mode 100644 index f539895eddf..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event.h +++ /dev/null @@ -1,288 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Event.h - * - * $Id$ - * - * Abstraction for Notify's event types. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_EVENT_H -#define TAO_NOTIFY_EVENT_H - -#include "ace/pre.h" -#include "orbsvcs/CosNotificationC.h" -#include "orbsvcs/TimeBaseC.h" -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyFilterC.h" -#include "orbsvcs/CosEventCommC.h" - -// Needed for the SequencePushConsumer -class TAO_Notify_QoSAdmin_i; - -// @@ Pradeep: this is another case of multiple classes bunched in the -// same file, you should really think about separating it. - -/** - * @class TAO_Notify_EventType - * - * @brief TAO_Notify_EventType - * - * This type is used to compare different event types. - * It is used by the Event Manager as a key to find subscription lists. - */ -class TAO_Notify_Export TAO_Notify_EventType -{ -public: - // = Initialization and termination - /// Constuctor - TAO_Notify_EventType (void); - TAO_Notify_EventType (const char* domain_name, const char* type_name); - TAO_Notify_EventType (const CosNotification::EventType& event_type); - - /// Destructor - ~TAO_Notify_EventType (); - - /// Hash value - u_long hash (void) const; - - /// Assignment from CosNotification::EventType - void operator=(const CosNotification::EventType& event_type); - - /// Assignment from CosNotification::EventType - void operator=(CosNotification::EventType& event_type); - - /// == operator - int operator==(const TAO_Notify_EventType& notify_event_type) const; - - /// Return the special event type. - static TAO_Notify_EventType& special_event_type (void); - - /// Is this the special event (accept everything). - CORBA::Boolean is_special (void) const; - - /// Get the type underneath us. - const CosNotification::EventType& get_native (void) const; - -protected: - /// Init this object. - void init_i (const char* domain_name, const char* type_name); - - /// Recompute the hash value. - void recompute_hash (void); - - // = Data Members - /// The event_type that we're decorating. - CosNotification::EventType event_type_; - - /// The hash value computed. - u_long hash_value_; - - /// A special event type - static TAO_Notify_EventType special_event_type_; -}; - -// **************************************************************** -// @@ Pradeep: please remember to separate your classes with a line -// like the one above. Or better yet, do not put multiple classes in -// the same file. - -/** - * @class TAO_Notify_Event - * - * @brief TAO_Notify_Event - * - * Abstraction for an event - * This class allows us to treat event types homogenously. - * Derived types for anys and structured events provide the implementation. - * This the the "prototype" creational pattern. - */ -class TAO_Notify_Export TAO_Notify_Event -{ -public: - /// The lock for its ref. count. - /// Owns the lock. - TAO_Notify_Event (void); - - virtual ~TAO_Notify_Event (); - - /// Is this the "special" event type. - virtual CORBA::Boolean is_special_event_type (void) const = 0; - - /// Get the event type. - virtual const TAO_Notify_EventType& event_type (void) const = 0; - - /** - * We may need to make a copy of the underlying data if it is not owned - * by us. - * Note this behaviour: If this object owns the data, then we *transfer* - * ownership of the data to the new object otherwise we copy the data - * for the new object. - */ - virtual TAO_Notify_Event* clone (void) = 0; - - /// Returns true if the filter matches. - virtual CORBA::Boolean do_match (CosNotifyFilter::Filter_ptr filter ACE_ENV_ARG_DECL) = 0; - - /// Push self to <consumer> - virtual void do_push (CosEventComm::PushConsumer_ptr consumer ACE_ENV_ARG_DECL) const = 0; - virtual void do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer ACE_ENV_ARG_DECL) const = 0; - virtual void do_push (CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& qos_admin, - CosNotification::EventBatch& unsent, - int flush_queue - ACE_ENV_ARG_DECL) const = 0; - - // = QoS Properties. - // - - /// Not implemented. - CORBA::Short event_reliability (void); - void event_reliability (CORBA::Short event_reliability); - - /// Get the event priority - CORBA::Short priority (void); - - /// Set the event priority - void priority (CORBA::Short priority); - - /// Earliest delivery time. - TimeBase::UtcT start_time (void); - void start_time (TimeBase::UtcT start_time); - - /// Latest absolute expiry time for this event. - TimeBase::UtcT stop_time (void); - void stop_time (TimeBase::UtcT stop_time); - - /// Relative expiry time. - TimeBase::TimeT timeout (void); - void timeout (TimeBase::TimeT timeout); - - // = Refcounted lifetime - void _incr_refcnt (void); - void _decr_refcnt (void); - -protected: - /// The locking strategy. - ACE_Lock* lock_; - - /// The reference count. - CORBA::ULong refcount_; - - // = QoS properties - CORBA::Short event_reliability_; - CORBA::Short priority_; - TimeBase::UtcT start_time_; - TimeBase::UtcT stop_time_; - TimeBase::TimeT timeout_; -}; - -// **************************************************************** - -/** - * @class TAO_Notify_Any - * - * @brief TAO_Notify_Any - * - * This class is the concrete prototype for the Any type. - */ -class TAO_Notify_Export TAO_Notify_Any : public TAO_Notify_Event -{ - -public: - /// Refers to the data. Owns it! - TAO_Notify_Any (CORBA::Any* data); - - /// Does not own data. - TAO_Notify_Any (const CORBA::Any* data); - - virtual ~TAO_Notify_Any (); - - virtual TAO_Notify_Event* clone (void); - - void operator=(const TAO_Notify_Any& notify_any); - - virtual CORBA::Boolean is_special_event_type (void) const; - virtual const TAO_Notify_EventType& event_type (void) const; - virtual CORBA::Boolean do_match (CosNotifyFilter::Filter_ptr filter ACE_ENV_ARG_DECL); - virtual void do_push (CosEventComm::PushConsumer_ptr consumer ACE_ENV_ARG_DECL) const; - virtual void do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer ACE_ENV_ARG_DECL) const; - virtual void do_push (CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& qos_admin, - CosNotification::EventBatch& unsent, - int flush_queue - ACE_ENV_ARG_DECL) const; - -protected: - /// The data - CORBA::Any* data_; - - /// Do we own the data. - CORBA::Boolean is_owner_; -}; - -// **************************************************************** - -/** - * @class TAO_Notify_StructuredEvent - * - * @brief TAO_Notify_StructuredEvent - * - * This class is the concrete prototype for the Structured Event Type. - */ -class TAO_Notify_Export TAO_Notify_StructuredEvent : public TAO_Notify_Event -{ -public: - TAO_Notify_StructuredEvent (CosNotification::StructuredEvent * notification); - TAO_Notify_StructuredEvent (const CosNotification::StructuredEvent * notification); - virtual ~TAO_Notify_StructuredEvent (); - - virtual TAO_Notify_Event* clone (void); - void operator=(const TAO_Notify_StructuredEvent &structured_event); - - virtual CORBA::Boolean is_special_event_type (void) const; - virtual const TAO_Notify_EventType& event_type (void) const; - virtual CORBA::Boolean do_match (CosNotifyFilter::Filter_ptr filter ACE_ENV_ARG_DECL); - virtual void do_push (CosEventComm::PushConsumer_ptr consumer ACE_ENV_ARG_DECL) const; - virtual void do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer ACE_ENV_ARG_DECL) const; - virtual void do_push (CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& qos_admin, - CosNotification::EventBatch& unsent, - int flush_queue - ACE_ENV_ARG_DECL) const; - -protected: - - /// Load the QoS properties specified for this event from <data_>. - void init_QoS (void); - - // = Data Members - /// The data - CosNotification::StructuredEvent* data_; - - /// The event type of <data_> - TAO_Notify_EventType event_type_; - - /// Do we own the data. - CORBA::Boolean is_owner_; -}; - - -#if defined (__ACE_INLINE__) -#include "Notify_Event.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" - -#endif /* TAO_NOTIFY_EVENT_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp deleted file mode 100644 index d2c836538e2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ - -#include "Notify_EventChannelFactory_i.h" - -#include "Service.h" -#include "ace/Dynamic_Service.h" -#include "tao/PortableServer/POA.h" -#include "tao/ORB_Core.h" - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_Notify_EventChannelFactory_i::create (PortableServer::POA_ptr default_POA ACE_ENV_ARG_DECL) -{ - CosNotifyChannelAdmin::EventChannelFactory_var notify_factory; - - TAO_NS_Service* notify_service = ACE_Dynamic_Service<TAO_NS_Service>::instance (TAO_NS_COS_NOTIFICATION_SERVICE_NAME); - - if (notify_service == 0) - { - ACE_DEBUG ((LM_DEBUG, "Service not found! check conf. file\n")); - return notify_factory._retn (); - } - - TAO_POA *poa = default_POA->_tao_poa_downcast(); - - if (poa == 0) - return notify_factory._retn (); - - CORBA::ORB_ptr orb = poa->orb_core ().orb () ; - - notify_service->init (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (notify_factory._retn ()); - - notify_factory = notify_service->create (default_POA ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (notify_factory._retn ()); - - return notify_factory._retn (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Dynamic_Service<TAO_NS_Service>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Dynamic_Service<TAO_NS_Service> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h deleted file mode 100644 index 89bf1bf98c9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.h +++ /dev/null @@ -1,39 +0,0 @@ -//============================================================================= -/** - * @file Notify_EventChannelFactory_i.h - * - * $Id$ - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_EVENTCHANNELFACTORY_I_H -#define NOTIFY_EVENTCHANNELFACTORY_I_H -#include "ace/pre.h" - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_EventChannelFactory_i - * - * @brief Class maintained for Backward compatibility. - * - */ -class TAO_Notify_Export TAO_Notify_EventChannelFactory_i -{ -public: - /// Create a factory servant and activates it with the default POA. - /// Also creates a resource factory and assigns it this default_POA. - static CosNotifyChannelAdmin::EventChannelFactory_ptr create (PortableServer::POA_ptr default_POA ACE_ENV_ARG_DECL); -}; - -#include "ace/post.h" -#endif /* NOTIFY_EVENTCHANNELFACTORY_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp deleted file mode 100644 index 628b37fc18e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp +++ /dev/null @@ -1,452 +0,0 @@ -// $Id$ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Notify_EventChannel_i.h" -#include "Notify_EventChannelFactory_i.h" -#include "Notify_SupplierAdmin_i.h" -#include "Notify_ConsumerAdmin_i.h" -#include "Notify_Event_Manager.h" -#include "Notify_Channel_Objects_Factory.h" -#include "Notify_POA_Factory.h" -#include "Notify_Factory.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Collection_Factory.h" -#include "Notify_AdminProperties.h" - -#include "tao/debug.h" - -ACE_RCSID(Notify, Notify_EventChannel_i, "$Id$") - -TAO_Notify_EventChannel_i::TAO_Notify_EventChannel_i (TAO_Notify_EventChannelFactory_i* my_factory) - :lock_ (0), - destory_child_POAs_ (0), - channel_factory_ (my_factory), - channel_objects_factory_ (TAO_Notify_Factory:: - get_channel_objects_factory ()), - poa_factory_ (TAO_Notify_Factory::get_poa_factory ()), - event_manager_objects_factory_ (TAO_Notify_Factory::create_event_manager_objects_factory ()), - default_op_ (CosNotifyChannelAdmin::OR_OP), - default_id_ (0), - event_listener_list_ (0) -{ - this->channel_factory_->_add_ref (); -} - -// Implementation skeleton destructor -TAO_Notify_EventChannel_i::~TAO_Notify_EventChannel_i (void) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG,"in EC dtor\n")); - // Cleanup all resources.. - - delete this->event_manager_; - delete this->lock_; - delete this->event_listener_list_; - - this->channel_factory_->event_channel_destroyed (this->channel_id_); - this->channel_factory_->_remove_ref (); - - delete event_manager_objects_factory_; -} - -void -TAO_Notify_EventChannel_i::init (CosNotifyChannelAdmin::ChannelID channel_id, const CosNotification::QoSProperties& initial_qos, const CosNotification::AdminProperties& initial_admin, PortableServer::POA_ptr default_POA, PortableServer::POA_ptr my_POA ACE_ENV_ARG_DECL) -{ - this->channel_id_ = channel_id; - - this->my_POA_ = PortableServer::POA::_duplicate (my_POA); - this->default_POA_ = PortableServer::POA::_duplicate (default_POA); - - this->lock_ = - this->channel_objects_factory_->create_event_channel_lock (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_ = - this->event_manager_objects_factory_->create_event_manager (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Set these before initializing the event manger. - this->set_qos (initial_qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // try to set initial admin params - // This must be set after initializing the event manager - // since it is the one that owns the admin properties. - this->set_admin (initial_admin ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Create the POA for the CA's - this->CA_POA_ = - this->poa_factory_->create_consumer_admin_POA (this->my_POA_.in (), channel_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Create the POA for the SA's - this->SA_POA_ = - this->poa_factory_->create_supplier_admin_POA (this->my_POA_.in (), channel_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_listener_list_ = - TAO_Notify_Factory::get_collection_factory ()->create_event_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Create the default Consumer Admin. Because the ID_Pool is being used - // the first time here, it will generate the id 0. - CosNotifyChannelAdmin::AdminID id_unused; - - CosNotifyChannelAdmin::ConsumerAdmin_var def_consumer_admin = - this->new_for_consumers (default_op_, id_unused ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CosNotifyChannelAdmin::SupplierAdmin_var def_supplier_admin = - this->new_for_suppliers (default_op_, id_unused ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -TAO_Notify_Event_Manager* -TAO_Notify_EventChannel_i::get_event_manager (void) -{ - return this->event_manager_; -} - -void -TAO_Notify_EventChannel_i::consumer_admin_destroyed (CosNotifyChannelAdmin::AdminID CA_ID) -{ - this->consumer_admin_ids_.put (CA_ID); -} - -void -TAO_Notify_EventChannel_i::supplier_admin_destroyed (CosNotifyChannelAdmin::AdminID SA_ID) -{ - this->supplier_admin_ids_.put (SA_ID); -} - -PortableServer::POA_ptr -TAO_Notify_EventChannel_i::get_default_POA (void) -{ - return PortableServer::POA::_duplicate (this->default_POA_.in ()); -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_Notify_EventChannel_i::get_ref (ACE_ENV_SINGLE_ARG_DECL) -{ - CORBA::Object_var obj = this->poa_factory_-> - servant_to_reference (this->my_POA_.in (), this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ()); - - return CosNotifyChannelAdmin::EventChannel::_narrow (obj.in ()); -} - - -void -TAO_Notify_EventChannel_i::unregister_listener (TAO_Notify_EventListener* group_listener ACE_ENV_ARG_DECL) -{ - // UnRegister the group listener. - this->event_listener_list_->disconnected (group_listener ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_Notify_EventChannel_i::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->event_manager_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Deactivate ourselves. - this->poa_factory_->deactivate_object (this, - this->my_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // shutdown consumer admins's. - TAO_Notify_Shutdown_Worker shutdown_worker; - - this->event_listener_list_->for_each (&shutdown_worker ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // release all references. - this->event_listener_list_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // @@ TODO: We need a way to send shutdown messages to the proxy consumers too. - // (event listeners are proxy suppliers or CA's in disguise) - - this->poa_factory_->destroy_POA (this->CA_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->poa_factory_->destroy_POA (this->SA_POA_.in () - ACE_ENV_ARG_PARAMETER); -} - -const TAO_Notify_QoSAdmin_i& -TAO_Notify_EventChannel_i::qos_admin (void) const -{ - return this->qos_admin_; -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_Notify_EventChannel_i::MyFactory (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return this->channel_factory_->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_Notify_EventChannel_i::default_consumer_admin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->get_consumeradmin (this->default_id_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_Notify_EventChannel_i::default_supplier_admin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->get_supplieradmin (this->default_id_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::FilterFactory_ptr -TAO_Notify_EventChannel_i::default_filter_factory (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->channel_factory_->get_default_filter_factory (); -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_Notify_EventChannel_i::new_for_consumers (CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // @@ use auto_ptr - TAO_Notify_ConsumerAdmin_i* consumer_admin = - this->channel_objects_factory_->create_consumer_admin (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - PortableServer::ServantBase_var consumeradmin_var (consumer_admin); - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - id = this->consumer_admin_ids_.get (); - } - - consumer_admin->init (id, op, this->CA_POA_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - CORBA::Object_var obj = - this->poa_factory_->activate_object_with_id (id, - this->CA_POA_.in (), - consumer_admin - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - // Register the group listener. - this->event_listener_list_->connected (consumer_admin ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - this->consumer_admin_ids_.next (); - return CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in ()); -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_Notify_EventChannel_i::new_for_suppliers (CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_Notify_SupplierAdmin_i* supplieradmin = - this->channel_objects_factory_->create_supplier_admin (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ()); - - PortableServer::ServantBase_var supplieradmin_var (supplieradmin); - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - id = this->supplier_admin_ids_.get (); - } - - supplieradmin->init (id, op, this->SA_POA_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ()); - - CORBA::Object_var obj = this->poa_factory_-> - activate_object_with_id (id, - this->SA_POA_.in (), - supplieradmin - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ()); - - this->supplier_admin_ids_.next (); - return CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in ()); -} - -CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_Notify_EventChannel_i::get_consumeradmin (CosNotifyChannelAdmin::AdminID id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminNotFound - )) -{ - CORBA::Object_var obj = - this->poa_factory_->id_to_reference (id, this->CA_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ()); - - return CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in ()); -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_Notify_EventChannel_i::get_supplieradmin (CosNotifyChannelAdmin::AdminID id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminNotFound - )) -{ - CORBA::Object_var obj = - this->poa_factory_->id_to_reference (id, this->SA_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ()); - - return CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in ()); -} - -CosNotifyChannelAdmin::AdminIDSeq* -TAO_Notify_EventChannel_i::get_all_consumeradmins (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->consumer_admin_ids_.get_sequence (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminIDSeq* -TAO_Notify_EventChannel_i::get_all_supplieradmins (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - return this->supplier_admin_ids_.get_sequence (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotification::QoSProperties* -TAO_Notify_EventChannel_i::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->qos_admin_.get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_EventChannel_i::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.set_qos (qos ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_EventChannel_i::validate_qos (const CosNotification::QoSProperties & required_qos, CosNotification::NamedPropertyRangeSeq_out available_qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.validate_qos (required_qos, available_qos ACE_ENV_ARG_PARAMETER); -} - -CosNotification::AdminProperties* -TAO_Notify_EventChannel_i::get_admin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // Delegate to Event Manager. - return this->event_manager_->admin_properties ()->get_admin (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_EventChannel_i::set_admin (const CosNotification::AdminProperties & admin ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedAdmin - )) -{ - this->event_manager_->admin_properties ()->set_admin (admin ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->update_task_admins (); -} - -CosEventChannelAdmin::ConsumerAdmin_ptr -TAO_Notify_EventChannel_i::for_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // There is no way to destroy CosEventChannelAdmin::ConsumerAdmin's - // so we just return the default Consumer Admin here. - // TODO: find a way to disable the destroy method in the default Admin. - - CORBA::Object_var obj = - this->get_consumeradmin (this->default_id_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosEventChannelAdmin::ConsumerAdmin::_nil ()); - - return CosEventChannelAdmin::ConsumerAdmin::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -CosEventChannelAdmin::SupplierAdmin_ptr -TAO_Notify_EventChannel_i::for_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CORBA::Object_var obj = - this->get_supplieradmin (this->default_id_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosEventChannelAdmin::SupplierAdmin::_nil ()); - - return CosEventChannelAdmin::SupplierAdmin::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID, CosNotifyChannelAdmin::AdminIDSeq>; -template class TAO_Notify_ID_Pool<CosNotifyChannelAdmin::AdminID>; - -template class ACE_Unbounded_Set<CosNotifyChannelAdmin::AdminID>; -template class ACE_Unbounded_Set_Iterator<CosNotifyChannelAdmin::AdminID>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID, CosNotifyChannelAdmin::AdminIDSeq> -#pragma instantiate TAO_Notify_ID_Pool<CosNotifyChannelAdmin::AdminID> - -#pragma instantiate ACE_Unbounded_Set<CosNotifyChannelAdmin::AdminID> -#pragma instantiate ACE_Unbounded_Set_Iterator<CosNotifyChannelAdmin::AdminID> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h deleted file mode 100644 index 74d7a6601d8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h +++ /dev/null @@ -1,318 +0,0 @@ -//============================================================================= -/** - * @file Notify_EventChannel_i.h - * - * $Id$ - * - * Implements the CosNotifyChannelAdmin::EventChannel interface. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_EVENTCHANNEL_I_H_ -#define TAO_NOTIFY_EVENTCHANNEL_I_H_ -#include "ace/pre.h" -#include "ace/Hash_Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "Notify_ID_Pool_T.h" -#include "Notify_QoSAdmin_i.h" -#include "Notify_Collection.h" - -class TAO_Notify_EventChannelFactory_i; -class TAO_Notify_Resource_Manager; -class TAO_Notify_Event_Manager; -class TAO_Notify_CO_Factory; -class TAO_Notify_POA_Factory; -class TAO_Notify_EMO_Factory; -class TAO_Notify_EventListener; - -#if defined (_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning (push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - - /** - * @class TAO_Notify_EventChannel_i - * - * @brief TAO_Notify_EventChannel_i - * - * This class handles all the object factory functionality.All the event - * routing is handled by its contained Event Manager class. - * = MISC. NOTES - * This class creates and owns 2 child POA's. one to contain CA's and the other for SA's. - * Now, a Channel object can be destoyed in 2 ways - as a side effect of its parent POA being - * destroyed or if this class's <destroy> method is invoked. If the object is being destroyed - * as a result of its Parent POA being destroyed, it is illegal to destroy a childPOA - * because, the root poa destruction will destroy all child poa's. - * So in the destructor we conditionally check if the child POAs should be destroyed explicitly - * or not. - */ -class TAO_Notify_Export TAO_Notify_EventChannel_i : public virtual POA_CosNotifyChannelAdmin::EventChannel, public PortableServer::RefCountServantBase -{ - public: - /// Constructor. - /// <channel_factory> is the parent. - TAO_Notify_EventChannel_i (TAO_Notify_EventChannelFactory_i* channel_factory); - - /// Destructor - virtual ~TAO_Notify_EventChannel_i (void); - - /** - * Initialize this object. - * checks if the <initial_qos> and <initial admin> are valid. - * creates default filter, consumer admin and supplier admin. - */ - void init (CosNotifyChannelAdmin::ChannelID channel_id, - const CosNotification::QoSProperties& initial_qos, - const CosNotification::AdminProperties& initial_admin, - PortableServer::POA_ptr default_POA, - PortableServer::POA_ptr my_POA - ACE_ENV_ARG_DECL); - - // = Accessors - /// Get the default POA. - PortableServer::POA_ptr get_default_POA (void); - - /// Get the CORBA object for this servant - CosNotifyChannelAdmin::EventChannel_ptr get_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Get the event manager. - TAO_Notify_Event_Manager* get_event_manager (void); - - // = Child destroyed notification. - /// This id is no longer in use.It can be reused by <consumer_admin_ids_>. - void consumer_admin_destroyed (CosNotifyChannelAdmin::AdminID CA_ID); - - /// This id is no longer in use.It can be reused by <supplier_admin_ids_>. - void supplier_admin_destroyed (CosNotifyChannelAdmin::AdminID SA_ID); - - /// Consumer Admin's are Group Listeners that are registered automatically with the EC when a ConsumerAdmin - /// is created. When a consumer is destroyed, it asks the EC to unregister itself. - void unregister_listener (TAO_Notify_EventListener* group_listener ACE_ENV_ARG_DECL); - - // = Interface methods - virtual CosNotifyChannelAdmin::EventChannelFactory_ptr MyFactory ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr default_consumer_admin ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::SupplierAdmin_ptr default_supplier_admin ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyFilter::FilterFactory_ptr default_filter_factory ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr new_for_consumers ( - CosNotifyChannelAdmin::InterFilterGroupOperator op, - CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::SupplierAdmin_ptr new_for_suppliers ( - CosNotifyChannelAdmin::InterFilterGroupOperator op, - CosNotifyChannelAdmin::AdminID_out id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr get_consumeradmin ( - CosNotifyChannelAdmin::AdminID id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminNotFound - )); - -virtual CosNotifyChannelAdmin::SupplierAdmin_ptr get_supplieradmin ( - CosNotifyChannelAdmin::AdminID id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminNotFound - )); - -virtual CosNotifyChannelAdmin::AdminIDSeq * get_all_consumeradmins ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::AdminIDSeq * get_all_supplieradmins ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotification::QoSProperties * get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual void validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual CosNotification::AdminProperties * get_admin ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_admin ( - const CosNotification::AdminProperties & admin - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedAdmin - )); - - virtual CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void destroy ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - const TAO_Notify_QoSAdmin_i& qos_admin (void) const; - -protected: - // = Data Members - /// The locking strategy. - ACE_Lock* lock_; - - /** - * Flag to tell our destructor if we should destroy the CA and SA POA's. - * default is false, the parent poa destruction will remove these. - * set to true if the <destroy> method is invoked. - */ - CORBA::Boolean destory_child_POAs_; - - /// The factory that created us. - TAO_Notify_EventChannelFactory_i* channel_factory_; - - /// The default POA in which we activate objects that don't have ids' pre-assigned. - PortableServer::POA_var default_POA_; - - /// The POA in which i live. - PortableServer::POA_var my_POA_; - - /// The POA in which we should activate ConsumerAdmins in. - /// We create and own this. - PortableServer::POA_var CA_POA_; - - /// The POA in which we should activate SupplierAdmins in. - /// We create and own this. - PortableServer::POA_var SA_POA_; - - /// The ID assigned to this channel. - CosNotifyChannelAdmin::ChannelID channel_id_; - - /// The factory for channel objects. - TAO_Notify_CO_Factory* channel_objects_factory_; - - /// The factory for POA based containers. - TAO_Notify_POA_Factory* poa_factory_; - - /// Event manager objects factory, - TAO_Notify_EMO_Factory* event_manager_objects_factory_; - - /// Id generator for consumer admins. - TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID, - CosNotifyChannelAdmin::AdminIDSeq> consumer_admin_ids_; - - /// Id generator for supplier admins. - TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID, - CosNotifyChannelAdmin::AdminIDSeq> supplier_admin_ids_; - - /// Default InterFilterGroupOperator operator used when creating - /// the default ConsumerAdmin and SupplierAdmin. - const CosNotifyChannelAdmin::InterFilterGroupOperator default_op_; - - /// Default id's to CosEventChannelAdmin::ConsumerAdmin, SupplierAdmin. - const CosNotifyChannelAdmin::AdminID default_id_; - - /// Handle QoS admin methods. - TAO_Notify_QoSAdmin_i qos_admin_; - - /// The event manager. - TAO_Notify_Event_Manager* event_manager_; - - /// The list of group event listeners that have registered with us. - TAO_Notify_EventListener_List* event_listener_list_; -}; - -#if defined (_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning (pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_EVENTCHANNEL_I_H_ */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Dispatch_Command.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Dispatch_Command.cpp deleted file mode 100644 index 84c80dfe3f9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Dispatch_Command.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// $Id$ - -#include "Notify_Event_Dispatch_Command.h" -#include "Notify_Listeners.h" -#include "Notify_Event.h" -#include "Notify_Event_Processor.h" - -#include "tao/debug.h" - -ACE_RCSID(Notify, TAO_Notify_Event_Dispatch_Command, "$Id$") - -TAO_Notify_Event_Dispatch_Command::TAO_Notify_Event_Dispatch_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_EventListener* event_listener) - :TAO_Notify_Command (event_processor, event), - event_listener_ (event_listener) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "in TAO_Notify_Event_Dispatch_Command %X\n", this)); - - event_listener_->_incr_refcnt (); - this->event_->_incr_refcnt (); -} - -TAO_Notify_Event_Dispatch_Command::~TAO_Notify_Event_Dispatch_Command () -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "in ~TAO_Notify_Event_Dispatch_Command %X\n", this)); - - event_listener_->_decr_refcnt (); - this->event_->_decr_refcnt (); -} - -int -TAO_Notify_Event_Dispatch_Command::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - this->event_listener_->dispatch_event (*this->event_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Dispatch_Command.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Dispatch_Command.h deleted file mode 100644 index 9b2f7baf96b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Dispatch_Command.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Event_Dispatch_Command.h - * - * $Id$ - * - * Definition for the Command object responsible for dispatching events to consumers. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_EVENT_DISPATCH_COMMAND_H -#define TAO_NOTIFY_EVENT_DISPATCH_COMMAND_H - -#include "ace/pre.h" -#include "Notify_Command.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -class TAO_Notify_Event; -class TAO_Notify_EventListener; -class TAO_Notify_Worker_Task; - - /** - * @class TAO_Notify_Event_Dispatch_Command - * - * @brief TAO_Notify_Event_Dispatch_Command - * - * The Command for dispatching to a consumer. - */ -class TAO_Notify_Export TAO_Notify_Event_Dispatch_Command : public TAO_Notify_Command -{ - public: - // = Initialization and termination code. - TAO_Notify_Event_Dispatch_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_EventListener* event_listener); - - ~TAO_Notify_Event_Dispatch_Command (); - - /// Command callback - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - - protected: - // = Data Members - TAO_Notify_EventListener* event_listener_; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_EVENT_DISPATCH_COMMAND_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager.cpp deleted file mode 100644 index a2628852f52..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager.cpp +++ /dev/null @@ -1,194 +0,0 @@ -// $Id$ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Notify_Event_Manager.h" -#include "Notify_Factory.h" -#include "Notify_Worker_Task.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Update_Dispatch_Command.h" -#include "Notify_AdminProperties.h" -#include "Notify_QoSAdmin_i.h" -#include "Notify_EventChannel_i.h" - -#if ! defined (__ACE_INLINE__) -#include "Notify_Event_Manager.i" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, Notify_Event_Manager, "$Id$") - -TAO_Notify_Event_Manager::TAO_Notify_Event_Manager (TAO_Notify_EventChannel_i* event_channel, TAO_Notify_EMO_Factory* emo_factory) - :event_channel_ (event_channel), - event_map_ (0), - event_processor_ (0), - updates_dispatching_task_ (0), - emo_factory_ (emo_factory), - admin_properties_ (0) -{ -} - -TAO_Notify_Event_Manager::~TAO_Notify_Event_Manager () -{ - delete this->event_map_; - delete this->event_processor_; - delete this->lock_; - delete this->admin_properties_; - - this->emo_factory_->destroy_updates_task (this->updates_dispatching_task_); -} - -void -TAO_Notify_Event_Manager::init (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->lock_, - ACE_Lock_Adapter<TAO_SYNCH_MUTEX> (), - CORBA::NO_MEMORY ()); - - // Create members. - - this->admin_properties_ = new TAO_Notify_AdminProperties (); - - this->event_map_ = - this->emo_factory_->create_event_map (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->event_processor_ = - this->emo_factory_->create_event_processor (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->updates_dispatching_task_ = - this->emo_factory_->create_updates_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Init the objects - this->event_map_->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_Notify_QoSAdmin_i* qos_admin = - (TAO_Notify_QoSAdmin_i*)&(this->event_channel_->qos_admin ()); - - this->event_processor_->init (qos_admin ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (this->updates_dispatching_task_->init_task ( - this->admin_properties_, - qos_admin) != 0) - { - // Some error has ocurred. - ACE_THROW (CORBA::UNKNOWN ()); - } -} - -void -TAO_Notify_Event_Manager::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->event_processor_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->event_map_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->updates_dispatching_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Manager::subscribe_for_events (TAO_Notify_EventListener* event_listener, const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) -{ - TAO_Notify_EventType_List added_update, removed_update; - - this->event_map_->subscribe_for_events (event_listener, added_update, - added ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_map_->unsubscribe_from_events (event_listener, removed_update, - removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // if either of the lists are *not* empty, send updates - if (added_update.is_empty () == 0 || removed_update.is_empty () == 0) - this->dispatch_updates_i (this->event_map_->subscription_change_listeners (), - added_update, removed_update ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Manager::update_publication_list (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) -{ - TAO_Notify_EventType_List added_list; - TAO_Notify_EventType_List removed_list; - - this->event_map_->update_publication_list (added, removed, - added_list, removed_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // if either of the lists are *not* empty, send updates - if (added_list.is_empty () == 0 || removed_list.is_empty () == 0) - this->dispatch_updates_i (this->event_map_->publication_change_listeners (), - added_list, removed_list ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Manager::update_task_admins (void) -{ - this->updates_dispatching_task_->update_admin (*this->admin_properties_); -} - -void -TAO_Notify_Event_Manager::dispatch_updates_i (TAO_Notify_UpdateListener_List* update_listener_list, TAO_Notify_EventType_List& added, TAO_Notify_EventType_List& removed ACE_ENV_ARG_DECL) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - - TAO_Notify_Update_Worker update_worker (this->updates_dispatching_task_, - added, removed); - - update_listener_list->for_each (&update_worker ACE_ENV_ARG_PARAMETER); -} - -/********************************************************************/ - -TAO_Notify_Update_Worker::TAO_Notify_Update_Worker (TAO_Notify_Worker_Task * updates_dispatching_task, TAO_Notify_EventType_List& added, TAO_Notify_EventType_List& removed) - : added_ (added), - removed_ (removed), - updates_dispatching_task_ (updates_dispatching_task) -{ -} - -void -TAO_Notify_Update_Worker::work (TAO_Notify_UpdateListener* listener ACE_ENV_ARG_DECL) -{ - TAO_Notify_Update_Dispatch_Command* mb = - new TAO_Notify_Update_Dispatch_Command (listener, this->added_, - this->removed_); - - this->updates_dispatching_task_->process_event (mb ACE_ENV_ARG_PARAMETER); -} - -/********************************************************************/ -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Hash_Map_Entry<TAO_Notify_EventType, TAO_Notify_EventListener_List *>; -template class ACE_Hash_Map_Manager<TAO_Notify_EventType, TAO_Notify_EventListener_List *,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator<TAO_Notify_EventType, TAO_Notify_EventListener_List *,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<TAO_Notify_EventType, TAO_Notify_EventListener_List *,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX>; -template class ACE_Hash<TAO_Notify_EventType>; -template class ACE_Equal_To<TAO_Notify_EventType>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Entry<TAO_Notify_EventType, TAO_Notify_EventListener_List *> -#pragma instantiate ACE_Hash_Map_Manager<TAO_Notify_EventType, TAO_Notify_EventListener_List *,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator<TAO_Notify_EventType, TAO_Notify_EventListener_List *,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<TAO_Notify_EventType, TAO_Notify_EventListener_List *,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_Notify_EventType, TAO_Notify_EventListener_List *,ACE_Hash<TAO_Notify_EventType>, ACE_Equal_To<TAO_Notify_EventType>,TAO_SYNCH_MUTEX> -#pragma instantiate template ACE_Hash<TAO_Notify_EventType> -#pragma instantiate template ACE_Equal_To<TAO_Notify_EventType> -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager.h deleted file mode 100644 index 527d0c66728..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager.h +++ /dev/null @@ -1,182 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Event_Manager.h - * - * $Id$ - * - * An Event Manager for the Notification Service. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_EVENT_MANAGER -#define TAO_NOTIFY_EVENT_MANAGER -#include "ace/pre.h" -#include "orbsvcs/CosNotificationC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "notify_export.h" -#include "Notify_Listeners.h" -#include "Notify_Collection.h" - -class TAO_Notify_EventChannel_i; -class TAO_Notify_Event; -class TAO_Notify_Event_Processor; -class TAO_Notify_Event_Map; -class TAO_Notify_Update_Dispatcher; -class TAO_Notify_EventSource; -class TAO_Notify_EventListener; -class TAO_Notify_Worker_Task; -class TAO_Notify_EMO_Factory; -class TAO_Notify_Event_Processor; -class TAO_Notify_AdminProperties; - -/** - * @class TAO_Notify_Event_Manager - * - * @brief TAO_Notify_Event_Manager - * - * Handles all aspects of event propogation thru the channel. - * Also keeps track of publications and subscriptions. - */ -class TAO_Notify_Export TAO_Notify_Event_Manager -{ - - public: - // = Initialization and termination code. - /// Constructor. - TAO_Notify_Event_Manager (TAO_Notify_EventChannel_i* parent, - TAO_Notify_EMO_Factory* emo_factory); - - /// Destructor. - ~TAO_Notify_Event_Manager (); - - /// Init - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Shutdown operations. - void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - // = Publish/Subscribe management - // = Subscription - /// Subscribes <event_listener> for events <added>. - /// Unsubscribes <event_listener> for events <removed>. - void subscribe_for_events (TAO_Notify_EventListener* event_listener, const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL); - - // = Publications - /// Suppliers can send anonymous requests to the Event Manager to indicate - /// what kind of events they expect to produce. - void update_publication_list (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL); - - // = Updates - /// Registers the subscription update listener with the Event Manager. - void register_for_subscription_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - /// Unregister from subscription updates. - void unregister_from_subscription_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - /// Registers the publication update listener with the Event Manager. - void register_for_publication_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - /// Unregister from publication updates. - void unregister_from_publication_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - // = Accessors - /// Obtain the publication list. - CosNotification::EventTypeSeq* obtain_offered_types (void); - - /// Obtain the subscription list. - CosNotification::EventTypeSeq* obtain_subscription_types (void); - - /// Get the event map. - TAO_Notify_Event_Map* event_map (void); - - /// Get the Event Processor. - TAO_Notify_Event_Processor* event_processor (void); - - /// Get the Admin Properties. - TAO_Notify_AdminProperties* admin_properties (void); - - /// Get the Resource Factory. - TAO_Notify_EMO_Factory* resource_factory (void); - - // = Event forwarding methods. - /// Delivers the event to listeners subscribed for <event> - /// <event_source> is the <event> source to the Event Manager. - void process_event (TAO_Notify_Event* event, - TAO_Notify_EventSource* event_source - ACE_ENV_ARG_DECL); - - void update_task_admins (void); - -protected: - // = Event dispatching methods. - /// Dispatch the updates to the <update_listener_list> - void dispatch_updates_i (TAO_Notify_UpdateListener_List* update_listener_list, - TAO_Notify_EventType_List& added, - TAO_Notify_EventType_List& removed - ACE_ENV_ARG_DECL); - - // = Data members. - /// The Event Channel that we're managing for. - TAO_Notify_EventChannel_i * event_channel_; - - /// Container for event <-> source/sinks mappings. - TAO_Notify_Event_Map* event_map_; - - /// Handles processing of events. - TAO_Notify_Event_Processor * event_processor_; - - /// Dispatches updates to update listeners. - TAO_Notify_Worker_Task * updates_dispatching_task_; - - /// Event manager objects factory. - TAO_Notify_EMO_Factory* emo_factory_; - - /// The locking strategy. - ACE_Lock* lock_; - - /// Admin properties. - TAO_Notify_AdminProperties* admin_properties_; -}; - -/**************************************************************************/ - - /** - * @class TAO_Notify_Update_Worker - * - * @brief TAO_Notify_Update_Worker - * - * Worker to send update commands to the updates dispatching task. - */ -class TAO_Notify_Export TAO_Notify_Update_Worker : public TAO_ESF_Worker<TAO_Notify_UpdateListener> -{ - public: - // = Initialization and termination code. - TAO_Notify_Update_Worker (TAO_Notify_Worker_Task * updates_dispatching_task, TAO_Notify_EventType_List& added, TAO_Notify_EventType_List& removed); - - // = TAO_ESF_Worker method - void work (TAO_Notify_UpdateListener* listener ACE_ENV_ARG_DECL); - protected: - // = Data members. - /// Data to transmit. - TAO_Notify_EventType_List& added_; - TAO_Notify_EventType_List& removed_; - - /// Update dispatcher - TAO_Notify_Worker_Task * updates_dispatching_task_; -}; - -#if defined (__ACE_INLINE__) -#include "Notify_Event_Manager.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_EVENT_MANAGER */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager_Objects_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager_Objects_Factory.h deleted file mode 100644 index e3dd51673ee..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Manager_Objects_Factory.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Event_Manager_Objects_Factory.h - * - * $Id$ - * - * Interface definition of Factory for event manager objects. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_EMO_FACTORY_H -#define NOTIFY_EMO_FACTORY_H - -#include "ace/pre.h" -#include "ace/Service_Object.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "notify_export.h" - -class TAO_Notify_Event_Manager; -class TAO_Notify_Event_Map; -class TAO_Notify_Event_Processor; -class TAO_Notify_Worker_Task; -class TAO_Notify_EventChannel_i; - - /** - * @class TAO_Notify_EMO_Factory - * - * @brief TAO_Notify_EMO_Factory - * - * Factory interface for event manager and friends. - */ -class TAO_Notify_Export TAO_Notify_EMO_Factory : public ACE_Service_Object -{ - public: - virtual ~TAO_Notify_EMO_Factory (){}; - - /// Create an event manager. - virtual TAO_Notify_Event_Manager* create_event_manager (TAO_Notify_EventChannel_i* channel ACE_ENV_ARG_DECL)= 0; - - /// Create the event map. - virtual TAO_Notify_Event_Map* create_event_map (ACE_ENV_SINGLE_ARG_DECL)= 0; - - /// Create event processor. - virtual TAO_Notify_Event_Processor* create_event_processor (TAO_Notify_Event_Manager* event_manager ACE_ENV_ARG_DECL)= 0; - - // = Create processing tasks. - virtual TAO_Notify_Worker_Task* create_source_eval_task (ACE_ENV_SINGLE_ARG_DECL)= 0; - virtual TAO_Notify_Worker_Task* create_lookup_task (ACE_ENV_SINGLE_ARG_DECL)= 0; - virtual TAO_Notify_Worker_Task* create_listener_eval_task (ACE_ENV_SINGLE_ARG_DECL)= 0; - - /// Task that dispatches events. - /// Task that dispatches updates. - virtual TAO_Notify_Worker_Task* create_dispatching_task (ACE_ENV_SINGLE_ARG_DECL)= 0; - virtual TAO_Notify_Worker_Task* create_updates_task (ACE_ENV_SINGLE_ARG_DECL)= 0; - - // Destroy processing tasks. - virtual void destroy_source_eval_task (TAO_Notify_Worker_Task* task) = 0; - virtual void destroy_lookup_task (TAO_Notify_Worker_Task* task) = 0; - virtual void destroy_listener_eval_task (TAO_Notify_Worker_Task* task) = 0; - virtual void destroy_dispatching_task (TAO_Notify_Worker_Task* task) = 0; - virtual void destroy_updates_task (TAO_Notify_Worker_Task* task) = 0; - - /// bad hack. why is this here?! - virtual void print_values (void) = 0; -}; - -#include "ace/post.h" -#endif /* NOTIFY_EMO_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Map.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Map.cpp deleted file mode 100644 index 7881ebdfd17..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Map.cpp +++ /dev/null @@ -1,236 +0,0 @@ -// $Id$ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Notify_Event.h" -#include "Notify_Event_Map.h" -#include "Notify_Factory.h" -#include "Notify_Collection.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Collection_Factory.h" - -#if ! defined (__ACE_INLINE__) -#include "Notify_Event_Map.i" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, Notify_Event_Map, "$Id$") - -TAO_Notify_Event_Map::TAO_Notify_Event_Map (TAO_Notify_EMO_Factory* emo_factory) - :default_subscription_list_ (0), - subscription_change_listeners_ (0), - publication_change_listeners_ (0), - emo_factory_ (emo_factory), - collection_factory_ (TAO_Notify_Factory::get_collection_factory ()) -{ -} - -TAO_Notify_Event_Map::~TAO_Notify_Event_Map () -{ - // delete all event listener lists in the event map. - EVENT_RECIPIENT_MAP::ITERATOR iterator (this->event_recipient_map_); - - for (EVENT_RECIPIENT_MAP::ENTRY *entry = 0; - iterator.next (entry) != 0; - iterator.advance ()) - { - delete entry->int_id_; - } - - delete default_subscription_list_; - delete subscription_change_listeners_; - delete publication_change_listeners_; -} - -void -TAO_Notify_Event_Map::init (ACE_ENV_SINGLE_ARG_DECL) -{ - this->default_subscription_list_ = - this->collection_factory_->create_event_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - // Create the default list of listeners. - - this->subscription_change_listeners_ - = this->collection_factory_->create_update_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->publication_change_listeners_ - = this->collection_factory_->create_update_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Map::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - // Shutdown all event listener lists in the event map. - EVENT_RECIPIENT_MAP::ITERATOR iterator (this->event_recipient_map_); - - for (EVENT_RECIPIENT_MAP::ENTRY *entry = 0; - iterator.next (entry) != 0; - iterator.advance ()) - { - entry->int_id_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - - default_subscription_list_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - subscription_change_listeners_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - publication_change_listeners_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Map::subscribe_for_events (TAO_Notify_EventListener* event_listener, TAO_Notify_EventType_List& update, const CosNotification::EventTypeSeq & added ACE_ENV_ARG_DECL) -{ - TAO_Notify_EventListener_List* event_listener_list; - TAO_Notify_EventType event_type; - - for (CORBA::ULong index = 0; index < added.length (); index++) - { - event_type = added[index]; -#if 0 - ACE_DEBUG ((LM_DEBUG, "subscribing %x for event: %s, %s\n", - event_listener, - event_type.event_type_.domain_name.in (), - event_type.event_type_.type_name.in ())); -#endif - if (event_type.is_special ()) - event_listener_list = default_subscription_list_; - else if (this->event_recipient_map_.find (event_type, - event_listener_list) == -1) - { - // create the list. - TAO_Notify_EventListener_List* new_list = - this->collection_factory_->create_event_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // add the list to the recipient map. - this->event_recipient_map_.bind (event_type, new_list); - event_listener_list = new_list; - } - - event_listener_list->connected (event_listener ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // mirror changes in the subscription list - if (this->subscription_list_.insert (event_type) == 0) - update.insert (event_type); - } -} - -void -TAO_Notify_Event_Map::unsubscribe_from_events (TAO_Notify_EventListener* event_listener, TAO_Notify_EventType_List &update, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) -{ - TAO_Notify_EventListener_List* event_listener_list; - TAO_Notify_EventType event_type; - - for (CORBA::ULong index = 0; index < removed.length (); index++) - { - event_type = removed[index]; - - // find out if there is a event listener list for this event type. - if (event_type.is_special ()) - event_listener_list = this->default_subscription_list_; - else if (this->event_recipient_map_.find (event_type, - event_listener_list) == -1) - continue; - - // remove <event_listener> from the list. - - event_listener_list->disconnected (event_listener ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // If this was the last entry in the list then we should remove - // the corrsponding event_type from the recipient_map. - // However i'm going to leave the blank entries based on the assumption - // that a system will have a fixed set of event types. - // This way we save that cost of creating a new entry in the map and - // its corresponding listener list when an event type seen before - // shows up again. - // Later we could add logic to check at non-time-critical points, if - // the map has grown too big and prune it. (lazy evaluation). - - // mirror changes in the subscription list - if (this->subscription_list_.remove (event_type) == 0) - update.insert (event_type); // modify the update list. - } -} - -void -TAO_Notify_Event_Map::register_for_publication_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL) -{ - this->publication_change_listeners_->connected (update_listener ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Map::register_for_subscription_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL) -{ - this->subscription_change_listeners_->connected (update_listener ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Map:: unregister_from_subscription_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL) -{ - this->subscription_change_listeners_->disconnected (update_listener ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Map::unregister_from_publication_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL) -{ - this->publication_change_listeners_->disconnected (update_listener ACE_ENV_ARG_PARAMETER); -} - -CosNotification::EventTypeSeq* -TAO_Notify_Event_Map::obtain_offered_types (void) -{ - CosNotification::EventTypeSeq* event_type_seq; - - ACE_NEW_RETURN (event_type_seq, - CosNotification::EventTypeSeq(this->publication_list_.size ()), - 0); - - this->publication_list_.populate (*event_type_seq); - - return event_type_seq; -} - -CosNotification::EventTypeSeq* -TAO_Notify_Event_Map::obtain_subscription_types (void) -{ - CosNotification::EventTypeSeq* event_type_seq; - - ACE_NEW_RETURN (event_type_seq, - CosNotification::EventTypeSeq(this->subscription_list_.size ()), - 0); - - this->subscription_list_.populate (*event_type_seq); - - return event_type_seq; -} - -void -TAO_Notify_Event_Map::update_publication_list (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed, TAO_Notify_EventType_List &added_list, TAO_Notify_EventType_List &removed_list ACE_ENV_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) -{ - TAO_Notify_EventType event_type; - - CORBA::ULong len = removed.length (); - CORBA::ULong i = 0 ; - for (; i < len; ++i) - { - event_type = removed[i]; - if (this->publication_list_.remove (event_type) == 0) - { - removed_list.insert (event_type); - } - } - - len = added.length (); - for (i = 0; i < len; i++) - { - event_type = added[i]; - if (this->publication_list_.insert (event_type) == 0) - { - added_list.insert (event_type); - } - } -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Map.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Map.h deleted file mode 100644 index 44281098d80..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Map.h +++ /dev/null @@ -1,153 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Event_Map.h - * - * $Id$ - * - * Stores information about subscription mappings - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_Event_Map_HEADER_H -#define TAO_NOTIFY_Event_Map_HEADER_H -#include "ace/pre.h" - -#include "orbsvcs/CosNotificationC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_Collection.h" -#include "notify_export.h" -#include "orbsvcs/ESF/ESF_Worker.h" - -#include "ace/Hash_Map_Manager.h" - -class TAO_Notify_EventListener; -class TAO_Notify_UpdateListener; -class TAO_Notify_EventType; -class TAO_Notify_Collection_Factory; -class TAO_Notify_EMO_Factory; - -/** - * @class TAO_Notify_Event_Map - * - * @brief TAO_Notify_Event_Map - * - * This is a compound container consisting of: - * - A "recipient" map : mapping between an event and its subscriibers - * - Lists of current events being subscribed, published. - * - Lists of subscriptions, publications update listeners. - */ -class TAO_Notify_Export TAO_Notify_Event_Map -{ -public: - /// Constructor. - TAO_Notify_Event_Map (TAO_Notify_EMO_Factory* emo_factory); - - /// Destructor. - virtual ~TAO_Notify_Event_Map (); - - /// Init - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Shutdown releases all listeners. - void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - // = Subscribe and Unsubscribe methods. - void subscribe_for_events (TAO_Notify_EventListener* event_listener, TAO_Notify_EventType_List& update, const CosNotification::EventTypeSeq & added ACE_ENV_ARG_DECL); - - void unsubscribe_from_events (TAO_Notify_EventListener* event_listener, TAO_Notify_EventType_List &update, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL); - - // = Publish and Unpublish methods - // Later: - // Suppliers can send anonymous requests to the Event Manager to indicate - // what kind of events they expect to produce. - void update_publication_list (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed, TAO_Notify_EventType_List &added_list, TAO_Notify_EventType_List &removed_list ACE_ENV_ARG_DECL); - - // = Subscription Updates - /// Registers the subscription update listener with the Event Manager. - void register_for_subscription_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - /// Unregister from subscription updates. - void unregister_from_subscription_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - // = Publication Updates - /// Registers the publication update listener with the Event Manager. - void register_for_publication_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - /// Unregister from publication updates. - void unregister_from_publication_updates (TAO_Notify_UpdateListener* update_listener ACE_ENV_ARG_DECL); - - // = Subscription list lookup - int find (TAO_Notify_EventType const & event_type, TAO_Notify_EventListener_List*& event_listener_list); - - // = Accessors - /// Obtain the publication list. - CosNotification::EventTypeSeq* obtain_offered_types(void); - - /// Obtain the subscription list. - CosNotification::EventTypeSeq* obtain_subscription_types (void); - - TAO_Notify_UpdateListener_List* subscription_change_listeners (void); - TAO_Notify_UpdateListener_List* publication_change_listeners (void); - TAO_Notify_EventListener_List* default_subscription_list (void); - -protected: - // = Typedefs - typedef ACE_Hash_Map_Manager <TAO_Notify_EventType, - TAO_Notify_EventListener_List*, TAO_SYNCH_MUTEX> EVENT_RECIPIENT_MAP; - - // = Data Members - /** - * A Map of event types and the groups of event listeners interested in them. - * The keys of the map are a list of events that consumers have currently - * subscribed for. - */ - EVENT_RECIPIENT_MAP event_recipient_map_; - - /// Save a reference to the default list, we don't want to spend time - /// looking for it in the <event_recipient_map>. - TAO_Notify_EventListener_List* default_subscription_list_; - - /// The list of event types that are being currently published by suppliers. - TAO_Notify_EventType_List publication_list_; - - /** - * The list of event types that are being currently subscribed to by - * consumers. This list is the same as the list of keys in the - * <event_recepient_map>. We keep a copy of that list here to reduce - * contention for the map which will be accessed for every event that - * enters the system. - */ - TAO_Notify_EventType_List subscription_list_; - - /// This is a list of listeners that want to be notified if the subsciptions - /// from consumers changes the <event_recipient_map_> keys. - TAO_Notify_UpdateListener_List* subscription_change_listeners_; - - /// This is a list of listeners that want to be notified if the publications - /// from suppliers changes the <publication_list_>. - TAO_Notify_UpdateListener_List* publication_change_listeners_; - - /// Evenet Manager Objects factory. - TAO_Notify_EMO_Factory* emo_factory_; - - /// Collection objects factory. - TAO_Notify_Collection_Factory* collection_factory_; -}; - -/********************************************************************/ - -#if defined (__ACE_INLINE__) -#include "Notify_Event_Map.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_Event_Map_HEADER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Processor.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Processor.cpp deleted file mode 100644 index ce55df28f1a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Processor.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ - -#include "Notify_Event_Processor.h" -#include "Notify_Worker_Task.h" -#include "Notify_Source_Filter_Eval_Command.h" -#include "Notify_Listener_Filter_Eval_Command.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Lookup_Command.h" -#include "Notify_Event_Dispatch_Command.h" -#include "Notify_Factory.h" -#include "Notify_Listeners.h" -#include "Notify_Event_Manager.h" -#include "tao/debug.h" - -ACE_RCSID(Notify, Notify_Event_Processor, "$Id$") - -TAO_Notify_Event_Processor::TAO_Notify_Event_Processor (TAO_Notify_Event_Manager* event_manager) - :event_manager_ (event_manager), - lookup_task_ (0), - emo_factory_ (0) -{ - this->emo_factory_ = this->event_manager_->resource_factory (); -} - -TAO_Notify_Event_Processor::~TAO_Notify_Event_Processor () -{ - delete this->lookup_task_; -} - -void -TAO_Notify_Event_Processor::init (TAO_Notify_QoSAdmin_i* qos_properties - ACE_ENV_ARG_DECL) -{ - this->lookup_task_ = this->emo_factory_->create_lookup_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - this->lookup_task_->init_task (admin_properties, - qos_properties); -} - -void -TAO_Notify_Event_Processor::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - this->lookup_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Processor::evaluate_source_filter (TAO_Notify_Event* event, - TAO_Notify_EventSource* event_source - ACE_ENV_ARG_DECL) -{ - // TODO: use cache allocator here. - // @@ Pradeep: you shouldn't be allocating at all! If this must go - // into a queue then the processing queue should make the - // allocation, that way the single threaded case works just fine. - TAO_Notify_Source_Filter_Eval_Command* mb = - new TAO_Notify_Source_Filter_Eval_Command (this, event, event_source); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "Evaluating listener filter\n")); - - event_source->filter_eval_task ()->process_event (mb ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Processor::lookup_subscriptions (TAO_Notify_Event* event, - TAO_Notify_EventSource* /*event_source*/ - ACE_ENV_ARG_DECL) -{ - TAO_Notify_Lookup_Command* lookup = - new TAO_Notify_Lookup_Command (this, event, this->event_manager_->event_map ()); - - this->lookup_task_->process_event (lookup ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Processor::evaluate_listener_filter (TAO_Notify_Event* event, TAO_Notify_EventListener* event_listener, CORBA::Boolean eval_parent ACE_ENV_ARG_DECL) -{ - // @@ Pradeep: you should use ACE_NEW here.... - // @@ Pradeep: do you really need to allocate this guy from the - // heap? Maybe you can just allocate it from the stack and only if - // somebody really wants to keep it around you make a copy? The - // idea is to save allocations in the good case. - - TAO_Notify_Listener_Filter_Eval_Command* mb = - new TAO_Notify_Listener_Filter_Eval_Command (this, event, event_listener, eval_parent); - - event_listener->filter_eval_task ()->process_event (mb ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_Event_Processor::dispatch_event (TAO_Notify_Event* event, TAO_Notify_EventListener* event_listener ACE_ENV_ARG_DECL) -{ - TAO_Notify_Event_Dispatch_Command* dispatch = - new TAO_Notify_Event_Dispatch_Command (this, event, event_listener); - - event_listener->event_dispatch_task ()->process_event (dispatch ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Processor.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Processor.h deleted file mode 100644 index 5810abbd27d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Event_Processor.h +++ /dev/null @@ -1,101 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Event_Processor.h - * - * $Id$ - * - * The QoS properties of "Order Policy" and "Discard Policy" can be set - * per proxy.To accomodate this we now have an ACE_Task per proxy. - * The TAO_Notify_Event_Processor asks each event listener and source - * for the task object to send commands to. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -// - -#ifndef TAO_NOTIFY_EVENT_PROCESSOR_H -#define TAO_NOTIFY_EVENT_PROCESSOR_H - -#include "ace/pre.h" -#include "ace/Module.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Stream.h" -#include "ace/streams.h" -#include "tao/corba.h" -#include "notify_export.h" - -class TAO_Notify_Event; -class TAO_Notify_Event_Manager; -class TAO_Notify_EventSource; -class TAO_Notify_Worker_Task; -class TAO_Notify_EMO_Factory; -class TAO_Notify_EventListener; -class TAO_Notify_QoSAdmin_i; - - /** - * @class TAO_Notify_Event_Processor - * - * @brief TAO_Notify_Event_Processor - * - * The Event Processor. - */ -class TAO_Notify_Export TAO_Notify_Event_Processor -{ - public: - // = Initialialization and termination code. - TAO_Notify_Event_Processor (TAO_Notify_Event_Manager* event_manager); - virtual ~TAO_Notify_Event_Processor (); - - /// Init - void init (TAO_Notify_QoSAdmin_i* qos_properties - ACE_ENV_ARG_DECL); - - /// Shutdown operations. - void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Event processing entry point. - void evaluate_source_filter (TAO_Notify_Event* event, - TAO_Notify_EventSource* event_source - ACE_ENV_ARG_DECL); - - // = Callbacks for Source/Event Listeners. - /// This method is called by an Event_Source after it has - /// successfully evaluated its filter. - void lookup_subscriptions (TAO_Notify_Event* event, - TAO_Notify_EventSource* event_source - ACE_ENV_ARG_DECL); - - /// This method is called by the subscription lookup command asking - /// that <event> be delivered to <event_listener>. - void evaluate_listener_filter (TAO_Notify_Event* event, - TAO_Notify_EventListener* event_listener, - CORBA::Boolean eval_parent - ACE_ENV_ARG_DECL); - - /// This method is called by an Event_Listener after it has - /// successfully evaluated its filter. - void dispatch_event (TAO_Notify_Event* event, - TAO_Notify_EventListener* event_listener - ACE_ENV_ARG_DECL); - -protected: - // = Data Members - /// The Event Manager - TAO_Notify_Event_Manager* event_manager_; - - TAO_Notify_Worker_Task* lookup_task_; - - /// Factory for manager ojects - TAO_Notify_EMO_Factory* emo_factory_; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_EVENT_PROCESSOR_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Extensions.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Extensions.cpp deleted file mode 100644 index 3768d3b8f42..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Extensions.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// -*- C++ -*- -// $Id$ - -#include "Notify_Extensions.h" - -TAO_NAMESPACE_TYPE (const char *const) -TAO_NAMESPACE_BEGIN (TAO_Notify_Extensions) -TAO_NAMESPACE_DEFINE (const char *const, BlockingPolicy, "BlockingPolicy") -TAO_NAMESPACE_END diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Extensions.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Extensions.h deleted file mode 100644 index 1706476d845..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Extensions.h +++ /dev/null @@ -1,28 +0,0 @@ -// -*- C++ -*- -// $Id$ - -#ifndef TAO_NOTIFY_EXTENSIONS_H -#define TAO_NOTIFY_EXTENSIONS_H - -#include "ace/pre.h" -#include "tao/corba.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "notify_export.h" - -#if defined (TAO_EXPORT_MACRO) -# undef TAO_EXPORT_MACRO -#endif /* TAO_EXPORT_MACRO */ -#define TAO_EXPORT_MACRO TAO_Notify_Export - -TAO_NAMESPACE TAO_Notify_Extensions -{ - TAO_NAMESPACE_STORAGE_CLASS const char *const BlockingPolicy; -} -TAO_NAMESPACE_CLOSE - -#include "ace/post.h" -#endif /* TAO_NOTIFY_EXTENSIONS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Factory.cpp deleted file mode 100644 index 99ac21f7715..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Factory.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// $Id$ - -#include "ace/Dynamic_Service.h" -#include "Notify_Factory.h" -#include "Notify_Default_CO_Factory.h" -#include "Notify_Default_POA_Factory.h" -#include "Notify_Default_Collection_Factory.h" -#include "Notify_Default_EMO_Factory.h" -#include "Notify_Event.h" - -ACE_RCSID(Notify, Notify_Factory, "$Id$") - -TAO_Notify_CO_Factory* TAO_Notify_Factory::co_factory_ = 0; -TAO_Notify_POA_Factory* TAO_Notify_Factory::poa_factory_ = 0; -TAO_Notify_Collection_Factory* TAO_Notify_Factory::collection_factory_ = 0; -TAO_Notify_EMO_Factory* TAO_Notify_Factory::emo_factory_ = 0; - -void -TAO_Notify_Factory::init (ACE_ENV_SINGLE_ARG_DECL) -{ - co_factory_ = - ACE_Dynamic_Service <TAO_Notify_CO_Factory>::instance (TAO_NOTIFY_DEF_CO_FACTORY_NAME); - - if (co_factory_ == 0) - { - ACE_NEW_THROW_EX (co_factory_, - TAO_Notify_Default_CO_Factory (), - CORBA::NO_MEMORY ()); - } - - poa_factory_ = - ACE_Dynamic_Service <TAO_Notify_POA_Factory>::instance (TAO_NOTIFY_DEF_POA_FACTORY_NAME); - - if (poa_factory_ == 0) - { - ACE_NEW_THROW_EX (poa_factory_, - TAO_Notify_Default_POA_Factory (), - CORBA::NO_MEMORY ()); - } - - collection_factory_ = - ACE_Dynamic_Service <TAO_Notify_Collection_Factory>::instance (TAO_NOTIFY_DEF_COLLECTION_FACTORY_NAME); - - if (collection_factory_ == 0) - { - ACE_NEW_THROW_EX (collection_factory_, - TAO_Notify_Default_Collection_Factory (), - CORBA::NO_MEMORY ()); - } - - emo_factory_ = - ACE_Dynamic_Service <TAO_Notify_EMO_Factory>::instance (TAO_NOTIFY_DEF_EMO_FACTORY_NAME); - - if (emo_factory_ == 0) - ACE_DEBUG ((LM_DEBUG, "Unable to load Event Manager factory...\n")); - else - { - ACE_DEBUG ((LM_DEBUG, "Loaded Event Manager factory...\n")); - emo_factory_->print_values (); - } -} - -void -TAO_Notify_Factory::shutdown (void) -{ - // @@ -} - -TAO_Notify_CO_Factory* -TAO_Notify_Factory::get_channel_objects_factory (void) -{ - return TAO_Notify_Factory::co_factory_; -} - -TAO_Notify_POA_Factory* -TAO_Notify_Factory::get_poa_factory (void) -{ - return TAO_Notify_Factory::poa_factory_; -} - -TAO_Notify_Collection_Factory* -TAO_Notify_Factory::get_collection_factory (void) -{ - return TAO_Notify_Factory::collection_factory_; -} - -TAO_Notify_EMO_Factory* -TAO_Notify_Factory::create_event_manager_objects_factory (void) -{ - ACE_DECLARE_NEW_CORBA_ENV; - TAO_Notify_Default_EMO_Factory* local_emo_fact; - ACE_NEW_THROW_EX (local_emo_fact, - TAO_Notify_Default_EMO_Factory (), - CORBA::NO_MEMORY ()); - - local_emo_fact->init_instance (); - // @@ check return value - return local_emo_fact; -} - -// **************************************************************** - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Dynamic_Service<TAO_Notify_CO_Factory>; -template class ACE_Dynamic_Service<TAO_Notify_POA_Factory>; -template class ACE_Dynamic_Service<TAO_Notify_Collection_Factory>; -template class ACE_Dynamic_Service<TAO_Notify_EMO_Factory>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Dynamic_Service<TAO_Notify_Resource_Factory> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Factory.h deleted file mode 100644 index 6aa9522e3a1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Factory.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Factory.h - * - * $Id$ - * - * A collection of factories - - * a) A factory for event channel objects - the EC factory, EC, Admins, Proxys, et al. - * b) A factory for collections. - * c) A factory for POA's. - * d) A factory for manager objects. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_FACTORY_H -#define NOTIFY_FACTORY_H - -#include "ace/pre.h" -#include "tao/corba.h" -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -class TAO_Notify_CO_Factory; -class TAO_Notify_POA_Factory; -class TAO_Notify_Collection_Factory; -class TAO_Notify_EMO_Factory; -class TAO_Notify_EventChannelFactory_i; - - /** - * @class TAO_Notify_Factory - * - * @brief TAO_Notify_Factory - * - * This classes initializes the static default factories. - */ -class TAO_Notify_Export TAO_Notify_Factory -{ - public: - /// The factory for channel objects. - static TAO_Notify_CO_Factory* get_channel_objects_factory (void); - - /// The factory for POA's. - static TAO_Notify_POA_Factory* get_poa_factory (void); - - /// Factory for all collections in the notify service. - static TAO_Notify_Collection_Factory* get_collection_factory (void); - - /// The event manager objects. - static TAO_Notify_EMO_Factory* create_event_manager_objects_factory (void); - - protected: - friend class TAO_Notify_EventChannelFactory_i; - - /// Initalize the services. - static void init (ACE_ENV_SINGLE_ARG_DECL); - - /// shutdown the svcs. - static void shutdown (void); - - // = Data Members - static TAO_Notify_CO_Factory* co_factory_; - static TAO_Notify_POA_Factory* poa_factory_; - static TAO_Notify_Collection_Factory* collection_factory_; - static TAO_Notify_EMO_Factory* emo_factory_; -}; - -#define TAO_NOTIFY_DEF_CO_FACTORY_NAME "Notify_Default_Channel_Objects_Factory" -#define TAO_NOTIFY_DEF_POA_FACTORY_NAME "Notify_Default_POA_Factory" -#define TAO_NOTIFY_DEF_COLLECTION_FACTORY_NAME "Notify_Default_Collection_Factory" -#define TAO_NOTIFY_DEF_EMO_FACTORY_NAME "Notify_Default_Event_Manager_Objects_Factory" - -#include "ace/post.h" -#endif /* NOTIFY_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.cpp deleted file mode 100644 index ecf40231947..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* -*- C++ -*- $Id$ */ -#include "Notify_FilterAdmin_i.h" - -ACE_RCSID(Notify, Notify_FilterAdmin_i, "$Id$") - -// Implementation skeleton constructor -TAO_Notify_FilterAdmin_i::TAO_Notify_FilterAdmin_i (void) -{ -} - -// Implementation skeleton destructor -TAO_Notify_FilterAdmin_i::~TAO_Notify_FilterAdmin_i (void) -{ -} - -CORBA::Boolean -TAO_Notify_FilterAdmin_i::match (TAO_Notify_Event &event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )) -{ - // If no filter is active, treat it as a '*' i.e, let all events pass. - // or if its the special type, let it pass. - if (this->filter_list_.current_size () == 0) // || event.is_special_event_type ()) - return 1; - - // We want to return true if atleast one constraint matches. - FILTER_LIST::ITERATOR iter (this->filter_list_); - FILTER_LIST::ENTRY *entry; - CORBA::Boolean ret_val = 0; - - for (; iter.next (entry); iter.advance ()) - { - ret_val = event.do_match (entry->int_id_.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if (ret_val == 1) - return 1; - } - - return 0; -} - -CosNotifyFilter::FilterID -TAO_Notify_FilterAdmin_i::add_filter ( - CosNotifyFilter::Filter_ptr new_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (CORBA::is_nil (new_filter)) - ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0); - - CosNotifyFilter::FilterID new_id = this->filter_ids_.get (); - - CosNotifyFilter::Filter_var new_filter_var = - CosNotifyFilter::Filter::_duplicate (new_filter); - - if (this->filter_list_.bind (new_id, new_filter_var) == -1) - ACE_THROW_RETURN (CORBA::INTERNAL (), - 0); - else - { - this->filter_ids_.next (); - return new_id; - } -} - -void TAO_Notify_FilterAdmin_i::remove_filter (CosNotifyFilter::FilterID filter_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - if (this->filter_list_.unbind (filter_id) == -1) - ACE_THROW (CosNotifyFilter::FilterNotFound ()); - - this->filter_ids_.put (filter_id); -} - -CosNotifyFilter::Filter_ptr -TAO_Notify_FilterAdmin_i::get_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - CosNotifyFilter::Filter_var filter_var; - - if (this->filter_list_.find (filter, - filter_var) == -1) - ACE_THROW_RETURN (CosNotifyFilter::FilterNotFound (), - 0); - - return CosNotifyFilter::Filter::_duplicate (filter_var.in ()); -} - -CosNotifyFilter::FilterIDSeq* -TAO_Notify_FilterAdmin_i::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_ids_.get_sequence(ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_FilterAdmin_i::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotifyFilter::FilterIDSeq* id_list = - this->get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - for (CORBA::ULong i = 0; i < id_list->length (); ++i) - { - CosNotifyFilter::FilterID id = (*id_list)[i]; - this->remove_filter (id ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - delete id_list; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Hash_Map_Entry<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var>; -template class ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>; -template class TAO_Notify_ID_Pool_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::FilterIDSeq>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Hash_Map_Entry<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var> -#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX> -#pragma instantiate TAO_Notify_ID_Pool_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::FilterIDSeq> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.h deleted file mode 100644 index a566cbe56e7..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterAdmin_i.h +++ /dev/null @@ -1,99 +0,0 @@ -//============================================================================= -/** - * @file Notify_FilterAdmin_i.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_FILTERADMIN_H -#define NOTIFY_FILTERADMIN_H -#include "ace/pre.h" - -#include "Notify_ID_Pool_T.h" -#include "Notify_Event.h" -#include "orbsvcs/CosNotifyFilterS.h" -#include "ace/Hash_Map_Manager.h" -#include "notify_export.h" - -/** - * @class TAO_Notify_FilterAdmin_i - * - * @brief TAO_Notify_FilterAdmin_i - * - */ -class TAO_Notify_Export TAO_Notify_FilterAdmin_i -{ - -public: - /// Constructor - TAO_Notify_FilterAdmin_i (void); - - /// Destructor - virtual ~TAO_Notify_FilterAdmin_i (void); - - // = match operation on all the filters - /// See if any of the filters match. - CORBA::Boolean match (TAO_Notify_Event &event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - - virtual CosNotifyFilter::FilterID add_filter ( - CosNotifyFilter::Filter_ptr new_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::Filter_ptr get_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::FilterIDSeq * get_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -private: - /// List of filters - typedef ACE_Hash_Map_Manager <CosNotifyFilter::FilterID, CosNotifyFilter::Filter_var, TAO_SYNCH_MUTEX> FILTER_LIST; - FILTER_LIST filter_list_; - - /// Id generator for proxy suppliers - TAO_Notify_ID_Pool_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::FilterIDSeq> filter_ids_; -}; - -#include "ace/post.h" -#endif /* NOTIFY_FILTERADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.cpp deleted file mode 100644 index 388bdefeee2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- C++ -*- $Id$ */ - -#include "Notify_FilterFactory_i.h" -#include "Notify_Filter_i.h" - -ACE_RCSID(Notify, Notify_FilterFactory_i, "$Id$") - -// Implementation skeleton constructor -TAO_Notify_FilterFactory_i::TAO_Notify_FilterFactory_i (void) -{ -} - -// Implementation skeleton destructor -TAO_Notify_FilterFactory_i::~TAO_Notify_FilterFactory_i (void) -{ -} - -CosNotifyFilter::FilterFactory_ptr -TAO_Notify_FilterFactory_i::get_ref (ACE_ENV_SINGLE_ARG_DECL) -{ - CosNotifyFilter::FilterFactory_var filterfactory; - - filterfactory = _this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyFilter::FilterFactory::_nil ()); - - return filterfactory._retn (); -} - -CosNotifyFilter::Filter_ptr -TAO_Notify_FilterFactory_i::create_filter ( - const char *constraint_grammar - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )) -{ - // @@: change to "ExTCL" later. - if (ACE_OS::strcmp (constraint_grammar, "TCL") != 0 && - ACE_OS::strcmp (constraint_grammar, "ETCL") != 0) - ACE_THROW_RETURN (CosNotifyFilter::InvalidGrammar (), 0); - - TAO_Notify_Filter_i* filter; - - ACE_NEW_THROW_EX (filter, - TAO_Notify_Filter_i (constraint_grammar), - CORBA::NO_MEMORY ()); - - return filter->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyFilter::MappingFilter_ptr -TAO_Notify_FilterFactory_i::create_mapping_filter ( - const char * /*constraint_grammar*/, - const CORBA::Any & /*default_value*/ - ACE_ENV_ARG_DECL_NOT_USED //ACE_ENV_SINGLE_ARG_PARAMETER - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )) -{ - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.h deleted file mode 100644 index 460b7354e8f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_FilterFactory_i.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * $Id$ - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef NOTIFY_FILTER_FACTORY_I_H -#define NOTIFY_FILTER_FACTORY_I_H -#include "ace/pre.h" - -#include "orbsvcs/orbsvcs/CosNotifyFilterS.h" -#include "notify_export.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_FilterFactory_i - * - * - */ -class TAO_Notify_Export TAO_Notify_FilterFactory_i : public POA_CosNotifyFilter::FilterFactory, public PortableServer::RefCountServantBase -{ - -public: - /// Constructor - TAO_Notify_FilterFactory_i (void); - - /// Destructor - virtual ~TAO_Notify_FilterFactory_i (void); - - /// Activate with the default POA - CosNotifyFilter::FilterFactory_ptr - get_ref (ACE_ENV_SINGLE_ARG_DECL); - - virtual CosNotifyFilter::Filter_ptr create_filter ( - const char * constraint_grammar - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )); - - virtual CosNotifyFilter::MappingFilter_ptr create_mapping_filter ( - const char * constraint_grammar, - const CORBA::Any & default_value - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidGrammar - )); - -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* NOTIFY_FILTER_FACTORY_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Filter_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Filter_i.cpp deleted file mode 100644 index 8c9bfaeb18b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Filter_i.cpp +++ /dev/null @@ -1,507 +0,0 @@ -/* -*- C++ -*- $Id$ */ - -#include "Notify_Filter_i.h" -#include "Notify_Constraint_Visitors.h" - -#include "tao/debug.h" - -#include "ace/Auto_Ptr.h" - -ACE_RCSID(Notify, Notify_Filter_i, "$Id$") - -// Implementation skeleton constructor -TAO_Notify_Filter_i::TAO_Notify_Filter_i (const char* constraint_grammar) - : constraint_grammar_ (constraint_grammar) -{ -} - -// Implementation skeleton destructor -TAO_Notify_Filter_i::~TAO_Notify_Filter_i (void) -{ - ACE_DECLARE_NEW_CORBA_ENV; - this->remove_all_constraints (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "Filter Destroyed\n")); - } -} - -CosNotifyFilter::Filter_ptr -TAO_Notify_Filter_i::get_ref (ACE_ENV_SINGLE_ARG_DECL) -{ - PortableServer::POA_var my_POA = _default_POA (); - - PortableServer::ServantBase_var filter_var (this); - - PortableServer::ObjectId_var oid = - my_POA->activate_object (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ()); - - CORBA::Object_var obj = - my_POA->id_to_reference (oid.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ()); - - return CosNotifyFilter::Filter::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -char* -TAO_Notify_Filter_i::constraint_grammar ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return CORBA::string_dup (constraint_grammar_.in ()); -} - -void -TAO_Notify_Filter_i::add_constraints_i ( - const CosNotifyFilter::ConstraintInfoSeq& constraint_info_seq - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )) -{ - for (CORBA::ULong index = 0; - index < constraint_info_seq.length (); - ++index) - { - Notify_Constraint_Expr* notify_constr_expr; - - ACE_TRY - { - ACE_NEW_THROW_EX (notify_constr_expr, - Notify_Constraint_Expr (), - CORBA::NO_MEMORY ()); - - const CosNotifyFilter::ConstraintExp& expr = - constraint_info_seq[index].constraint_expression; - - notify_constr_expr->interpreter.build_tree ( - expr.constraint_expr.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - notify_constr_expr->constr_expr = expr; - - CosNotifyFilter::ConstraintID cnstr_id = - constraint_expr_ids_.get (); - - if (this->constraint_expr_list_.bind (cnstr_id, notify_constr_expr) - == -1) - { - ACE_THROW (CORBA::NO_RESOURCES ()); - } - - // Commit this id. - this->constraint_expr_ids_.next (); - - } - ACE_CATCHANY - { - // Delete the one that failed us. - delete notify_constr_expr; - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; - } -} - -CosNotifyFilter::ConstraintInfoSeq* -TAO_Notify_Filter_i::add_constraints ( - const CosNotifyFilter::ConstraintExpSeq& constraint_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )) -{ - CORBA::ULong constraint_length = constraint_list.length (); - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, - "constraint_length = %d\n", - constraint_length)); - } - - // Create the list that goes out. - CosNotifyFilter::ConstraintInfoSeq *infoseq; - ACE_NEW_THROW_EX (infoseq, - CosNotifyFilter::ConstraintInfoSeq (constraint_length), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - infoseq->length (constraint_length); - - auto_ptr<CosNotifyFilter::ConstraintInfoSeq> auto_infoseq (infoseq); - - // Populate infoseq. - for (CORBA::ULong pop_index = 0; pop_index < constraint_length; ++pop_index) - { - (*infoseq)[pop_index].constraint_expression = - constraint_list [pop_index]; - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, - "adding constraint %d, %s", - pop_index, - constraint_list [pop_index].constraint_expr.in ())); - } - } - - this->add_constraints_i (*infoseq - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - auto_infoseq.release (); - - return infoseq; -} - -void -TAO_Notify_Filter_i::modify_constraints ( - const CosNotifyFilter::ConstraintIDSeq & del_list, - const CosNotifyFilter::ConstraintInfoSeq & modify_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint, - CosNotifyFilter::ConstraintNotFound - )) -{ - // First check if all the ids are valid. - u_int index; - - for (index = 0; index < del_list.length (); ++index) - { - if (this->constraint_expr_list_.find (del_list [index]) == -1) - { - ACE_THROW (CosNotifyFilter::ConstraintNotFound (del_list [index])); - } - } - - for (index = 0; index < modify_list.length (); ++index) - { - if (this->constraint_expr_list_.find (modify_list [index].constraint_id) - == -1) - { - ACE_THROW ( - CosNotifyFilter::ConstraintNotFound ( - modify_list [index].constraint_id - ) - ); - } - } - - // Remove previous entries and save them in case we need to reinstate them. - ACE_Array<Notify_Constraint_Expr*> constr_saved (modify_list.length ()); - Notify_Constraint_Expr* constr_expr = 0; - - for (index = 0; index < modify_list.length (); ++index) - { - CosNotifyFilter::ConstraintID cnstr_id = - modify_list [index].constraint_id; - - if (this->constraint_expr_list_.unbind (cnstr_id, constr_expr) != -1) - { - constr_saved[index] = constr_expr; - } - - this->constraint_expr_ids_.put (cnstr_id); - } - - // Now add the new entries. - // Keep a list of ids generated in this session. - ACE_TRY - { - this->add_constraints_i (modify_list - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Restore, - for (index = 0; index < modify_list.length (); ++index) - { - CosNotifyFilter::ConstraintID cnstr_id = - this->constraint_expr_ids_.get (); - - if (constraint_expr_list_.bind (cnstr_id, - constr_saved[index]) == -1) - ACE_THROW (CORBA::NO_RESOURCES ()); - - this->constraint_expr_ids_.next (); // commit this id. - } - - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; - - // Now go around deleting... - // for the del_list. - for (index = 0; index < del_list.length (); ++index) - { - if (this->constraint_expr_list_.unbind (del_list [index], constr_expr) - != -1) - { - delete constr_expr; - } - } - - // Delete the old constraints. - for (index = 0; index < constr_saved.max_size (); ++index) - { - delete constr_saved[index]; - } -} - -CosNotifyFilter::ConstraintInfoSeq * -TAO_Notify_Filter_i::get_constraints ( - const CosNotifyFilter::ConstraintIDSeq & id_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::ConstraintNotFound)) -{ - // Create the list that goes out. - CosNotifyFilter::ConstraintInfoSeq *infoseq; - ACE_NEW_THROW_EX (infoseq, - CosNotifyFilter::ConstraintInfoSeq (id_list.length ()), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - auto_ptr<CosNotifyFilter::ConstraintInfoSeq> auto_infoseq (infoseq); - - Notify_Constraint_Expr *notify_constr_expr = 0; - - for (u_int index = 0; index < id_list.length (); ++index) - { - if (this->constraint_expr_list_.find (id_list[index], - notify_constr_expr) == -1) - ACE_THROW_RETURN (CosNotifyFilter::ConstraintNotFound (id_list[index]), - 0); - - (*infoseq)[index].constraint_expression = - notify_constr_expr->constr_expr; - - // Get an id. - (*infoseq)[index].constraint_id = id_list[index]; - } - - auto_infoseq.release (); - return infoseq; -} - -CosNotifyFilter::ConstraintInfoSeq * -TAO_Notify_Filter_i::get_all_constraints (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - size_t current_size = this->constraint_expr_list_.current_size (); - - // Create the list that goes out. - CosNotifyFilter::ConstraintInfoSeq *infoseq; - ACE_NEW_THROW_EX (infoseq, - CosNotifyFilter::ConstraintInfoSeq (current_size), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - infoseq->length (current_size); - CONSTRAINT_EXPR_LIST_ITER iter (this->constraint_expr_list_); - CONSTRAINT_EXPR_ENTRY *entry; - - for (u_int index = 0; iter.done () == 0; iter.advance (), ++index) - { - if (iter.next (entry) != 0) - { - // Why do we cast to a const object? - // We want to force the TAO_String_Manager to make a - // copy of the string. It wouldn't unless we coax it to use - // the correct assignment operator. - (*infoseq)[index].constraint_expression = - ACE_static_cast (const CosNotifyFilter::ConstraintExp, - entry->int_id_->constr_expr); - - (*infoseq)[index].constraint_id = entry->ext_id_; - } - } - - return infoseq; -} - -void -TAO_Notify_Filter_i::remove_all_constraints (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - CONSTRAINT_EXPR_LIST_ITER iter (this->constraint_expr_list_); - CONSTRAINT_EXPR_ENTRY *entry; - - u_int index; - - for (index = 0; iter.done () == 0; iter.advance (), ++index) - { - if (iter.next (entry) != 0) - { - delete entry->int_id_; - } - } - - this->constraint_expr_list_.unbind_all (); -} - -void -TAO_Notify_Filter_i::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->remove_all_constraints (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - PortableServer::POA_var my_POA = _default_POA (); - - PortableServer::ObjectId_var refTemp = my_POA->servant_to_id (this); - - my_POA->deactivate_object (refTemp.in ()); -} - -CORBA::Boolean -TAO_Notify_Filter_i::match (const CORBA::Any & /*filterable_data */ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -CORBA::Boolean -TAO_Notify_Filter_i::match_structured ( - const CosNotification::StructuredEvent & filterable_data - ACE_ENV_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData)) -{ - // We want to return true if at least one constraint matches. - CONSTRAINT_EXPR_LIST_ITER iter (this->constraint_expr_list_); - CONSTRAINT_EXPR_ENTRY *entry; - - TAO_Notify_Constraint_Visitor visitor; - - if (visitor.bind_structured_event (filterable_data) != 0) - { - // Maybe throw some kind of exception here, or lower down, - return 0; - } - - for (; iter.done () == 0; iter.advance ()) - { - if (iter.next (entry) != 0) - { - if (entry->int_id_->interpreter.evaluate (visitor) == 1) - { - return 1; - } - } - } - - return 0; -} - -CORBA::Boolean -TAO_Notify_Filter_i::match_typed ( - const CosNotification::PropertySeq & /* filterable_data */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -CosNotifyFilter::CallbackID -TAO_Notify_Filter_i::attach_callback ( - CosNotifyComm::NotifySubscribe_ptr /* callback */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -void -TAO_Notify_Filter_i::detach_callback ( - CosNotifyFilter::CallbackID /* callback */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyFilter::CallbackNotFound)) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosNotifyFilter::CallbackIDSeq * -TAO_Notify_Filter_i::get_callbacks (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - 0); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Hash_Map_Entry<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr *>; -template class ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>; - -#if !defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION) -template class ACE_Equal_To<CosNotifyFilter::ConstraintID>; -#endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */ - -template class ACE_Array<TAO_Notify_Filter_i::Notify_Constraint_Expr*>; -template class ACE_Array_Base<TAO_Notify_Filter_i::Notify_Constraint_Expr*>; - -template class auto_ptr<CosNotifyFilter::ConstraintInfoSeq>; -template class ACE_Auto_Basic_Ptr<CosNotifyFilter::ConstraintInfoSeq>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Hash_Map_Entry<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*> -#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_Notify_Filter_i::Notify_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX> - -#if !defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION) -#pragma instantiate ACE_Equal_To<CosNotifyFilter::ConstraintID> -#endif /* ACE_HAS_STD_TEMPLATE_SPECIALIZATION */ - -#pragma instantiate ACE_Array<TAO_Notify_Filter_i::Notify_Constraint_Expr*> -#pragma instantiate ACE_Array_Base<TAO_Notify_Filter_i::Notify_Constraint_Expr*> - -#pragma instantiate auto_ptr<CosNotifyFilter::ConstraintInfoSeq> -#pragma instantiate ACE_Auto_Basic_Ptr<CosNotifyFilter::ConstraintInfoSeq> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Filter_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Filter_i.h deleted file mode 100644 index fa3ccb01b49..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Filter_i.h +++ /dev/null @@ -1,211 +0,0 @@ -//============================================================================= -/** - * @file Notify_Filter_i.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_FILTER_I_H -#define TAO_NOTIFY_FILTER_I_H -#include "ace/pre.h" - -#include "Notify_Constraint_Interpreter.h" -#include "Notify_ID_Pool_T.h" -#include "orbsvcs/CosNotifyFilterS.h" -#include "ace/Containers_T.h" -#include "ace/Hash_Map_Manager.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_Filter_i - * - */ - -class TAO_Notify_Export TAO_Notify_Filter_i : public POA_CosNotifyFilter::Filter, - public PortableServer::RefCountServantBase -{ -public: - /// Constructor - TAO_Notify_Filter_i (const char* constraint_grammar); - - /// Destructor - virtual ~TAO_Notify_Filter_i (void); - - /// Activate with the default POA - CosNotifyFilter::Filter_ptr - get_ref (ACE_ENV_SINGLE_ARG_DECL); - -virtual char * constraint_grammar ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyFilter::ConstraintInfoSeq * add_constraints ( - const CosNotifyFilter::ConstraintExpSeq & constraint_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )); - -virtual void modify_constraints ( - const CosNotifyFilter::ConstraintIDSeq & del_list, - const CosNotifyFilter::ConstraintInfoSeq & modify_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint, - CosNotifyFilter::ConstraintNotFound - )); - -virtual CosNotifyFilter::ConstraintInfoSeq * get_constraints ( - const CosNotifyFilter::ConstraintIDSeq & id_list - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::ConstraintNotFound - )); - -virtual CosNotifyFilter::ConstraintInfoSeq * get_all_constraints ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void remove_all_constraints ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void destroy ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CORBA::Boolean match ( - const CORBA::Any & filterable_data - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - -virtual CORBA::Boolean match_structured ( - const CosNotification::StructuredEvent & filterable_data - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - -virtual CORBA::Boolean match_typed ( - const CosNotification::PropertySeq & filterable_data - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::UnsupportedFilterableData - )); - -virtual CosNotifyFilter::CallbackID attach_callback ( - CosNotifyComm::NotifySubscribe_ptr callback - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void detach_callback ( - CosNotifyFilter::CallbackID callback - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::CallbackNotFound - )); - -virtual CosNotifyFilter::CallbackIDSeq * get_callbacks ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -private: - void add_constraints_i ( - const CosNotifyFilter::ConstraintInfoSeq& constraint_info_seq - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::InvalidConstraint - )); - - struct Notify_Constraint_Expr - { - // = DESCRIPTION - // Structure for associating ConstraintInfo with an interpreter. - // - CosNotifyFilter::ConstraintExp constr_expr; - // Constraint Expression. - - TAO_Notify_Constraint_Interpreter interpreter; - // Constraint Interpreter. - }; - - /// Id generator for ConstraintInfo's. - TAO_Notify_ID_Pool <CosNotifyFilter::ConstraintID> constraint_expr_ids_; - - /// A list of the constraints stored in this filter. - ACE_Hash_Map_Manager <CosNotifyFilter::ConstraintID, - ACE_NESTED_CLASS (TAO_Notify_Filter_i, Notify_Constraint_Expr*), - TAO_SYNCH_MUTEX> - constraint_expr_list_; - - typedef ACE_Hash_Map_Iterator <CosNotifyFilter::ConstraintID, - ACE_NESTED_CLASS (TAO_Notify_Filter_i, Notify_Constraint_Expr*), - TAO_SYNCH_MUTEX> - CONSTRAINT_EXPR_LIST_ITER; - - typedef ACE_Hash_Map_Entry <CosNotifyFilter::ConstraintID, - ACE_NESTED_CLASS (TAO_Notify_Filter_i, - Notify_Constraint_Expr*)> - CONSTRAINT_EXPR_ENTRY; - CORBA::String_var constraint_grammar_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_FILTER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.cpp deleted file mode 100644 index c8d462a1af9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// $Id$ - -#ifndef TAO_NOTIFY_ID_POOL_T_C -#define TAO_NOTIFY_ID_POOL_T_C - -#include "Notify_ID_Pool_T.h" - -#if !defined (__ACE_INLINE__) -#include "Notify_ID_Pool_T.i" -#endif /* __ACE_INLINE__ */ - -template <class ID_TYPE> -TAO_Notify_ID_Pool<ID_TYPE>::TAO_Notify_ID_Pool (void) - : id_ (0) -{ - // No-Op. -} - -template <class ID_TYPE> -TAO_Notify_ID_Pool<ID_TYPE>::~TAO_Notify_ID_Pool () -{ - // No-Op. -} - -template <class ID_TYPE> ID_TYPE -TAO_Notify_ID_Pool<ID_TYPE>::get (void) -{ - // Using the prefix ++ operator here causes problems with - // the default supplier and consumer admins. - return this->id_++; -} - -template <class ID_TYPE> void -TAO_Notify_ID_Pool<ID_TYPE>::put (ID_TYPE id ) -{ - this->active_list_.remove (id); -} - -template <class ID_TYPE> void -TAO_Notify_ID_Pool<ID_TYPE>::next (void) -{ - this->active_list_.insert (this->id_); -} - -template <class ID_TYPE, class ID_TYPE_SEQ> -TAO_Notify_ID_Pool_Ex<ID_TYPE, ID_TYPE_SEQ>::TAO_Notify_ID_Pool_Ex (void) -{ -} - -template <class ID_TYPE, class ID_TYPE_SEQ> -TAO_Notify_ID_Pool_Ex<ID_TYPE, ID_TYPE_SEQ>::~TAO_Notify_ID_Pool_Ex () -{ -} - -template <class ID_TYPE, class ID_TYPE_SEQ> ID_TYPE_SEQ* -TAO_Notify_ID_Pool_Ex<ID_TYPE, ID_TYPE_SEQ>::get_sequence (ACE_ENV_SINGLE_ARG_DECL) -{ - // Figure out the length of the list. - size_t len = this->active_list_.size (); - - ID_TYPE_SEQ* list; - - // Allocate the list of <len> length. - ACE_NEW_THROW_EX (list, - ID_TYPE_SEQ (len), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (0); - - list->length (len); - - ACE_Unbounded_Set_Iterator<ID_TYPE> iter (this->active_list_); - ID_TYPE* id_ret; - - int i = 0; - for (iter.first (); iter.next (id_ret) == 1; iter.advance ()) - (*list)[i++] = *id_ret; - - return list; -} - -#endif /* TAO_NOTIFY_ID_POOL_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.h deleted file mode 100644 index e7df736ca07..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.h +++ /dev/null @@ -1,98 +0,0 @@ -//============================================================================= -/** - * @file Notify_ID_Pool_T.h - * - * $Id$ - * - * A class to generate ID's. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_ID_POOL_T_H -#define TAO_NOTIFY_ID_POOL_T_H -#include "ace/pre.h" -#include "ace/OS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Containers_T.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -/** - * @class TAO_Notify_ID_Pool - * - * @brief ID_Pool - * - * This class is used by factories that need to associate id's with the - * objects that they create. - * The very first id generated is always 0.The condition is necessary to - * support ids for default objects that require an id of 0. - */ -template <class ID_TYPE> -class TAO_Notify_ID_Pool -{ -public: - - /// Constructor. - TAO_Notify_ID_Pool (void); - - /// Destructor. - ~TAO_Notify_ID_Pool (); - - /// Returns the current id. - ID_TYPE get (void); - - /// Return the id back. - void put (ID_TYPE id); - - /// The current id is moved to the active_list_. - void next (void); - - protected: - /// The next available id. - ID_TYPE id_; - - /// List of ids currently in use by clients of this class. - ACE_Unbounded_Set <ID_TYPE> active_list_; -}; - - /** - * @class TAO_Notify_ID_Pool_Ex - * - * @brief TAO_Notify_ID_Pool_Ex - * - * Extends the TAO_Notify_ID_Pool with a method to convert the active_list - * into a sequence type. - */ -template <class ID_TYPE, class ID_TYPE_SEQ> -class TAO_Notify_ID_Pool_Ex : public TAO_Notify_ID_Pool <ID_TYPE> -{ - public: - TAO_Notify_ID_Pool_Ex (void); - ~TAO_Notify_ID_Pool_Ex (); - - /// Get a list of all ids in use. - /// Essentially converts the <active_list_> to a Sequence. - ID_TYPE_SEQ* get_sequence (ACE_ENV_SINGLE_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "Notify_ID_Pool_T.i" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Notify_ID_Pool_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Notify_ID_Pool_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_ID_POOL_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Listener_Filter_Eval_Command.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Listener_Filter_Eval_Command.cpp deleted file mode 100644 index 7be49ac9fe3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Listener_Filter_Eval_Command.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Notify_Listener_Filter_Eval_Command.h" -#include "Notify_Event_Dispatch_Command.h" -#include "Notify_Worker_Task.h" -#include "Notify_Listeners.h" -#include "Notify_Event.h" -#include "Notify_Event_Processor.h" - -ACE_RCSID(Notify, Notify_Listener_Filter_Eval_Command, "$Id$") - -TAO_Notify_Listener_Filter_Eval_Command::TAO_Notify_Listener_Filter_Eval_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_EventListener* event_listener, CORBA::Boolean eval_parent) - :TAO_Notify_Command (event_processor, event), - event_listener_ (event_listener), - eval_parent_ (eval_parent) -{ - event_listener_->_incr_refcnt (); - this->event_->_incr_refcnt (); -} - -TAO_Notify_Listener_Filter_Eval_Command::~TAO_Notify_Listener_Filter_Eval_Command () -{ - event_listener_->_decr_refcnt (); - this->event_->_decr_refcnt (); -} - -int -TAO_Notify_Listener_Filter_Eval_Command::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - CORBA::Boolean result = - this->event_listener_->evaluate_filter (*this->event_, this->eval_parent_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (result == 1) - { - this->event_processor_->dispatch_event (this->event_, this->event_listener_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; - } - - return -1; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Listener_Filter_Eval_Command.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Listener_Filter_Eval_Command.h deleted file mode 100644 index 865fc0298d8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Listener_Filter_Eval_Command.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Listener_Filter_Eval_Command.h - * - * $Id$ - * - * Defines the Command object for evaluating the listener's filter. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_LISTENER_FILTER_EVAL_COMMAND_H -#define TAO_NOTIFY_LISTENER_FILTER_EVAL_COMMAND_H - -#include "ace/pre.h" -#include "Notify_Command.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -class TAO_Notify_Event; -class TAO_Notify_EventListener; -class TAO_Notify_Event_Processor; - - /** - * @class TAO_Notify_Listener_Filter_Eval_Command - * - * @brief TAO_Notify_Listener_Filter_Eval_Command - * - * Listener filter evaluation command. - */ -class TAO_Notify_Export TAO_Notify_Listener_Filter_Eval_Command : public TAO_Notify_Command -{ - public: - /// The event, listener, and hint to pass (see the listener interface for details) - TAO_Notify_Listener_Filter_Eval_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_EventListener* event_listener, CORBA::Boolean eval_parent); - - ~TAO_Notify_Listener_Filter_Eval_Command(); - - /// Command callback - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - - protected: - // = Data Members - TAO_Notify_EventListener* event_listener_; - CORBA::Boolean eval_parent_; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_LISTENER_FILTER_EVAL_COMMAND_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Listeners.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Listeners.h deleted file mode 100644 index 3791241bd03..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Listeners.h +++ /dev/null @@ -1,139 +0,0 @@ -/** - * @file Notify_Listeners.h - * - * $Id$ - * - * Internal "observer" interfaces for Notify. - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ - -#ifndef TAO_NOTIFY_LISTENERS_H -#define TAO_NOTIFY_LISTENERS_H - -#include "ace/pre.h" -#include "tao/corba.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "notify_export.h" - -class TAO_Notify_Event; -class TAO_Notify_EventType_List; -class TAO_Notify_Worker_Task; - -// @@ Pradeep: this file has three separate classes, that do not seem -// related in anyway, you should move them to their own files. -// @@ Pradeep: it seems like the classes in this file are fundamental -// interfaces used all over the place, you should document them and -// how they interact, in the README file or in the paper or both. - -// @@ Pradeep: if this class is what I think it is then it should be -// in its own file.. - /** - * @class TAO_Notify_RefCounted - * - * @brief TAO_Notify_RefCounted - * - * @@ Pradeep: what do you mean "often", is it used for something - * else sometimes? Or is it that sometimes refcounting is done - * some other way? - * Often used interface for ref. counting. - */ -class TAO_Notify_Export TAO_Notify_RefCounted -{ - public: - /// Increment the reference count. - virtual CORBA::ULong _incr_refcnt (void) = 0; - - /// Decrement the reference count. - virtual CORBA::ULong _decr_refcnt (void) = 0; -}; - -// **************************************************************** - -/** - * @class TAO_Notify_EventListener - * - * @brief TAO_Notify_EventListener - * - * All entities interested in receiving events can implement this interface - * and subscribe with the Event Manager. During subscription, the Listener - * must specify what kind of events it is interested in. - */ -class TAO_Notify_Export TAO_Notify_EventListener : virtual public TAO_Notify_RefCounted -{ - -public: - /// Callback methods to supply the event to the listener. - virtual void dispatch_event (TAO_Notify_Event &event - ACE_ENV_ARG_DECL) = 0; - - /** - * Evaluates true if this event is acceptable by the listener. - * The <eval_parent> is a hint to the listener to help it determine - * if its wise to evaluate the parents filter too. This helps in - * implementing the "interfilter group operator" logic. - */ - virtual CORBA::Boolean evaluate_filter (TAO_Notify_Event &event, - CORBA::Boolean eval_parent - ACE_ENV_ARG_DECL) = 0; - - /// Ask the listener to relinquish any bindings and prepare to be - /// disposed. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL) = 0; - - /// The Worker task associated with the event listener for event dispatching - virtual TAO_Notify_Worker_Task* event_dispatch_task (void) = 0; - - /// The Worker task associated with the event listener for filter evaluation. - virtual TAO_Notify_Worker_Task* filter_eval_task (void) = 0; -}; - -// **************************************************************** - - /** - * @class TAO_Notify_EventSource - * - * @brief TAO_Notify_EventSource - * - * The event source suppliers events to the Notify Manager. - */ -class TAO_Notify_Export TAO_Notify_EventSource : virtual public TAO_Notify_RefCounted -{ - public: - // TODO: add a shutdown method to this interface!! - - /// Evaluates true if this event is acceptable by the Source. - virtual CORBA::Boolean evaluate_filter (TAO_Notify_Event &event - ACE_ENV_ARG_DECL) = 0; - - /// The Worker task associated with the event listener for filter evaluation. - virtual TAO_Notify_Worker_Task* filter_eval_task (void) = 0; -}; - -// **************************************************************** - -/** - * @class TAO_Notify_UpdateListener - * - * @brief TAO_Notify_UpdateListener - * - * All entities interested in receiving subscription and publication - * change messages can implement this interface and register it with - * the Event Manager to receive updates. - */ -class TAO_Notify_Export TAO_Notify_UpdateListener : virtual public TAO_Notify_RefCounted -{ - - public: - /// Callback method to supply updates. - virtual void dispatch_update (TAO_Notify_EventType_List& added, - TAO_Notify_EventType_List& removed - ACE_ENV_ARG_DECL) = 0; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_LISTENERS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Lookup_Command.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Lookup_Command.cpp deleted file mode 100644 index 46ca4442051..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Lookup_Command.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// $Id$ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Notify_Lookup_Command.h" -#include "Notify_Event_Manager.h" -#include "Notify_Listener_Filter_Eval_Command.h" -#include "Notify_Event.h" -#include "Notify_Event_Map.h" -#include "Notify_Event_Processor.h" - -ACE_RCSID(Notify, Notify_Lookup_Command, "$Id$") - -TAO_Notify_Lookup_Command::TAO_Notify_Lookup_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_Event_Map* event_map) - :TAO_Notify_Command (event_processor, event), - event_map_ (event_map) -{ - this->event_->_incr_refcnt (); -} - -TAO_Notify_Lookup_Command::~TAO_Notify_Lookup_Command () -{ - this->event_->_decr_refcnt (); -} - -int -TAO_Notify_Lookup_Command::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - // If the event is *not* the special event - // send it to the list that matches it. - // In any case send it to the default list. -#if 0 - ACE_DEBUG ((LM_DEBUG, "finding a match for event: %s, %s\n", - event->event_type ().event_type_.domain_name.in (), - event->event_type ().event_type_.type_name.in ())); -#endif - - if (!this->event_->is_special_event_type ()) - { - TAO_Notify_EventListener_List* listener_list; - // find the subscription list for <event_type> - - if (event_map_->find (this->event_->event_type (), - listener_list) == 0) - { - listener_list->for_each (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - } - // Those subscribed for the default events get everything. - // if (this->default_subscription_list_->is_empty () == 0) - // @@ can't do this test - is_empty is not impl. - { - event_map_->default_subscription_list ()->for_each (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - } - - return 0; -} - -void -TAO_Notify_Lookup_Command::work (TAO_Notify_EventListener* event_listener - ACE_ENV_ARG_DECL) -{ - this->event_processor_->evaluate_listener_filter (this->event_, event_listener, 1 ACE_ENV_ARG_PARAMETER); - // Note the last parameter, we want the parent filter to be evaluated. -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Lookup_Command.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Lookup_Command.h deleted file mode 100644 index 85924c39ba7..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Lookup_Command.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Lookup_Command.h - * - * $Id$ - * - * Command object for looking up subscriptions for a given event. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_LOOKUP_COMMAND_H -#define TAO_NOTIFY_LOOKUP_COMMAND_H - -#include "ace/pre.h" -#include "orbsvcs/ESF/ESF_Worker.h" -#include "Notify_Command.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -class TAO_Notify_Event; -class TAO_Notify_EventListener; -class TAO_Notify_Event_Map; - - /** - * @class TAO_Notify_Lookup_Command - * - * @brief TAO_Notify_Lookup_Command - * - * Command object for event subscription lookup in the event map. - */ -class TAO_Notify_Export TAO_Notify_Lookup_Command : public TAO_Notify_Command, public TAO_ESF_Worker<TAO_Notify_EventListener> -{ - public: - // = Initialization and termination code - TAO_Notify_Lookup_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_Event_Map* event_map); - - ~TAO_Notify_Lookup_Command (); - - /// Command callback - virtual int execute (ACE_ENV_SINGLE_ARG_DECL_NOT_USED); - - // = TAO_ESF_Worker method - void work (TAO_Notify_EventListener* listener ACE_ENV_ARG_DECL); - protected: - // = Data member - /// The event map to lookup in. - TAO_Notify_Event_Map* event_map_; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_LOOKUP_COMMAND_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_MT_Worker_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_MT_Worker_Task.cpp deleted file mode 100644 index 34cfcdf67bd..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_MT_Worker_Task.cpp +++ /dev/null @@ -1,219 +0,0 @@ -// $Id$ - -#include "Notify_MT_Worker_Task.h" -#include "Notify_Command.h" -#include "Notify_AdminProperties.h" -#include "Notify_Buffering_Strategy.h" -#include "Notify_QoSAdmin_i.h" -#include "Notify_Extensions.h" - -#include "tao/debug.h" - -ACE_RCSID(Notify, Notify_MT_Worker_Task, "$Id$") - -TAO_Notify_MT_Worker_Task::TAO_Notify_MT_Worker_Task (int n_threads, long flags, int force_active, long priority) - :buffering_strategy_ (0), - queue_length_ (0), - n_threads_ (n_threads), - flags_ (flags), - force_active_ (force_active), - priority_ (priority) -{ -} - -TAO_Notify_MT_Worker_Task::~TAO_Notify_MT_Worker_Task () -{ - delete this->buffering_strategy_; -} - -int -TAO_Notify_MT_Worker_Task::init_task ( - TAO_Notify_AdminProperties* const admin_properties, - TAO_Notify_QoSAdmin_i* const qos_properties) -{ - // Store the admin properties... - this->queue_length_ = admin_properties->queue_length (); - - // Make us an Active Object. - if (this->activate (this->flags_, this->n_threads_, this->force_active_, this->priority_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("activate failed")), -1); - - // Create the dispatching strategy. - ACE_NEW_RETURN (this->buffering_strategy_, - TAO_Notify_Buffering_Strategy ( - admin_properties->queue_length ()), - -1); - - // Set the admin properties - this->update_admin (*admin_properties); - - // Set the qos policies - this->update_qos (*qos_properties); - - return 0; -} - -void -TAO_Notify_MT_Worker_Task::shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED /*ACE_ENV_SINGLE_ARG_PARAMETER*/) -{ - // Put a shutdown message in the task queue and wait here till all - // threads exit. - this->close (0); -} - -int -TAO_Notify_MT_Worker_Task::close (u_long) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) close of worker\n"))); - - TAO_Notify_Shutdown_Command * mb = new TAO_Notify_Shutdown_Command (); - - ACE_DECLARE_NEW_CORBA_ENV; - this->process_event (mb ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // We can not wait for ourselves to quit - if (this->thr_mgr ()) - { - // call this->thr_mgr ()->task () in the main thread will assert () - // fail in ACE_Thread_Manager::thread_desc_self (void) so I get - // task this way. - ACE_Thread_Descriptor *mydesc = this->thr_mgr ()->thread_descriptor (ACE_OS::thr_self ()); - - if (mydesc && mydesc->task () == this) - return -1; - } - return this->wait (); -} - -int -TAO_Notify_MT_Worker_Task::process_event (TAO_Notify_Command *mb ACE_ENV_ARG_DECL, ACE_Time_Value *tv) -{ - // Execute the buffering strategy. - this->buffering_strategy_->execute (this->msg_queue (), mb ACE_ENV_ARG_PARAMETER, tv); - ACE_CHECK_RETURN (-1); - - return 0; -} - -void -TAO_Notify_MT_Worker_Task::update_admin (TAO_Notify_AdminProperties& admin) -{ - this->buffering_strategy_->max_queue_length (admin.max_queue_length ()); -} - -void -TAO_Notify_MT_Worker_Task::update_qos (TAO_Notify_QoSAdmin_i& qos_admin) -{ - // Only set values on the buffering_strategy_ that have actually been - // set on the qos_admin that is passed in. This way, values on the - // buffering_strategy_ are preserved when the qos parameters are not - // set on say the event channel or the supplier proxy. - ACE_TRY_NEW_ENV - { - CosNotification::QoSProperties_var qos = qos_admin.get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - for (CORBA::ULong index = 0; index < qos->length (); ++index) - { - if (ACE_OS::strcmp (qos[index].name, - CosNotification::OrderPolicy) == 0) - { - CORBA::Short value; - qos[index].value >>= value; - this->buffering_strategy_->order_policy (value); - } - else if (ACE_OS::strcmp (qos[index].name, - CosNotification::DiscardPolicy) == 0) - { - CORBA::Short value; - qos[index].value >>= value; - this->buffering_strategy_->discard_policy (value); - } - else if (ACE_OS::strcmp (qos[index].name, - CosNotification::MaxEventsPerConsumer) == 0) - { - CORBA::Long value; - qos[index].value >>= value; - this->buffering_strategy_->max_events_per_consumer (value); - } - else if (ACE_OS::strcmp (qos[index].name, - TAO_Notify_Extensions::BlockingPolicy) == 0) - { - TimeBase::TimeT value; - qos[index].value >>= value; - this->buffering_strategy_->blocking_timeout (value); - } - } - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "EC (%P|%t) exception in update_qos"); - } - ACE_ENDTRY; -} - -int -TAO_Notify_MT_Worker_Task::svc (void) -{ - int done = 0; - while (!done) - { - ACE_TRY_NEW_ENV - { - ACE_Message_Block *mb; - if (this->getq (mb) == -1) - if (ACE_OS::last_error () == ESHUTDOWN) - return 0; - else - ACE_ERROR ((LM_ERROR, - "EC (%P|%t) getq error in Dispatching Queue\n")); - - // Decrement the global event count. - (*this->queue_length_)--; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "removing from queue\n")); - TAO_Notify_Command *command = - ACE_dynamic_cast (TAO_Notify_Command*, mb); - - int result = 0; - - if (command != 0) - { - result = command->execute (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - ACE_Message_Block::release (mb); - - if (result == -1) - done = 1; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "EC (%P|%t) exception in dispatching queue"); - } - ACE_ENDTRY; - } - return 0; -} - -/**************************************************************************/ - -TAO_Notify_Shutdown_Command::TAO_Notify_Shutdown_Command (void) - :TAO_Notify_Command (0,0) -{ -} - -int -TAO_Notify_Shutdown_Command::execute (ACE_ENV_SINGLE_ARG_DECL_NOT_USED /*ACE_ENV_SINGLE_ARG_PARAMETER*/) -{ - return -1; -} -/**************************************************************************/ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_MT_Worker_Task.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_MT_Worker_Task.h deleted file mode 100644 index 3590ee817ab..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_MT_Worker_Task.h +++ /dev/null @@ -1,110 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_MT_Worker_Task.h - * - * $Id$ - * - * MT Worker task - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_MT_NOTIFY_WORKER_TASK_H -#define TAO_MT_NOTIFY_WORKER_TASK_H - -#include "ace/pre.h" -#include "ace/Task.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_Worker_Task.h" -#include "Notify_AdminProperties.h" - -class TAO_Notify_Event_Processor; -class TAO_Notify_Buffering_Strategy; -class TAO_Notify_QoSAdmin_i; - -/** - * @class TAO_Notify_MT_Worker_Task - * - * @brief TAO_Notify_MT_Worker_Task - * - * A MT worker task that we use for various event processing jobs. - * Also see TAO_Notify_Command - This task executes Notify_Command objects. - */ -class TAO_Notify_Export TAO_Notify_MT_Worker_Task : public TAO_Notify_Worker_Task, public ACE_Task<ACE_SYNCH> -{ -public: - // = Initialization and termination code - /// Constructor. - TAO_Notify_MT_Worker_Task (int n_threads = 1, - long flags = THR_NEW_LWP | THR_JOINABLE, - int force_active = 0, - long priority = ACE_DEFAULT_THREAD_PRIORITY); - - /// Destructor. - ~TAO_Notify_MT_Worker_Task (); - - /// Init the task - virtual int init_task (TAO_Notify_AdminProperties* const admin_properties, - TAO_Notify_QoSAdmin_i* const qos_properties); - - /// Shutdown this task. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Process the command. - virtual int process_event (TAO_Notify_Command *mb ACE_ENV_ARG_DECL, ACE_Time_Value *tv = 0); - - virtual void update_admin (TAO_Notify_AdminProperties& admin); - virtual void update_qos (TAO_Notify_QoSAdmin_i& qos_admin); - - protected: - /// svc command processes objects stored in the message queue. - virtual int svc (void); - - /// Close hook. - virtual int close (u_long); - - /// The buffering strategy to use. - TAO_Notify_Buffering_Strategy* buffering_strategy_; - - /// We need to decrement the event_count_ everytime we dequeue a command - /// object. - TAO_Notify_Signal_Property_Long* queue_length_; - - // = Parameters to activate - int n_threads_; - long flags_; - int force_active_; - long priority_; -}; - -//**************************************************************************************** - - /** - * @class TAO_Notify_Shutdown_Command - * - * @brief TAO_Notify_Shutdown_Command - * - * Shutdown command to shutdown the task. - */ -class TAO_Notify_Export TAO_Notify_Shutdown_Command : public TAO_Notify_Command -{ - public: - - TAO_Notify_Shutdown_Command (void); - - /// Returns -1. This signals worker threads to finish servicing requests. - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); -}; - -//**************************************************************************************** - -#include "ace/post.h" -#endif /* TAO_MT_NOTIFY_WORKER_TASK_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_POA_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_POA_Factory.h deleted file mode 100644 index 1951e296392..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_POA_Factory.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_POA_Factory.h - * - * $Id$ - * - * Factory interface for POA objects. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_POA_FACTORY_H -#define TAO_NOTIFY_POA_FACTORY_H - -#include "ace/pre.h" -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "tao/PortableServer/PortableServer.h" -#include "notify_export.h" - - /** - * @class TAO_Notify_POA_Factory - * - * @brief TAO_Notify_POA_Factory - * - * Interface for POA objects. - */ -class TAO_Notify_Export TAO_Notify_POA_Factory : public ACE_Service_Object -{ - public: - // = POA creation methods. - /// Create the POA to activate Event Channels in. - virtual PortableServer::POA_ptr create_event_channel_POA (PortableServer::POA_ptr parent_poa ACE_ENV_ARG_DECL) = 0; - - /// Create the POA to activate SA's in. - virtual PortableServer::POA_ptr create_supplier_admin_POA (PortableServer::POA_ptr parent_poa, CORBA::Long new_poa_id ACE_ENV_ARG_DECL) = 0; - - /// Create the POA to activate CA's in. - virtual PortableServer::POA_ptr create_consumer_admin_POA (PortableServer::POA_ptr parent_poa, CORBA::Long new_poa_id ACE_ENV_ARG_DECL) = 0; - - /// Create the POA to activate proxy push consumers in. - virtual PortableServer::POA_ptr create_proxy_pushconsumer_POA (PortableServer::POA_ptr parent_poa, CORBA::Long new_poa_id ACE_ENV_ARG_DECL) = 0; - - /// Create the POA to activate proxy push suppliers in. - virtual PortableServer::POA_ptr create_proxy_pushsupplier_POA (PortableServer::POA_ptr parent_poa, CORBA::Long new_poa_id ACE_ENV_ARG_DECL) = 0; - - // = Object activation and POA methods - /// Converts <id> to an ObjectId and registers with the POA <poa>. - virtual CORBA::Object_ptr activate_object_with_id (CORBA::Long id, PortableServer::POA_ptr poa,PortableServer::Servant servant ACE_ENV_ARG_DECL) = 0; - - /// Registers with the POA <poa>. - virtual CORBA::Object_ptr activate_object (PortableServer::POA_ptr poa,PortableServer::Servant servant ACE_ENV_ARG_DECL) = 0; - - /// Registers with the POA <poa>. - virtual CORBA::Object_ptr servant_to_reference (PortableServer::POA_ptr poa,PortableServer::Servant servant ACE_ENV_ARG_DECL) = 0; - - /// Look for the Object with id <id> in <poa>. - virtual CORBA::Object_ptr id_to_reference (CORBA::Long id, PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) = 0; - - /// Destroy the <poa> - virtual void destroy_POA (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) = 0; - - /// Deactivate the object. - virtual void deactivate_object (CORBA::Object_ptr obj, PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) = 0; - - /// Deactivate the object. - virtual void deactivate_object (PortableServer::Servant servant, PortableServer::POA_ptr ACE_ENV_ARG_DECL) = 0; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_POA_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.cpp deleted file mode 100644 index 0eb9eaaba70..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.cpp +++ /dev/null @@ -1,215 +0,0 @@ -// $Id$ -#ifndef TAO_NOTIFY_PROXYCONSUMER_T_C -#define TAO_NOTIFY_PROXYCONSUMER_T_C - -#include "Notify_ProxyConsumer_T.h" -#include "Notify_Event_Manager.h" -#include "Notify_SupplierAdmin_i.h" -#include "Notify_Factory.h" -#include "Notify_Channel_Objects_Factory.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Worker_Task.h" -#include "Notify_AdminProperties.h" - -ACE_RCSID(Notify, Notify_ProxyConsumer_T, "$Id$") - -template <class SERVANT_TYPE> -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::TAO_Notify_ProxyConsumer (TAO_Notify_SupplierAdmin_i* supplier_admin) - : supplier_admin_ (supplier_admin), - filter_eval_task_ (0) -{ - this->event_manager_ = supplier_admin->get_event_manager (); - this->supplier_admin_->_add_ref (); -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::init (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - this->proxy_id_ = proxy_id; - - TAO_Notify_CO_Factory* cof = - TAO_Notify_Factory::get_channel_objects_factory (); - - this->lock_ = cof->create_proxy_consumer_lock (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Create the task to forward filtering commands to: - - TAO_Notify_EMO_Factory* event_manager_objects_factory = - this->event_manager_->resource_factory (); - - this->filter_eval_task_ = - event_manager_objects_factory->create_source_eval_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - // open the tasks - this->filter_eval_task_->init_task (admin_properties, - &(this->qos_admin_)); -} - -// Implementation skeleton destructor -template <class SERVANT_TYPE> -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::~TAO_Notify_ProxyConsumer (void) -{ - ACE_DECLARE_NEW_CORBA_ENV; - - this->event_manager_->unregister_from_subscription_updates (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - delete this->lock_; - - this->supplier_admin_->proxy_pushconsumer_destroyed (this->proxy_id_); - this->supplier_admin_->_remove_ref (); - - // @@: Move this to on_disconnected - this->filter_eval_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_Notify_EMO_Factory* event_manager_objects_factory = - this->event_manager_->resource_factory (); - - event_manager_objects_factory->destroy_listener_eval_task (this->filter_eval_task_); -} - -template <class SERVANT_TYPE> CORBA::Boolean -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::evaluate_filter (TAO_Notify_Event &event ACE_ENV_ARG_DECL) -{ - // check if it passes the parent filter. - CORBA::Boolean bval = - this->supplier_admin_->get_filter_admin ().match (event - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Boolean ret_val; - - ret_val = this->supplier_admin_->MyOperator (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if (ret_val == CosNotifyChannelAdmin::AND_OP) - { - ret_val = bval && this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - else - { - ret_val = bval || this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - - return ret_val; -} - -template <class SERVANT_TYPE> TAO_Notify_Worker_Task* -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::filter_eval_task (void) -{ - return this->filter_eval_task_; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::on_connected (ACE_ENV_SINGLE_ARG_DECL) -{ - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - TAO_Notify_Property_Long* const supplier_count = - admin_properties->suppliers (); - - if (admin_properties->max_suppliers () != 0 && - supplier_count->value () >= admin_properties->max_suppliers ()) - ACE_THROW (CORBA::IMP_LIMIT ()); // we've reached the limit of suppliers connected. - - this->event_manager_->register_for_subscription_updates (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - (*supplier_count)++; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::on_disconnected (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) -{ - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - (*(admin_properties->suppliers ()))--; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::offer_change (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )) -{ - this->event_manager_->update_publication_list (added, removed ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotification::EventTypeSeq* -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::obtain_subscription_types (CosNotifyChannelAdmin::ObtainInfoMode mode ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotification::EventTypeSeq* event_type_seq = 0; - - if (mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_OFF || - mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON) - { - event_type_seq = this->event_manager_->obtain_subscription_types (); - } - - if (mode == CosNotifyChannelAdmin::NONE_NOW_UPDATES_ON || - mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON) - { - // if updates are currently off, switch them on. - if (this->updates_on_ == 0) - this->event_manager_->register_for_subscription_updates (this - ACE_ENV_ARG_PARAMETER); - } - else - { - // if updates are currently on, switch them off. - if (this->updates_on_ == 1) - this->event_manager_->unregister_from_subscription_updates (this - ACE_ENV_ARG_PARAMETER); - } - - return event_type_seq; -} - -template <class SERVANT_TYPE> CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::MyAdmin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->supplier_admin_->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxyConsumer<SERVANT_TYPE>::set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - // Call our base class set_qos (). - TAO_Notify_Proxy<SERVANT_TYPE>::set_qos (qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Then update our task's qos - if (this->filter_eval_task_ != 0) - { - this->filter_eval_task_->update_qos (this->qos_admin_); - } -} - -#endif /* TAO_NOTIFY_PROXYCONSUMER_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.h deleted file mode 100644 index f1f76291ba2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.h +++ /dev/null @@ -1,126 +0,0 @@ -//============================================================================= -/** - * @file Notify_ProxyConsumer_T.h - * - * $Id$ - * - * Template Base class for all Proxy Consumers. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_PROXYCONSUMER_T_H -#define TAO_NOTIFY_PROXYCONSUMER_T_H -#include "ace/pre.h" -#include "Notify_Proxy_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_Listeners.h" - -class TAO_Notify_SupplierAdmin_i; - -#if defined (_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning (push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_ProxyConsumer - * - * @brief TAO_Notify_ProxyConsumer - * - * The is a base class for all proxy consumers. - */ -template <class SERVANT_TYPE> -class TAO_Notify_Export TAO_Notify_ProxyConsumer : public TAO_Notify_Proxy<SERVANT_TYPE>, virtual public TAO_Notify_EventSource -{ - -public: - /// Constructor - TAO_Notify_ProxyConsumer (TAO_Notify_SupplierAdmin_i* supplier_admin); - - /// Destructor - virtual ~TAO_Notify_ProxyConsumer (void); - - /// Init the Proxy. - void init (CosNotifyChannelAdmin::ProxyID myID ACE_ENV_ARG_DECL); - - // = TAO_Notify_EventSource methods. - /// Evaluates true if this event is acceptable by the Source. - virtual CORBA::Boolean evaluate_filter (TAO_Notify_Event &event ACE_ENV_ARG_DECL); - - /// The Worker task associated with the event listener for filter evaluation. - TAO_Notify_Worker_Task* filter_eval_task (void); - - virtual CosNotifyChannelAdmin::SupplierAdmin_ptr MyAdmin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotification::EventTypeSeq * obtain_subscription_types ( - CosNotifyChannelAdmin::ObtainInfoMode mode - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void offer_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )); - - // Override the set_qos that comes from TAO_Notify_Proxy - // so we can update the qos on our tasks. - virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - -protected: - // = Helper methods - /// Derived classes should call this when their suppliers connect. - void on_connected (ACE_ENV_SINGLE_ARG_DECL); - - /// Derived classes should call this when their suppliers disconnect. - void on_disconnected (ACE_ENV_SINGLE_ARG_DECL); - - // = Data members - /// My parent supplier admin. - TAO_Notify_SupplierAdmin_i* supplier_admin_; - - /// The filter evaluation task for this listener. - TAO_Notify_Worker_Task* filter_eval_task_; -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Notify_ProxyConsumer_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Notify_ProxyConsumer_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#if defined (_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning (pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_PROXYPUSHCONSUMER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.cpp deleted file mode 100644 index 567124efd80..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// $Id$ - -#include "Notify_ProxyPushConsumer_i.h" -#include "Notify_Event_Manager.h" -#include "Notify_SupplierAdmin_i.h" - -ACE_RCSID(Notify, Notify_ProxyPushConsumer_i, "$Id$") - -typedef ACE_Reverse_Lock<ACE_Lock> TAO_Notify_Unlock; - -// Implementation skeleton constructor -TAO_Notify_ProxyPushConsumer_i::TAO_Notify_ProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplier_admin) - : proxy_inherited (supplier_admin), - notify_style_supplier_ (0) -{ -} - -// Implementation skeleton destructor -TAO_Notify_ProxyPushConsumer_i::~TAO_Notify_ProxyPushConsumer_i (void) -{ -} - -void -TAO_Notify_ProxyPushConsumer_i::connect_any_push_supplier (CosEventComm::PushSupplier_ptr push_supplier ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 1) - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - else - { - this->cosec_push_supplier_ = - CosEventComm::PushSupplier::_duplicate (push_supplier); - - this->notify_push_supplier_ = - CosNotifyComm::PushSupplier::_narrow (push_supplier ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (!CORBA::is_nil (this->notify_push_supplier_.in ())) - { - this->cosec_push_supplier_ = CosNotifyComm::PushSupplier::_nil (); - this->notify_style_supplier_ = 1; - } - - this->is_connected_ = 1; - } - - ACE_TRY - { - TAO_Notify_Unlock reverse_lock (*this->lock_); - - { - ACE_GUARD_THROW_EX (TAO_Notify_Unlock, ace_mon, reverse_lock, - CORBA::INTERNAL ()); - ACE_TRY_CHECK; - - this->on_connected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - this->cosec_push_supplier_ = - CosEventComm::PushSupplier::_nil (); - - this->notify_push_supplier_ = - CosNotifyComm::PushSupplier::_nil (); - - this->is_connected_ = 0; - - ACE_RE_THROW; - } - ACE_ENDTRY; -} - -void -TAO_Notify_ProxyPushConsumer_i::dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) -{ - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->notify_style_supplier_ == 0) - return; // Our supplier doesn't support subscription_change. - } - - ACE_TRY - { - this->notify_push_supplier_->subscription_change (added, removed - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_ProxyPushConsumer_i::push (const CORBA::Any & data ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventComm::Disconnected - )) -{ - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 0) - ACE_THROW (CosEventComm::Disconnected ()); - } - - CORBA::Any * data_copy; - ACE_NEW_THROW_EX (data_copy, CORBA::Any (data), CORBA::NO_MEMORY ()); - - TAO_Notify_Any* notify_event = new TAO_Notify_Any(data_copy); - - this->event_manager_->process_event (notify_event, this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - notify_event->_decr_refcnt (); -} - -void -TAO_Notify_ProxyPushConsumer_i::disconnect_push_consumer ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // ask our parent to deactivate us. - this->supplier_admin_-> - deactivate_proxy_pushconsumer (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->on_disconnected (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -// = TAO_Notify_CosEC_ProxyPushConsumer_i - -TAO_Notify_CosEC_ProxyPushConsumer_i::TAO_Notify_CosEC_ProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplieradmin) - :notify_proxy_ (supplieradmin) -{ - // No-Op. -} - -TAO_Notify_CosEC_ProxyPushConsumer_i::~TAO_Notify_CosEC_ProxyPushConsumer_i (void) -{ - // No-Op. -} - -void -TAO_Notify_CosEC_ProxyPushConsumer_i::init (ACE_ENV_SINGLE_ARG_DECL) -{ - // Pass the default id. - this->notify_proxy_.init (0 ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_CosEC_ProxyPushConsumer_i::push (const CORBA::Any &data ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->notify_proxy_.push (data ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_CosEC_ProxyPushConsumer_i::disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->notify_proxy_.disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_CosEC_ProxyPushConsumer_i::connect_push_supplier(CosEventComm::PushSupplier_ptr push_supplier ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected)) -{ - this->notify_proxy_.connect_any_push_supplier (push_supplier ACE_ENV_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Notify_ProxyConsumer<POA_CosNotifyChannelAdmin::ProxyPushConsumer>; -template class TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::ProxyPushConsumer>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Notify_ProxyConsumer<POA_CosNotifyChannelAdmin::ProxyPushConsumer> -#pragma instantiate TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::ProxyPushConsumer> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.h deleted file mode 100644 index f9947de3365..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushConsumer_i.h +++ /dev/null @@ -1,145 +0,0 @@ -//============================================================================= -/** - * @file Notify_ProxyPushConsumer_i.h - * - * $Id$ - * - * Implements the CosNotifyChannelAdmin::ProxyPushConsumer interface and - * CosEventChannelAdmin::ProxyPushConsumerx - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_PROXYPUSHCONSUMER_I_H -#define TAO_NOTIFY_PROXYPUSHCONSUMER_I_H - -#include "ace/pre.h" -#include "Notify_ProxyConsumer_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" - -class TAO_Notify_SupplierAdmin_i; -class TAO_Notify_Event_Manager; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_ProxyPushConsumer_i - * - * @brief TAO_Notify_ProxyPushConsumer_i - * - * Implements the CosNotifyChannelAdmin::ProxyPushConsumer interface. - */ -class TAO_Notify_Export TAO_Notify_ProxyPushConsumer_i : public TAO_Notify_ProxyConsumer <POA_CosNotifyChannelAdmin::ProxyPushConsumer> -{ - -public: - /// Constructor - TAO_Notify_ProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplier_admin); - - /// Destructor - virtual ~TAO_Notify_ProxyPushConsumer_i (void); - - // = Interface methods - void push (const CORBA::Any & data ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventComm::Disconnected - )); - - virtual void connect_any_push_supplier ( - CosEventComm::PushSupplier_ptr push_supplier - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected - )); - -virtual void disconnect_push_consumer ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - protected: -// = Helper methods - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL); - - // = Data members - /** - * True if the supplier supports the NotifySubscribe interface. - * If it does, we use the <notify_push_supplier_> else we use - * <cosec_push_supplier_> - */ - CORBA::Boolean notify_style_supplier_; - - /// The supplier connected to us. - CosEventComm::PushSupplier_var cosec_push_supplier_; - CosNotifyComm::PushSupplier_var notify_push_supplier_; - - private: - typedef TAO_Notify_ProxyConsumer <POA_CosNotifyChannelAdmin::ProxyPushConsumer> - proxy_inherited; -}; - -/** - * @class TAO_Notify_CosEC_ProxyPushConsumer_i - * - * @brief TAO_Notify_CosEC_ProxyPushConsumer_i - * - * CosEventChannelAdmin::ProxyPushConsumer wrapper implementation. - * Delegates to TAO_Notify_ProxyPushConsumer_i. - */ -class TAO_Notify_Export TAO_Notify_CosEC_ProxyPushConsumer_i : public virtual POA_CosEventChannelAdmin::ProxyPushConsumer, public virtual PortableServer::RefCountServantBase -{ -public: - // = Initialization and termination methods. - /// Constructor. - TAO_Notify_CosEC_ProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplieradmi); - - /// Destructor. - virtual ~TAO_Notify_CosEC_ProxyPushConsumer_i (void); - - /// init. - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Suppliers call this method to pass data to connected consumers. - virtual void push (const CORBA::Any &data - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - /// Disconnects the supplier from the event communication. - virtual void disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - /// Connects a push supplier. - virtual void connect_push_supplier(CosEventComm::PushSupplier_ptr push_supplier - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected)); - protected: - // = Data Members - /// Proxy to delegate to. - TAO_Notify_ProxyPushConsumer_i notify_proxy_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_PROXYPUSHCONSUMER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.cpp deleted file mode 100644 index 049cc32f249..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.cpp +++ /dev/null @@ -1,229 +0,0 @@ -//$Id$ - -#include "Notify_ProxyPushSupplier_i.h" -#include "Notify_Event_Manager.h" -#include "Notify_ConsumerAdmin_i.h" - -ACE_RCSID(Notify, Notify_ProxyPushSupplier_i, "$Id$") - -typedef ACE_Reverse_Lock<ACE_Lock> TAO_Notify_Unlock; - -TAO_Notify_ProxyPushSupplier_i::TAO_Notify_ProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumer_admin) - :proxy_inherited (consumer_admin), - notify_style_consumer_ (0) -{ -} - -// Implementation skeleton destructor -TAO_Notify_ProxyPushSupplier_i::~TAO_Notify_ProxyPushSupplier_i (void) -{ -} - -void -TAO_Notify_ProxyPushSupplier_i::dispatch_event_i (TAO_Notify_Event &event ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - event.do_push (this->cosec_push_consumer_.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - ACE_DEBUG ((LM_DEBUG, "Exception dispatching any event\n")); - // misbehaving client, - this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - } - ACE_ENDTRY; -} - -void -TAO_Notify_ProxyPushSupplier_i::dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) -{ - { - ACE_GUARD (ACE_Lock, ace_mon, *this->lock_); - if (this->notify_style_consumer_ == 0) - return; // Our consumer doesn't support offer_change. - } - - ACE_TRY - { - this->notify_push_consumer_->offer_change (added, removed ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_ProxyPushSupplier_i::connect_any_push_consumer (CosEventComm::PushConsumer_ptr push_consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (CORBA::is_nil (push_consumer)) - ACE_THROW (CosEventChannelAdmin::TypeError ()); - else if (this->is_connected_ == 1) - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - else - { - this->cosec_push_consumer_ = - CosEventComm::PushConsumer::_duplicate (push_consumer); - - this->notify_push_consumer_ = - CosNotifyComm::PushConsumer::_narrow (push_consumer ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (!CORBA::is_nil (this->notify_push_consumer_.in ())) - { - CosNotifyComm::PushConsumer:: - _duplicate (this->notify_push_consumer_.in ()); - this->notify_style_consumer_ = 1; - } - - this->is_connected_ = 1; - } // else - - ACE_TRY - { - TAO_Notify_Unlock reverse_lock (*this->lock_); - - { - ACE_GUARD_THROW_EX (TAO_Notify_Unlock, ace_mon, reverse_lock, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->on_connected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - this->cosec_push_consumer_ = CosNotifyComm::PushConsumer::_nil (); - this->notify_push_consumer_ = CosNotifyComm::PushConsumer::_nil (); - - this->is_connected_ = 0; - ACE_RE_THROW; - } - ACE_ENDTRY; -} - -void -TAO_Notify_ProxyPushSupplier_i::shutdown_i (ACE_ENV_SINGLE_ARG_DECL) -{ - this->on_disconnected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // ask our parent to deactivate us. - this->consumer_admin_-> - deactivate_proxy_pushsupplier (this ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_ProxyPushSupplier_i::disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // unregister with CA - this->consumer_admin_->unregister_listener (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->shutdown_i (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_ProxyPushSupplier_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - // Tell the consumer that we're going away ... - // @@ Later, lookup a "notify_on_disconnect" option. - - { - ACE_GUARD (ACE_Lock, ace_mon, *this->lock_); - - if (this->is_connected_ == 0) - return; - } - - this->shutdown_i (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY - { - this->cosec_push_consumer_->disconnect_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // ignore - } - ACE_ENDTRY; -} - -// = TAO_Notify_CosEC_ProxyPushSupplier_i - -TAO_Notify_CosEC_ProxyPushSupplier_i::TAO_Notify_CosEC_ProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumer_admin) - :notify_proxy_ (consumer_admin) -{ - // No-Op. -} - -TAO_Notify_CosEC_ProxyPushSupplier_i::~TAO_Notify_CosEC_ProxyPushSupplier_i (void) -{ -} - -void -TAO_Notify_CosEC_ProxyPushSupplier_i::init (ACE_ENV_SINGLE_ARG_DECL) -{ - this->notify_proxy_.init (0 ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_CosEC_ProxyPushSupplier_i::disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->notify_proxy_.disconnect_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_CosEC_ProxyPushSupplier_i::connect_push_consumer(CosEventComm::PushConsumer_ptr push_consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError)) -{ - this->notify_proxy_.connect_any_push_consumer (push_consumer ACE_ENV_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::ProxyPushSupplier>; -template class TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::ProxyPushSupplier>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::ProxyPushSupplier> -#pragma instantiate TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::ProxyPushSupplier> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Unbounded_Queue<TAO_Notify_Event*>; -template class ACE_Node<TAO_Notify_Event*>; -template class ACE_Unbounded_Queue_Iterator <TAO_Notify_Event*>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Unbounded_Queue<TAO_Notify_Event*> -#pragma instantiate ACE_Node<TAO_Notify_Event*> -#pragma instantiate ACE_Unbounded_Queue_Iterator <TAO_Notify_Event*> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.h deleted file mode 100644 index ccf8d305d52..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.h +++ /dev/null @@ -1,140 +0,0 @@ -//============================================================================= -/** - * @file Notify_ProxyPushSupplier_i.h - * - * $Id$ - * - * implements CosNotifyChannelAdmin::ProxyPushSupplier and - * CosEventChannelAdmin::ProxyPushSupplier - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_PROXYPUSHSUPPLIER_I_H -#define TAO_NOTIFY_PROXYPUSHSUPPLIER_I_H - -#include "ace/pre.h" -#include "Notify_ProxySupplier_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" - -class TAO_Notify_ConsumerAdmin_i; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_ProxyPushSupplier_i - * - * @brief TAO_Notify_ProxyPushSupplier_i - * - * implements CosNotifyChannelAdmin::ProxyPushSupplier. - */ -class TAO_Notify_Export TAO_Notify_ProxyPushSupplier_i : public TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::ProxyPushSupplier> -{ - -public: - /// Constructor - TAO_Notify_ProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumeradmin); - - /// Destructor - virtual ~TAO_Notify_ProxyPushSupplier_i (void); - - // = Interface methods - virtual void connect_any_push_consumer ( - CosEventComm::PushConsumer_ptr push_consumer - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError - )); - - virtual void disconnect_push_supplier ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// Shutdown. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - protected: - /// Shutdown - void shutdown_i (ACE_ENV_SINGLE_ARG_DECL); - - /// Deliver the event to the consumer. - virtual void dispatch_event_i (TAO_Notify_Event &event ACE_ENV_ARG_DECL); - - /// Deliver the update to the consumer. - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL); - - // = Data Members. - /// True if the consumer supports the NotifyPublish interface. - /// If it does, we use the <notify_push_consumer_> else <cosec_push_consumer_> - CORBA::Boolean notify_style_consumer_; - - /// The consumer connected to us. - CosEventComm::PushConsumer_var cosec_push_consumer_; - CosNotifyComm::PushConsumer_var notify_push_consumer_; - - private: - typedef TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::ProxyPushSupplier> - proxy_inherited; -}; - -/** - * @class TAO_Notify_CosEC_ProxyPushSupplier_i - * - * @brief TAO_Notify_CosEC_ProxyPushSupplier_i - * - * implements CosEventChannelAdmin::ProxyPushSupplier by delegating - * to TAO_Notify_ProxyPushSupplier_i. - */ -class TAO_Notify_Export TAO_Notify_CosEC_ProxyPushSupplier_i : public POA_CosEventChannelAdmin::ProxyPushSupplier, public virtual PortableServer::RefCountServantBase -{ -public: - // = Initialization and termination methods. - /// Constructor. - TAO_Notify_CosEC_ProxyPushSupplier_i(TAO_Notify_ConsumerAdmin_i* consumeradmin); - - /// Destructor. - ~TAO_Notify_CosEC_ProxyPushSupplier_i (void); - - /// Init. - void init (ACE_ENV_SINGLE_ARG_DECL); - - /// Ends the event communication and disposes this object. - virtual void disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - /// Connects the <push_consumer> to the Event Channel. - virtual void connect_push_consumer(CosEventComm::PushConsumer_ptr push_consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError)); - - protected: - // = Data Members - /// The proxy that we delegate too. - TAO_Notify_ProxyPushSupplier_i notify_proxy_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_PROXYPUSHSUPPLIER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.cpp deleted file mode 100644 index 3de9a2d04c8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.cpp +++ /dev/null @@ -1,499 +0,0 @@ -// $Id$ - -#ifndef TAO_NOTIFY_PROXYSUPPLIER_T_C -#define TAO_NOTIFY_PROXYSUPPLIER_T_C - -#include "Notify_ProxySupplier_T.h" -#include "Notify_Event_Manager.h" -#include "Notify_ConsumerAdmin_i.h" -#include "Notify_Factory.h" -#include "Notify_Channel_Objects_Factory.h" -#include "Notify_Event_Manager_Objects_Factory.h" -#include "Notify_Worker_Task.h" -#include "Notify_AdminProperties.h" - -ACE_RCSID (Notify, - Notify_ProxySupplier_T, - "$Id$") - -template <class SERVANT_TYPE> -TAO_Notify_ProxySupplier<SERVANT_TYPE>::TAO_Notify_ProxySupplier (TAO_Notify_ConsumerAdmin_i* consumer_admin) - :consumer_admin_ (consumer_admin), - is_suspended_ (0), - dispatching_task_ (0), - filter_eval_task_ (0) -{ - this->event_manager_ = consumer_admin->get_event_manager (); -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::init (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - consumer_admin_->_add_ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->proxy_id_ = proxy_id; - - TAO_Notify_CO_Factory* cof = - TAO_Notify_Factory::get_channel_objects_factory (); - - this->lock_ = cof->create_proxy_supplier_lock (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_Notify_EMO_Factory* event_manager_objects_factory = - this->event_manager_->resource_factory (); - - // Create the task to forward filtering/dispatching commands to: - this->dispatching_task_ = - event_manager_objects_factory->create_dispatching_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->filter_eval_task_ = - event_manager_objects_factory->create_listener_eval_task (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - // Init the tasks - this->dispatching_task_->init_task (admin_properties, - &(this->qos_admin_)); - this->filter_eval_task_->init_task (admin_properties, - &(this->qos_admin_)); - - { - TAO_Notify_EventType& special_type = - TAO_Notify_EventType::special_event_type (); - - CosNotification::EventTypeSeq added (1), removed (0); - - added.length (1); - removed.length (0); - - added[0] = special_type.get_native (); - - this->subscription_change (added, removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -// Implementation skeleton destructor -template <class SERVANT_TYPE> -TAO_Notify_ProxySupplier<SERVANT_TYPE>::~TAO_Notify_ProxySupplier (void) -{ - ACE_DECLARE_NEW_CORBA_ENV; - this->event_manager_->unregister_from_publication_updates (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // unsubscribe it to our current subscriptions. - CosNotification::EventTypeSeq added (0); - CosNotification::EventTypeSeq removed (this->subscription_list_.size ()); - - this->subscription_list_.populate (removed); - added.length (0); - - this->event_manager_->subscribe_for_events (this, - added, removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - delete this->lock_; - - this->consumer_admin_->proxy_pushsupplier_destroyed (this->proxy_id_); - - consumer_admin_->_remove_ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_Notify_EMO_Factory* event_manager_objects_factory = - this->event_manager_->resource_factory (); - - event_manager_objects_factory->destroy_dispatching_task (this->dispatching_task_); - event_manager_objects_factory->destroy_source_eval_task (this->filter_eval_task_); -} - -template <class SERVANT_TYPE> CORBA::Boolean -TAO_Notify_ProxySupplier<SERVANT_TYPE>::evaluate_filter (TAO_Notify_Event &event, CORBA::Boolean eval_parent ACE_ENV_ARG_DECL) -{ - if (eval_parent == 1) - { - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator = - consumer_admin_->MyOperator (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - // Inter-filter group operator. - - CORBA::Boolean bval = - this->consumer_admin_->get_filter_admin ().match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if ((bval == 1 && filter_operator == CosNotifyChannelAdmin::AND_OP) || - (bval == 0 && filter_operator == CosNotifyChannelAdmin::OR_OP)) - { - bval = this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - return bval; - } - else if (bval == 1 && filter_operator == CosNotifyChannelAdmin::OR_OP) - { - return 1; - } - else - { - return 0; - } - } - else - { - int status = this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - return status; - } -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::dispatch_event (TAO_Notify_Event &event ACE_ENV_ARG_DECL) -{ - if (this->is_connected_ == 0) - { - ACE_DEBUG ((LM_DEBUG,"%t, %P", - "dispatch_event to disconnected proxy supplier from EC\n")); - return; - } - - if (this->is_suspended_ == 1) - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->event_list_.enqueue_tail (event.clone ()); - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "dispatching event\n")); - this->dispatch_event_i (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -template <class SERVANT_TYPE> TAO_Notify_Worker_Task* -TAO_Notify_ProxySupplier<SERVANT_TYPE>::event_dispatch_task (void) -{ - return this->dispatching_task_; -} - -template <class SERVANT_TYPE> TAO_Notify_Worker_Task* -TAO_Notify_ProxySupplier<SERVANT_TYPE>::filter_eval_task (void) -{ - return this->filter_eval_task_; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::subscription_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyComm::InvalidEventType)) -{ - TAO_Notify_EventType_List seq_added, seq_removed; - - seq_added.insert_seq (added); - seq_removed.insert_seq (removed); - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - TAO_Notify_EventType_List::preprocess (this->subscription_list_, seq_added, seq_removed); - } - - if (this->is_connected_ == 1) - { - CosNotification::EventTypeSeq p_added, p_removed; - - seq_added.populate (p_added); - seq_removed.populate (p_removed); - - this->event_manager_->subscribe_for_events (this, - p_added, p_removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, - "ProxySupplier %d: added following types: ", - proxy_id_ )); - - CORBA::ULong i = 0; - - for (i = 0; i < p_added.length (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - "(%s, %s)\t", - p_added[i].domain_name.in(), - p_added[i].type_name.in())); - } - - ACE_DEBUG ((LM_DEBUG,"\n ProxySupplier %d: removed following types: ",proxy_id_ )); - - for (i = 0; i < p_removed.length (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - "(%s, %s)\t", - p_removed[i].domain_name.in(), - p_removed[i].type_name.in())); - } - - CosNotification::EventTypeSeq current; - this->subscription_list_.populate (current); - - ACE_DEBUG ((LM_DEBUG, - "\n ProxySupplier %d:current subscriptions: ", - proxy_id_ )); - - for (i = 0; i < current.length (); ++i) - { - ACE_DEBUG ((LM_DEBUG, - "(%s, %s)\n", - current[i].domain_name.in(), - current[i].type_name.in())); - } - } - } -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::on_connected (ACE_ENV_SINGLE_ARG_DECL) -{ - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - TAO_Notify_Property_Long* const consumer_count = - admin_properties->consumers (); - - if (admin_properties->max_consumers () != 0 && - consumer_count->value () >= admin_properties->max_consumers ()) - ACE_THROW (CORBA::IMP_LIMIT ()); // we've reached the limit of consumers connected. - - // register with CA - this->consumer_admin_->register_listener (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CosNotification::EventTypeSeq added; - - CosNotification::EventTypeSeq removed (0); - removed.length (0); - - // subscribe it to our current subscriptions. - added.length (this->subscription_list_.size ()); - - this->subscription_list_.populate (added); - - this->event_manager_->subscribe_for_events (this, - added, - removed - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->register_for_publication_updates (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - (*consumer_count)++; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::on_disconnected (ACE_ENV_SINGLE_ARG_DECL) -{ - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 0) - return; - - this->is_connected_ = 0; - } - - CosNotification::EventTypeSeq removed; - - CosNotification::EventTypeSeq added (0); - added.length (0); - - // unsubscribe it to our current subscriptions. - removed.length (this->subscription_list_.size ()); - - this->subscription_list_.populate (removed); - - this->event_manager_->subscribe_for_events (this, - added, removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->unregister_from_publication_updates (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // shutdown the tasks. - - this->dispatching_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->filter_eval_task_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Get hold of the admin properties. - TAO_Notify_AdminProperties* const admin_properties = - this->event_manager_->admin_properties (); - - (*(admin_properties->consumers ()))--; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::suspend_connection (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyInactive, - CosNotifyChannelAdmin::NotConnected - )) -{ - this->is_suspended_ = 1; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::resume_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyActive, - CosNotifyChannelAdmin::NotConnected - )) -{ - TAO_Notify_Event* event; - - this->is_suspended_ = 0; - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - while (this->event_list_.dequeue_head (event) == 0) - { - this->dispatch_event_i (*event ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - delete event; - } - } -} - -template <class SERVANT_TYPE> CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_Notify_ProxySupplier<SERVANT_TYPE>::MyAdmin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->consumer_admin_->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyFilter::MappingFilter_ptr -TAO_Notify_ProxySupplier<SERVANT_TYPE>::priority_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyFilter::MappingFilter::_nil ()); -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::priority_filter (CosNotifyFilter::MappingFilter_ptr /*priority_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -template <class SERVANT_TYPE> CosNotifyFilter::MappingFilter_ptr -TAO_Notify_ProxySupplier<SERVANT_TYPE>::lifetime_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyFilter::MappingFilter::_nil ()); -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::lifetime_filter (CosNotifyFilter::MappingFilter_ptr /*lifetime_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -template <class SERVANT_TYPE> CosNotification::EventTypeSeq* -TAO_Notify_ProxySupplier<SERVANT_TYPE>::obtain_offered_types (CosNotifyChannelAdmin::ObtainInfoMode mode ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotification::EventTypeSeq* event_type_seq = 0; - - if (mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_OFF || - mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON) - { - event_type_seq = this->event_manager_->obtain_offered_types (); - } - - if (mode == CosNotifyChannelAdmin::NONE_NOW_UPDATES_ON || - mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON) - { - // if updates are currently off, switch them on. - if (this->updates_on_ == 0) - this->event_manager_->register_for_publication_updates (this - ACE_ENV_ARG_PARAMETER); - } - else - { - // if updates are currently on, switch them off. - if (this->updates_on_ == 1) - this->event_manager_->unregister_from_publication_updates (this - ACE_ENV_ARG_PARAMETER); - } - return event_type_seq; -} - -template <class SERVANT_TYPE> void -TAO_Notify_ProxySupplier<SERVANT_TYPE>::set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - // Call our base class set_qos (). - TAO_Notify_Proxy<SERVANT_TYPE>::set_qos (qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Then update our task's qos - if (this->dispatching_task_ != 0) - { - this->dispatching_task_->update_qos (this->qos_admin_); - } - if (this->filter_eval_task_ != 0) - { - this->filter_eval_task_->update_qos (this->qos_admin_); - } -} - - -#endif /* TAO_NOTIFY_PROXYSUPPLIER_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.h deleted file mode 100644 index e314a742b6c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.h +++ /dev/null @@ -1,189 +0,0 @@ -/** - * @file Notify_ProxySupplier_T.h - * - * $Id$ - * - * Template Base class for all Proxy Suppliers. - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ - -#ifndef TAO_NOTIFY_PROXY_SUPPLIER_T_H -#define TAO_NOTIFY_PROXY_SUPPLIER_T_H -#include "ace/pre.h" - -#include "Notify_Proxy_T.h" -#include "Notify_Collection.h" - -class TAO_Notify_ConsumerAdmin_i; - -#if defined (_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning (push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_ProxySupplier - * - * @brief TAO_Notify_ProxySupplier - * - * The is a base class for all proxy suppliers. - */ -template <class SERVANT_TYPE> -class TAO_Notify_Export TAO_Notify_ProxySupplier : public TAO_Notify_Proxy <SERVANT_TYPE>, virtual public TAO_Notify_EventListener -{ - -public: - /// Constructor - TAO_Notify_ProxySupplier (TAO_Notify_ConsumerAdmin_i* consumeradmin); - - /// Destructor - virtual ~TAO_Notify_ProxySupplier (void); - - /// Init the Proxy. - void init (CosNotifyChannelAdmin::ProxyID myID ACE_ENV_ARG_DECL); - - // = Notify_Event_Listener methods - virtual void dispatch_event (TAO_Notify_Event &event ACE_ENV_ARG_DECL); - - virtual CORBA::Boolean evaluate_filter (TAO_Notify_Event &event, CORBA::Boolean eval_parent ACE_ENV_ARG_DECL); - - /// The Worker task associated with the event listener for event dispatching - virtual TAO_Notify_Worker_Task* event_dispatch_task (void); - - /// The Worker task associated with the event listener for filter evaluation. - virtual TAO_Notify_Worker_Task* filter_eval_task (void); - - // = Interface methods - virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr MyAdmin ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void suspend_connection ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyInactive, - CosNotifyChannelAdmin::NotConnected - )); - - virtual void resume_connection ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyActive, - CosNotifyChannelAdmin::NotConnected - )); - - virtual CosNotifyFilter::MappingFilter_ptr priority_filter ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void priority_filter ( - CosNotifyFilter::MappingFilter_ptr priority_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotifyFilter::MappingFilter_ptr lifetime_filter ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void lifetime_filter ( - CosNotifyFilter::MappingFilter_ptr lifetime_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotification::EventTypeSeq * obtain_offered_types ( - CosNotifyChannelAdmin::ObtainInfoMode mode - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void subscription_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )); - - // override the set_qos that comes from TAO_Notify_Proxy - // so we can update the qos on our tasks. - virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - protected: - // = Helper methods - /// Derived classes should implement this. - virtual void dispatch_event_i (TAO_Notify_Event &event ACE_ENV_ARG_DECL) = 0; - - /// Derived classes should call this when their consumers connect. - void on_connected (ACE_ENV_SINGLE_ARG_DECL); - - /// Derived classes should call this when their consumers disconnect. - void on_disconnected (ACE_ENV_SINGLE_ARG_DECL); - - // = Data members - /// My parent consumer admin. - TAO_Notify_ConsumerAdmin_i* consumer_admin_; - - /// A list of event types that we are interested in. - TAO_Notify_EventType_List subscription_list_; - - /// True if we are connected to a consumer and suspended. - CORBA::Boolean is_suspended_; - - /// A list of events populated when we're suspended. - typedef ACE_Unbounded_Queue<TAO_Notify_Event*> TAO_Notify_Event_List; - TAO_Notify_Event_List event_list_; - - /// The dispatching task to send events to a listener group affiliated with this listener. - TAO_Notify_Worker_Task* dispatching_task_; - - /// The filter evaluation task for this listener. - TAO_Notify_Worker_Task* filter_eval_task_; -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Notify_ProxySupplier_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Notify_ProxySupplier_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#if defined (_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning (pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_PROXY_SUPPLIER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Proxy_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Proxy_T.cpp deleted file mode 100644 index 690b25585e7..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Proxy_T.cpp +++ /dev/null @@ -1,195 +0,0 @@ -// $Id$ - -#ifndef TAO_NOTIFY_PROXY_T_C -#define TAO_NOTIFY_PROXY_T_C - -#include "Notify_Proxy_T.h" -#include "Notify_Event_Manager.h" - -#include "tao/debug.h" - -ACE_RCSID(Notify, Notify_Proxy_T, "$Id$") - -template <class SERVANT_TYPE> -TAO_Notify_Proxy<SERVANT_TYPE>::TAO_Notify_Proxy (void) - :lock_ (0), - refcount_ (1), - is_connected_ (0), - updates_on_ (1) -{ - // No-Op. -} - -// Implementation skeleton destructor -template <class SERVANT_TYPE> -TAO_Notify_Proxy<SERVANT_TYPE>::~TAO_Notify_Proxy (void) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "in ~TAO_Notify_Proxy\n")); -} - -template <class SERVANT_TYPE> CORBA::ULong -TAO_Notify_Proxy<SERVANT_TYPE>::_incr_refcnt (void) -{ - ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, 0); - return this->refcount_++; -} - -template <class SERVANT_TYPE> CORBA::ULong -TAO_Notify_Proxy<SERVANT_TYPE>::_decr_refcnt (void) -{ - { - ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->lock_, 0); - this->refcount_--; - if (this->refcount_ != 0) - return this->refcount_; - } - - delete this; - return 0; -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) -{ - this->_incr_refcnt (); -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) -{ - this->_decr_refcnt (); -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::dispatch_update (TAO_Notify_EventType_List& added_list, TAO_Notify_EventType_List& removed_list ACE_ENV_ARG_DECL) -{ - CosNotification::EventTypeSeq added (added_list.size ()); - CosNotification::EventTypeSeq removed (removed_list.size ()); - - added_list.populate (added); - removed_list.populate (removed); - - this->dispatch_update_i (added, removed ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyChannelAdmin::ProxyType -TAO_Notify_Proxy<SERVANT_TYPE>::MyType (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return proxy_type_; -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::validate_event_qos (const CosNotification::QoSProperties & /*required_qos*/, CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -template <class SERVANT_TYPE> CosNotification::QoSProperties* -TAO_Notify_Proxy<SERVANT_TYPE>::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->qos_admin_.get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.set_qos (qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->setup_qos_policies (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.validate_qos (required_qos, available_qos ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyFilter::FilterID -TAO_Notify_Proxy<SERVANT_TYPE>::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyFilter::Filter_ptr -TAO_Notify_Proxy<SERVANT_TYPE>::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyFilter::FilterIDSeq* -TAO_Notify_Proxy<SERVANT_TYPE>::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> const TAO_Notify_QoSAdmin_i& -TAO_Notify_Proxy<SERVANT_TYPE>::qos_admin (void) const -{ - return this->qos_admin_; -} - -template <class SERVANT_TYPE> void -TAO_Notify_Proxy<SERVANT_TYPE>::setup_qos_policies ( - ACE_ENV_SINGLE_ARG_DECL) -{ - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -#endif /* TAO_NOTIFY_PROXY_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Proxy_T.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Proxy_T.h deleted file mode 100644 index 6b1b7b1c95f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Proxy_T.h +++ /dev/null @@ -1,211 +0,0 @@ -//============================================================================= -/** - * @file Notify_Proxy_T.h - * - * $Id$ - * - * Template Base class for all Proxys. - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_PROXY_T_H -#define TAO_NOTIFY_PROXY_T_H -#include "ace/pre.h" -#include "ace/Containers_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "orbsvcs/CosNotificationS.h" -#include "Notify_QoSAdmin_i.h" -#include "Notify_FilterAdmin_i.h" -#include "Notify_Listeners.h" -#include "notify_export.h" - -class TAO_Notify_Event_Manager; - -#if defined (_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning (push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - -// @@ Pradeep: this is cool, deriving from the template type is really -// neat. I bet it is going to break something like 90% of the -// compilers, but they deserve it! ;-) ;-) - -/** - * @class TAO_Notify_Proxy - * - * @brief TAO_Notify_Proxy - * - * The is a base class for all proxys , templatized by the servant - * type. All the Filter Admin and QoS Admin interface methods are - * implemented here by delegating to the admin implementations. - */ -template <class SERVANT_TYPE> -class TAO_Notify_Export TAO_Notify_Proxy : public SERVANT_TYPE, virtual public TAO_Notify_UpdateListener, public PortableServer::RefCountServantBase -{ - -public: - /// Constructor - TAO_Notify_Proxy (void); - - /// Destructor - virtual ~TAO_Notify_Proxy (void); - - // = TAO_Notify_RefCounted methods - /// Increment the reference count. - CORBA::ULong _incr_refcnt (void); - - /// Decrement the reference count. - CORBA::ULong _decr_refcnt (void); - - // = The Servant methods - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - // = Notify_Update_Listener methods - virtual void dispatch_update (TAO_Notify_EventType_List& added_list, TAO_Notify_EventType_List& removed_list ACE_ENV_ARG_DECL); - - virtual CosNotifyChannelAdmin::ProxyType MyType ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void validate_event_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual CosNotification::QoSProperties * get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual void validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual CosNotifyFilter::FilterID add_filter ( - CosNotifyFilter::Filter_ptr new_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::Filter_ptr get_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::FilterIDSeq * get_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - const TAO_Notify_QoSAdmin_i& qos_admin (void) const; - -protected: - /// Derived types should implement this to deliver the update. - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) = 0; - - /// Derived types may implement this if they need to do something - /// directly after setting the qos policies. - virtual void setup_qos_policies (ACE_ENV_SINGLE_ARG_DECL); - - // = Data members - /// The locking strategy. - ACE_Lock* lock_; - - /// The reference count. - CORBA::ULong refcount_; - - /// What type are we? - CosNotifyChannelAdmin::ProxyType proxy_type_; - - /// Our event manager. - TAO_Notify_Event_Manager* event_manager_; - - /// True if we are connected to a consumer. - CORBA::Boolean is_connected_; - - /// True by default, for subscription/publication updates. - CORBA::Boolean updates_on_; - - /// Handle QoS admin methods. - TAO_Notify_QoSAdmin_i qos_admin_; - - /// Handles the Filter admin methods. - TAO_Notify_FilterAdmin_i filter_admin_; - - /// The ID assigned to this Proxy. - CosNotifyChannelAdmin::ProxyID proxy_id_; -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Notify_Proxy_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Notify_Proxy_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#if defined (_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning (pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_PROXY_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.cpp deleted file mode 100644 index 97287df8c1d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.cpp +++ /dev/null @@ -1,244 +0,0 @@ -/* -*- C++ -*- $Id$ */ - -#include "Notify_QoSAdmin_i.h" -#include "Notify_Extensions.h" - -#if !defined (__ACE_INLINE__) -#include "Notify_QoSAdmin_i.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, Notify_QoSAdmin_i, "$Id$") - -// Implementation skeleton constructor -TAO_Notify_QoSAdmin_i::TAO_Notify_QoSAdmin_i (void) - :event_reliability_ (CosNotification::BestEffort), - event_reliability_set_ (0), - connection_reliability_ (CosNotification::BestEffort), - connection_reliability_set_ (0), - priority_ (CosNotification::DefaultPriority), - priority_set_ (0), - timeout_ (0), - timeout_set_ (0), - start_time_supported_ (0), - start_time_supported_set_ (0), - stop_time_supported_ (0), - stop_time_supported_set_ (0), - max_events_per_consumer_ (0), - max_events_per_consumer_set_ (0), - order_policy_ (CosNotification::AnyOrder), - order_policy_set_ (0), - discard_policy_ (CosNotification::AnyOrder), - discard_policy_set_ (0), - maximum_batch_size_ (1), - maximum_batch_size_set_ (0), - pacing_interval_ (0), - pacing_interval_set_ (0), - blocking_timeout_ (0), - blocking_timeout_set_ (0) -{ -} - -// Implementation skeleton destructor -TAO_Notify_QoSAdmin_i::~TAO_Notify_QoSAdmin_i (void) -{ -} - -CosNotification::QoSProperties * TAO_Notify_QoSAdmin_i::get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - static const unsigned int property_count = 12; - CosNotification::QoSProperties_var properties; - ACE_NEW_THROW_EX (properties, - CosNotification::AdminProperties (property_count), - CORBA::NO_MEMORY ()); - - properties->length (property_count); - unsigned int index = 0; - - if (this->event_reliability_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::EventReliability); - (*properties)[index++].value <<= this->event_reliability_; - } - if (this->connection_reliability_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::ConnectionReliability); - (*properties)[index++].value <<= this->connection_reliability_; - } - if (this->priority_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::Priority); - (*properties)[index++].value <<= this->priority_; - } - if (this->timeout_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::Timeout); - (*properties)[index++].value <<= this->timeout_; - } - if (this->blocking_timeout_set_) - { - (*properties)[index].name = - CORBA::string_dup (TAO_Notify_Extensions::BlockingPolicy); - (*properties)[index++].value <<= this->blocking_timeout_; - } - if (this->start_time_supported_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::StartTimeSupported); - (*properties)[index++].value <<= CORBA::Any::from_boolean ( - this->start_time_supported_); - } - if (this->stop_time_supported_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::StopTimeSupported); - (*properties)[index++].value <<= CORBA::Any::from_boolean ( - this->stop_time_supported_); - } - if (this->max_events_per_consumer_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::MaxEventsPerConsumer); - (*properties)[index++].value <<= this->max_events_per_consumer_; - } - if (this->order_policy_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::OrderPolicy); - (*properties)[index++].value <<= this->order_policy_; - } - if (this->discard_policy_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::DiscardPolicy); - (*properties)[index++].value <<= this->discard_policy_; - } - if (this->maximum_batch_size_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::MaximumBatchSize); - (*properties)[index++].value <<= this->maximum_batch_size_; - } - if (this->pacing_interval_set_) - { - (*properties)[index].name = - CORBA::string_dup (CosNotification::PacingInterval); - (*properties)[index++].value <<= this->pacing_interval_; - } - - // Set the length - properties->length (index); - - return properties._retn (); -} - -void -TAO_Notify_QoSAdmin_i::set_qos (const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - for (CORBA::ULong index = 0; index < qos.length (); ++index) - { - ACE_CString property_name (qos[index].name); - - if (property_name.compare (CosNotification::EventReliability) == 0) - { - CosNotification::PropertyErrorSeq err_seq (1); - err_seq.length (1); - - err_seq[0].code = CosNotification::UNSUPPORTED_PROPERTY; - err_seq[0].name = CORBA::string_dup (CosNotification::EventReliability); - - this->event_reliability_set_ = 1; - ACE_THROW (CosNotification::UnsupportedQoS (err_seq)); - } - else if (property_name.compare (CosNotification::ConnectionReliability) == 0) - { - CosNotification::PropertyErrorSeq err_seq (1); - err_seq.length (1); - - err_seq[0].code = CosNotification::UNSUPPORTED_PROPERTY; - err_seq[0].name = CORBA::string_dup (CosNotification::ConnectionReliability); - - this->connection_reliability_set_ = 1; - ACE_THROW (CosNotification::UnsupportedQoS (err_seq)); - } - else if (property_name.compare (CosNotification::Priority) == 0) - { - qos[index].value >>= this->priority_; - this->priority_set_ = 1; - } - else if (property_name.compare (CosNotification::Timeout) == 0) - { - qos[index].value >>= this->timeout_; - this->timeout_set_ = 1; - } - else if (property_name.compare (TAO_Notify_Extensions::BlockingPolicy) == 0) - { - qos[index].value >>= this->blocking_timeout_; - this->blocking_timeout_set_ = 1; - } - else if (property_name.compare (CosNotification::StartTimeSupported) == 0) - { - qos[index].value >>= CORBA::Any::to_boolean (this->start_time_supported_); - this->start_time_supported_set_ = 1; - } - else if (property_name.compare (CosNotification::StopTimeSupported) == 0) - { - qos[index].value >>= CORBA::Any::to_boolean (this->stop_time_supported_); - this->stop_time_supported_set_ = 1; - } - else if (property_name.compare (CosNotification::MaxEventsPerConsumer) == 0) - { - qos[index].value >>= this->max_events_per_consumer_; - this->max_events_per_consumer_set_ = 1; - } - else if (property_name.compare (CosNotification::OrderPolicy) == 0) - { - qos[index].value >>= this->order_policy_; - this->order_policy_set_ = 1; - } - else if (property_name.compare (CosNotification::DiscardPolicy) == 0) - { - qos[index].value >>= this->discard_policy_; - this->discard_policy_set_ = 1; - } - else if (property_name.compare (CosNotification::MaximumBatchSize) == 0) - { - qos[index].value >>= this->maximum_batch_size_; - this->maximum_batch_size_set_ = 1; - } - else if (property_name.compare (CosNotification::PacingInterval) == 0) - { - qos[index].value >>= this->pacing_interval_; - this->pacing_interval_set_ = 1; - } - } -} - -void -TAO_Notify_QoSAdmin_i::validate_qos ( - const CosNotification::QoSProperties & /*required_qos*/, - CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ - ACE_ENV_ARG_DECL_NOT_USED //ACE_ENV_SINGLE_ARG_PARAMETER - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - //Add your implementation here - return; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.h deleted file mode 100644 index 23e631f47a9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.h +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_QoSAdmin_i.h - * - * $Id$ - * - * Implements get/set methods for QoS properties. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_QOSADMIN_I_H -#define TAO_NOTIFY_QOSADMIN_I_H -#include "ace/pre.h" - -#include "orbsvcs/CosNotificationC.h" -#include "orbsvcs/TimeBaseC.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_QoSAdmin_i - * - * @brief TAO_Notify_QoSAdmin_i - * - */ -class TAO_Notify_Export TAO_Notify_QoSAdmin_i -{ -public: - /// Constructor - TAO_Notify_QoSAdmin_i (void); - - /// Destructor - virtual ~TAO_Notify_QoSAdmin_i (void); - - virtual CosNotification::QoSProperties * get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual void validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - // Accessors - CORBA::Long maximum_batch_size (void) const; - TimeBase::TimeT pacing_interval (void) const; - -protected: - // = QoS Properties - CORBA::Short event_reliability_; - CORBA::Boolean event_reliability_set_; - - /// Reliability properties (to be implemented "later"). - CORBA::Short connection_reliability_; - CORBA::Boolean connection_reliability_set_; - - /// Priority for the event - CORBA::Short priority_; - CORBA::Boolean priority_set_; - - /// Earliest delivery time - /* - TimeBase::UtcT start_time_; - - TimeBase::UtcT stop_time_; - - */ - - /// Expiry time - TimeBase::TimeT timeout_; - CORBA::Boolean timeout_set_; - - CORBA::Boolean start_time_supported_; - CORBA::Boolean start_time_supported_set_; - - /// Are start/stop times supported - CORBA::Boolean stop_time_supported_; - CORBA::Boolean stop_time_supported_set_; - - /// Max events allowed to be queued on behalf of a consumer - CORBA::Long max_events_per_consumer_; - CORBA::Boolean max_events_per_consumer_set_; - - /// Order of events in internal buffers. - CORBA::Short order_policy_; - CORBA::Boolean order_policy_set_; - - /// Policy to discard when buffers are full. - CORBA::Short discard_policy_; - CORBA::Boolean discard_policy_set_; - - /// Batch size for sequences of structured events. - CORBA::Long maximum_batch_size_; - CORBA::Boolean maximum_batch_size_set_; - - /// Max. period of time that events are collected before delivering - /// them as a sequence of structured events. - TimeBase::TimeT pacing_interval_; - CORBA::Boolean pacing_interval_set_; - - // TAO Specific QoS Properties - /// - TimeBase::TimeT blocking_timeout_; - CORBA::Boolean blocking_timeout_set_; -}; - -#if defined (__ACE_INLINE__) -#include "Notify_QoSAdmin_i.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_QOSADMIN_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.inl b/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.inl deleted file mode 100644 index 734d2421279..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_QoSAdmin_i.inl +++ /dev/null @@ -1,16 +0,0 @@ -//$Id$ - -ACE_INLINE CORBA::Long -TAO_Notify_QoSAdmin_i::maximum_batch_size (void) const -{ - return this->maximum_batch_size_; -} - - -ACE_INLINE TimeBase::TimeT -TAO_Notify_QoSAdmin_i::pacing_interval (void) const -{ - return this->pacing_interval_; -} - - diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.cpp deleted file mode 100644 index d85cb9f24b3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#include "Notify_SequenceProxyPushConsumer_i.h" -#include "Notify_Event_Manager.h" -#include "Notify_SupplierAdmin_i.h" -#include "Notify_StructuredEvents.h" - -ACE_RCSID(Notify, Notify_SequenceProxyPushConsumer_i, "$Id$") - -typedef ACE_Reverse_Lock<ACE_Lock> TAO_Notify_Unlock; - -TAO_Notify_SequenceProxyPushConsumer_i::TAO_Notify_SequenceProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplier_admin) - : proxy_inherited (supplier_admin) -{ -} - -TAO_Notify_SequenceProxyPushConsumer_i::~TAO_Notify_SequenceProxyPushConsumer_i (void) -{ -} - -void -TAO_Notify_SequenceProxyPushConsumer_i::connect_sequence_push_supplier (CosNotifyComm::SequencePushSupplier_ptr push_supplier ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected - )) -{ - // @@ Pradeep: here is another example on code that is not thread - // safe, i know you are post-poning the thread safety issues, but it - // is not that easy! - - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 1) - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - else - this->push_supplier_ = - CosNotifyComm::SequencePushSupplier::_duplicate (push_supplier); - - this->is_connected_ = 1; - - ACE_TRY - { - TAO_Notify_Unlock reverse_lock (*this->lock_); - - { - ACE_GUARD_THROW_EX (TAO_Notify_Unlock, ace_mon, reverse_lock, - CORBA::INTERNAL ()); - ACE_TRY_CHECK; - - this->on_connected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - this->push_supplier_ = CosNotifyComm::SequencePushSupplier::_nil (); - this->is_connected_ = 0; - - ACE_RE_THROW; - } - ACE_ENDTRY; -} - -void -TAO_Notify_SequenceProxyPushConsumer_i::dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - this->push_supplier_->subscription_change (added, removed - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_SequenceProxyPushConsumer_i::push_structured_events (const CosNotification::EventBatch & notifications ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventComm::Disconnected - )) -{ - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 0) - ACE_THROW (CosEventComm::Disconnected ()); - } - - // Pack up the nofications in a TAO_Notify_StructuredEvents - TAO_Notify_StructuredEvents* notify_events = - new TAO_Notify_StructuredEvents (notifications); - - // Send 'em out - this->event_manager_->process_event (notify_events, this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - notify_events->_decr_refcnt (); -} - -void -TAO_Notify_SequenceProxyPushConsumer_i::disconnect_sequence_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // ask our parent to deaactivate us. - this->supplier_admin_-> - deactivate_proxy_pushconsumer (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->on_disconnected (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Notify_ProxyConsumer<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>; -template class TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Notify_ProxyConsumer<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> -#pragma instantiate TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.h deleted file mode 100644 index dfc6c0da0af..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushConsumer_i.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_SequenceProxyPushConsumer_i.h - * - * $Id$ - * - * Implements the CosNotifyChannelAdmin::SequenceProxyPushConsumer - * interface. - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_SEQUENCEPROXYPUSHCONSUMER_I_H -#define TAO_NOTIFY_SEQUENCEPROXYPUSHCONSUMER_I_H -#include "ace/pre.h" - -#include "Notify_ProxyConsumer_T.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -class TAO_Notify_SupplierAdmin_i; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_SequenceProxyPushConsumer_i - * - * @brief TAO_Notify_SequenceProxyPushConsumer_i - * - * Implements CosNotifyChannelAdmin::SequenceProxyPushConsumer - */ -class TAO_Notify_Export TAO_Notify_SequenceProxyPushConsumer_i : public TAO_Notify_ProxyConsumer <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> -{ - -public: - /// Constructor - TAO_Notify_SequenceProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplier_admin); - - /// Destructor - virtual ~TAO_Notify_SequenceProxyPushConsumer_i (void); - - // = interface methods - virtual void connect_sequence_push_supplier ( - CosNotifyComm::SequencePushSupplier_ptr push_supplier - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected - )); - - virtual void push_structured_events ( - const CosNotification::EventBatch & notifications - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventComm::Disconnected - )); - - virtual void disconnect_sequence_push_consumer ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -protected: - // = Helper methods - /// Sends updates to the supplier. - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL); - - // = Data members - /// The supplier that we're connected to. - CosNotifyComm::SequencePushSupplier_ptr push_supplier_; - -private: - typedef TAO_Notify_ProxyConsumer <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> proxy_inherited; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_SEQUENCEPROXYPUSHCONSUMER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.cpp deleted file mode 100644 index 68af758ef3a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#include "Notify_SequenceProxyPushSupplier_i.h" -#include "Notify_ConsumerAdmin_i.h" -#include "Notify_StructuredEvents.h" -#include "Notify_Factory.h" -#include "Notify_Channel_Objects_Factory.h" - -#include "tao/ORB_Core.h" -#include "tao/PortableServer/Object_Adapter.h" - -ACE_RCSID(Notify, Notify_SequenceProxyPushSupplier_i, "$Id$") - -typedef ACE_Reverse_Lock<ACE_Lock> TAO_Notify_Unlock; - -TAO_Notify_SequenceProxyPushSupplier_i::TAO_Notify_SequenceProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumer_admin) - : proxy_inherited (consumer_admin), - from_timeout_ (0), - reset_timeout_flag_ (0), - batch_lock_ (0) -{ -} - -TAO_Notify_SequenceProxyPushSupplier_i::~TAO_Notify_SequenceProxyPushSupplier_i (void) -{ - delete batch_lock_; -} - -void -TAO_Notify_SequenceProxyPushSupplier_i::connect_sequence_push_consumer (CosNotifyComm::SequencePushConsumer_ptr push_consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (CORBA::is_nil (push_consumer)) - ACE_THROW (CosEventChannelAdmin::TypeError ()); - else if (this->is_connected_ == 1) - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - else - { - this->push_consumer_ = - CosNotifyComm::SequencePushConsumer::_duplicate (push_consumer); - - this->is_connected_ = 1; - } - - ACE_TRY - { - TAO_Notify_Unlock reverse_lock (*this->lock_); - - { - ACE_GUARD_THROW_EX (TAO_Notify_Unlock, ace_mon, reverse_lock, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->on_connected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - this->push_consumer_ = - CosNotifyComm::SequencePushConsumer::_nil (); - ACE_RE_THROW; - } - ACE_ENDTRY; -} - -void -TAO_Notify_SequenceProxyPushSupplier_i::dispatch_event_i (TAO_Notify_Event& events - ACE_ENV_ARG_DECL) -{ - // If we are in this method then we are a SequenceProxyPushSupplier - // connected up to a SequenceProxyPushConsumer and the only thing - // that events can actually be is a TAO_Notify_StructuredEvents object. - - ACE_TRY - { - // We only have a batch_lock_ if - // the PacingInterval policy was used. - if (this->batch_lock_ != 0) - { - // I don't use ACE_GUARD here, because I don't want - // to block if I can't get this lock. The timeout handler - // in the same thread would cause a deadlock. - ACE_Guard<ACE_Lock> ace_mon (*this->batch_lock_, 0); - if (ace_mon.locked () == 0) return; - - // Only set this if we have successfully obtained the lock. - // This way, if from_timeout_ is ever set to 1 it will - // only be set back to 0 if do_push () is called when timeout_ - // is set to 1 (causing the cache to be flushed). - this->reset_timeout_flag_ = 1; - events.do_push (this->push_consumer_.in (), - this->qos_admin (), - this->event_cache_, - this->from_timeout_ - ACE_ENV_ARG_PARAMETER); - } - else - { - events.do_push (this->push_consumer_.in (), - this->qos_admin (), - this->event_cache_, - this->from_timeout_ - ACE_ENV_ARG_PARAMETER); - } - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - ACE_DEBUG ((LM_DEBUG, "Exception dispatching structured event\n")); - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_SequenceProxyPushSupplier_i::dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - this->push_consumer_->offer_change (added, removed ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_SequenceProxyPushSupplier_i::disconnect_sequence_push_supplier(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->on_disconnected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // ask our parent to deactivate us. - this->consumer_admin_-> - deactivate_proxy_pushsupplier (this ACE_ENV_ARG_PARAMETER); -} - - -void -TAO_Notify_SequenceProxyPushSupplier_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - // Tell the consumer that we're going away ... - // @@ Later, lookup a "notify_on_disconnect" option. - - { - ACE_GUARD (ACE_Lock, ace_mon, *this->lock_); - - if (this->is_connected_ == 0) - return; - } - - this->disconnect_sequence_push_supplier (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY - { - this->push_consumer_->disconnect_sequence_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // ignore - } - ACE_ENDTRY; -} - - -void -TAO_Notify_SequenceProxyPushSupplier_i::setup_qos_policies ( - ACE_ENV_SINGLE_ARG_DECL) -{ -# if defined (ACE_CONFIG_WIN32_H) - ACE_Time_Value interval ( - ACE_static_cast (long, this->qos_admin ().pacing_interval ())); -# else - ACE_Time_Value interval (this->qos_admin ().pacing_interval () / 1); -# endif /* ACE_CONFIG_WIN32_H */ - - if (interval != ACE_Time_Value::zero) - { - // Only create the batch_lock_ if we are going to have a timer - TAO_Notify_CO_Factory* cof = - TAO_Notify_Factory::get_channel_objects_factory (); - - this->batch_lock_ = cof->create_proxy_supplier_lock (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Get back to the reactor to schedule the timer - TAO_POA_Current_Impl *poa_current_impl = - ACE_static_cast (TAO_POA_Current_Impl *, - TAO_TSS_RESOURCES::instance ()->poa_current_impl_); - if (poa_current_impl != 0) - { - ACE_Reactor* reactor = poa_current_impl->orb_core ().reactor (); - reactor->schedule_timer (this, 0, interval, interval); - } - else - { - ACE_ERROR ((LM_ERROR, - "(%P|%t) Unable to schedule " - "timer for the pacing interval\n")); - } - } -} - - -int -TAO_Notify_SequenceProxyPushSupplier_i::handle_timeout ( - const ACE_Time_Value& /*current_time*/, - const void* /*act*/) -{ - - ACE_TRY_NEW_ENV - { - // We don't need to bother if there is nothing in the cache - if (this->event_cache_.length () > 0) - { - // We need a TAO_Notify_StructuredEvents when we call - // dispatch_event (). It doesn't matter that there's nothing - // in it. - CosNotification::EventBatch notifications; - TAO_Notify_StructuredEvents dummy_events (notifications); - - // Set the flag saying that we are comming from the timeout. - // The worst that could happen if this is set while - // dispatch_event_i was called by the event processor is that - // the event cache will be flushed a split second before it - // normally would. - this->from_timeout_ = 1; - this->dispatch_event (dummy_events ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - ACE_DEBUG ((LM_DEBUG, "Exception dispatching handle_timeout\n")); - // We must eat the exception in this case - } - ACE_ENDTRY; - - if (this->reset_timeout_flag_) - { - this->from_timeout_ = 0; - this->reset_timeout_flag_ = 0; - } - return 0; -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>; -template class TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier> -#pragma instantiate TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.h deleted file mode 100644 index 794844c0826..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_SequenceProxyPushSupplier_i.h +++ /dev/null @@ -1,110 +0,0 @@ -//============================================================================= -/** - * @file Notify_SequenceProxyPushSupplier_i.h - * - * $Id$ - * - * Implements the POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier - * interface. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_SEQUENCEPROXYPUSHSUPPLIER_I_H -#define TAO_NOTIFY_SEQUENCEPROXYPUSHSUPPLIER_I_H -#include "ace/pre.h" - -#include "Notify_ProxySupplier_T.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -class TAO_Notify_ConsumerAdmin_i; - -#if defined (_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning (push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_SequenceProxyPushSupplier_i - * - * @brief Implements CosNotifyChannelAdmin::SequenceProxyPushSupplier. - */ -class TAO_Notify_Export TAO_Notify_SequenceProxyPushSupplier_i : public TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>, - public ACE_Event_Handler -{ - -public: - /// Constructor - TAO_Notify_SequenceProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumer_admin); - - /// Destructor - virtual ~TAO_Notify_SequenceProxyPushSupplier_i (void); - - virtual void connect_sequence_push_consumer ( - CosNotifyComm::SequencePushConsumer_ptr push_consumer - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError - )); - - // @@ Pradeep: more indentation problems.... - virtual void disconnect_sequence_push_supplier ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - - /// Shutdown. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - -protected: - /// Deliver the event to the consumer. - virtual void dispatch_event_i (TAO_Notify_Event &event ACE_ENV_ARG_DECL); - - /// Deliver the update to the consumer. - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL); - - /// Do what we need to do after the qos policies are set. - void setup_qos_policies (ACE_ENV_SINGLE_ARG_DECL); - - /// When the pacing interval is used, handle_timeout () is called by - /// the reactor. - virtual int handle_timeout (const ACE_Time_Value& current_time, - const void* act = 0); - - /// The consumer that we're connect to. - CosNotifyComm::SequencePushConsumer_var push_consumer_; - -private: - typedef TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier> - proxy_inherited; - - /// Cache events until maximum batch size is reached. - CosNotification::EventBatch event_cache_; - - /// Flag to specify that dispatch_event was called from the timeout - CORBA::Boolean from_timeout_; - - /// Flag to specify that dispatch_event_i was successfully called from - /// the timeout handler - CORBA::Boolean reset_timeout_flag_; - - /// Lock to synchronize the modification of event_cache_ - ACE_Lock* batch_lock_; -}; - -#if defined (_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning (pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_SEQUENCEPROXYPUSHSUPPLIER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp deleted file mode 100644 index 36c7a678205..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// $Id$ - -#include "Notify_Service.h" - -#include "ace/Sched_Params.h" -#include "ace/Arg_Shifter.h" -#include "tao/ORB_Core.h" -#include "Builder.h" -#include "Properties.h" -#include "Factory.h" - -ACE_RCSID(RT_Notify, TAO_NS_Notify_Service, "$Id$") - -TAO_NS_Notify_Service::TAO_NS_Notify_Service (void) -:factory_ (0), builder_ (0) -{ -} - -TAO_NS_Notify_Service::~TAO_NS_Notify_Service () -{ - delete factory_; - delete builder_; -} - -int -TAO_NS_Notify_Service::init (int argc, char *argv[]) -{ - ACE_Arg_Shifter arg_shifter (argc, argv); - - const ACE_TCHAR *current_arg = 0; - - while (arg_shifter.is_anything_left ()) - { - if (arg_shifter.cur_arg_strncasecmp ("-Updates") == 0) // -AsynchUpdates update_period_uS - { - arg_shifter.consume_arg (); - - current_arg = arg_shifter.get_current (); - - if (current_arg != 0) - { - ACE_Time_Value update_period (0, ACE_OS::atoi (current_arg)); - - - TAO_NS_PROPERTIES::instance()->updates (1); - TAO_NS_PROPERTIES::instance()->update_period (update_period); - } - } - else if (arg_shifter.cur_arg_strncasecmp ("-NoUpdates") == 0) // No Updates to begin with. - { - arg_shifter.consume_arg (); - - TAO_NS_PROPERTIES::instance()->updates (0); - } - } - - return 0; -} - -int -TAO_NS_Notify_Service::fini (void) -{ - return 0; -} - -void -TAO_NS_Notify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - ACE_DEBUG ((LM_DEBUG, "Loading the Cos Notification Service...\n")); - - this->init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - /// first, init the main thread. - //this->init_main_thread (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Obtain the Root POA - CORBA::Object_var object = - orb->resolve_initial_references("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (object.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to resolve the RootPOA.\n")); - - PortableServer::POA_var default_poa = PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - /// Set the properties - TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance(); - - properties->default_poa (default_poa.in ()); - properties->sched_policy (orb->orb_core ()->orb_params ()->sched_policy ()); - properties->scope_policy (orb->orb_core ()->orb_params ()->scope_policy ()); - - - // Init the factory and builder - - this->init_factory (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->init_builder (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_Notify_Service::init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - ACE_Sched_Params::Policy sched_policy; - long thr_sched_policy = orb->orb_core ()->orb_params ()->sched_policy (); - - long thr_scope_policy = orb->orb_core ()->orb_params ()->scope_policy (); - - if (thr_sched_policy == THR_SCHED_FIFO) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Sched policy = THR_SCHED_FIFO\n")); - - sched_policy = ACE_SCHED_FIFO; - } - else if (thr_sched_policy == THR_SCHED_RR) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Sched policy = THR_SCHED_RR\n")); - - sched_policy = ACE_SCHED_RR; - } - else - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Sched policy = THR_SCHED_OTHER\n")); - - sched_policy = ACE_SCHED_OTHER; - } - - /// Check sched. - int min_priority = ACE_Sched_Params::priority_min (sched_policy); - int max_priority = ACE_Sched_Params::priority_max (sched_policy); - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "max_priority = %d, min_priority = %d\n", - max_priority, min_priority)); - - if (max_priority == min_priority) - { - ACE_DEBUG ((LM_DEBUG,"Detected max_priority == min_priority\n")); - } - } - - // Set the main thread to min priority... - int priority = min_priority; - - if (ACE_OS::sched_params (ACE_Sched_Params (sched_policy , - priority, - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - { - ACE_DEBUG ((LM_DEBUG, - "(%P|%t): user is not superuser, " - "test runs in time-shared class\n")); - } - else - ACE_ERROR ((LM_ERROR, - "(%P|%t): sched_params failed\n")); - } -} - -void -TAO_NS_Notify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_NS_Notify_Service::create (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) -{ - return this->builder_->build_event_channel_factory (poa ACE_ENV_ARG_PARAMETER); -} - -ACE_FACTORY_DEFINE (TAO_Notify, TAO_NS_Notify_Service) diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp~ b/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp~ deleted file mode 100644 index c40e7103a75..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp~ +++ /dev/null @@ -1,87 +0,0 @@ -// $Id$ - -#include "Notify_Service.h" -#include "tao/ORB_Core.h" -#include "Builder.h" -#include "Properties.h" -#include "Factory.h" - -ACE_RCSID(RT_Notify, TAO_NS_Notify_Service, "$Id$") - -TAO_NS_Notify_Service::TAO_NS_Notify_Service (void) -{ - ACE_DEBUG ((LM_DEBUG, "Loading the Cos Notification Service...")); -} - -TAO_NS_Notify_Service::~TAO_NS_Notify_Service () -{ - delete factory_; - delete builder_; -} - -void -TAO_NS_Notify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - this->init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->init_factory (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->init_builder (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - // Obtain the Root POA - CORBA::Object_var object = - orb->resolve_initial_references("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (CORBA::is_nil (object.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to resolve the RootPOA.\n")); - - PortableServer::POA_var default_poa = PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - /// Set the properties - TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance(); - - properties->default_poa (default_poa.in ()); - properties->sched_policy (orb->orb_core ()->orb_params ()->sched_policy ()); - properties->scope_policy (orb->orb_core ()->orb_params ()->scope_policy ()); -} - -void -TAO_NS_Notify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -CosNotifyChannelAdmin::EventChannelFactory_ptr -TAO_NS_Notify_Service::create (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL) -{ - return this->builder_->build_event_channel_factory (poa ACE_ENV_ARG_PARAMETER); -} - -ACE_FACTORY_DEFINE (TAO_Notify, TAO_NS_Notify_Service) diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.h deleted file mode 100644 index 02a51734254..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Notify_Service.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_COSNOTIFY_SERVICE_H -#define TAO_NS_COSNOTIFY_SERVICE_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Service.h" - -class TAO_NS_Factory; -class TAO_NS_Builder; -class TAO_NS_Properties; - -/** - * @class TAO_NS_Notify_Service - * - * @brief A service object for creating the Notify Service Factory. - * - */ -class TAO_Notify_Export TAO_NS_Notify_Service : public TAO_NS_Service -{ -public: - /// Constuctor - TAO_NS_Notify_Service (void); - - /// Destructor - virtual ~TAO_NS_Notify_Service (); - - /// = Service_Object virtual method overloads. - virtual int init (int argc, char *argv[]); - virtual int fini (void); - - /// Init - virtual void init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Create the Channel Factory. - virtual CosNotifyChannelAdmin::EventChannelFactory_ptr create (PortableServer::POA_ptr default_POA ACE_ENV_ARG_DECL); - -protected: - /// Init the data members - virtual void init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Create the Factory for RT Notify objects. - virtual void init_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// Creates the Builder for RT Notify objects. - virtual void init_builder (ACE_ENV_SINGLE_ARG_DECL); - - /// Apply ORB Schedluling policy to main thread and set its priority to the lowest available. - void init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Service component for object factory operations. - TAO_NS_Factory* factory_; - - /// Service component for building NS participants. - TAO_NS_Builder* builder_; -}; - -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_Notify_Service) - -#if defined (__ACE_INLINE__) -#include "Notify_Service.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_COSNOTIFY_SERVICE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl b/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl deleted file mode 100644 index 3a2458e4e34..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Notify_Service.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Signal_Property_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Signal_Property_T.cpp deleted file mode 100644 index 03ec1f6675f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Signal_Property_T.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// $Id$ - -#ifndef TAO_NOTIFY_SIGNAL_PROPERTY_T_C -#define TAO_NOTIFY_SIGNAL_PROPERTY_T_C - -#include "Notify_Signal_Property_T.h" - -ACE_RCSID (Notify, Notify_Signal_Property_T, "$Id$") - -template <class ACE_LOCK, class TYPE> -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::TAO_Notify_Signal_Property (void) - : value_ (), - changed_ (this->value_.mutex ()) -{ -} - -template <class ACE_LOCK, class TYPE> -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::TAO_Notify_Signal_Property ( - const TYPE& c) - : value_ (c), - changed_ (this->value_.mutex ()) -{ -} - -template <class ACE_LOCK, class TYPE> -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::~TAO_Notify_Signal_Property (void) -{ -} - -template <class ACE_LOCK, class TYPE> TYPE -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::operator++ (int) -{ - // Wake up the condition waiters - this->changed_.broadcast (); - return this->value_++; -} - -template <class ACE_LOCK, class TYPE> TYPE -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::operator-- (int) -{ - // Wake up the condition waiters - this->changed_.broadcast (); - return this->value_--; -} - -template <class ACE_LOCK, class TYPE> TYPE -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::value (void) const -{ - return this->value_.value (); -} - -template <class ACE_LOCK, class TYPE> int -TAO_Notify_Signal_Property<ACE_LOCK, TYPE>::wait_for_change ( - const ACE_Time_Value* abstime) -{ - // Wait for the signal that the value has changed. - int status = this->changed_.wait (abstime); - - // Unlock the mutex since the call to wait () always - // returns the mutex to us in a locked state. - this->value_.mutex ().release (); - - return status; -} - -#endif /* TAO_NOTIFY_SIGNAL_PROPERTY_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Signal_Property_T.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Signal_Property_T.h deleted file mode 100644 index 925ad33185d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Signal_Property_T.h +++ /dev/null @@ -1,84 +0,0 @@ -//============================================================================= -/** - * @file Notify_Signal_Property_T.h - * - * $Id$ - * - * Template class to allow conditional waits on changes of values. - * It implements an extremely small subset of ACE_Atomic_Op<>. - * - * - * @author Chad Elliott <elliott_c@ociweb.com> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_SIGNAL_PROPERTY_T_H -#define TAO_NOTIFY_SIGNAL_PROPERTY_T_H -#include "ace/pre.h" - -#include "ace/Synch_T.h" -#include "ace/Atomic_Op.h" - -#if defined (_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning (push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - -template <class ACE_LOCK, class TYPE> -class TAO_Notify_Signal_Property -{ -public: - // = Initialization methods. - - /// Initialize <value_> to 0. - TAO_Notify_Signal_Property (void); - - /// Initialize <value_> to c. - TAO_Notify_Signal_Property (const TYPE &c); - - // Destructor - virtual ~TAO_Notify_Signal_Property (void); - - // = Accessors. - - /// Atomically post-increment <value_>. - TYPE operator++ (int); - - /// Atomically post-decrement <value_>. - TYPE operator-- (int); - - /// Explicitly return <value_>. - TYPE value (void) const; - - /// Wait for the value_ to change - virtual int wait_for_change (const ACE_Time_Value* abstime); - -private: - ACE_UNIMPLEMENTED_FUNC ( - TAO_Notify_Signal_Property ( - const TAO_Notify_Signal_Property<ACE_LOCK, TYPE> &rhs)) - ACE_UNIMPLEMENTED_FUNC ( - TAO_Notify_Signal_Property& operator= ( - const TAO_Notify_Signal_Property<ACE_LOCK, TYPE> &rhs)) - - - ACE_Atomic_Op <ACE_LOCK, TYPE> value_; - ACE_SYNCH_CONDITION changed_; -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Notify_Signal_Property_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Notify_Signal_Property_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#if defined (_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning (pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_SIGNAL_PROPERTY_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Source_Filter_Eval_Command.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Source_Filter_Eval_Command.cpp deleted file mode 100644 index d3ba6f93475..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Source_Filter_Eval_Command.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// $Id$ - -#include "Notify_Source_Filter_Eval_Command.h" -#include "Notify_Listeners.h" -#include "Notify_Lookup_Command.h" -#include "Notify_Worker_Task.h" -#include "Notify_Event.h" -#include "Notify_Event_Processor.h" - -ACE_RCSID(Notify, Notify_Source_Filter_Eval_Command, "$Id$") - -TAO_Notify_Source_Filter_Eval_Command::TAO_Notify_Source_Filter_Eval_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_EventSource* event_source) - :TAO_Notify_Command (event_processor, event), - event_source_ (event_source) -{ - this->event_source_->_incr_refcnt (); - this->event_->_incr_refcnt (); -} - -TAO_Notify_Source_Filter_Eval_Command::~TAO_Notify_Source_Filter_Eval_Command () -{ - this->event_source_->_decr_refcnt (); - this->event_->_decr_refcnt (); -} - -int -TAO_Notify_Source_Filter_Eval_Command::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - CORBA::Boolean result = - this->event_source_->evaluate_filter (*this->event_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (result == 1) - { - this->event_processor_-> - lookup_subscriptions (this->event_, this->event_source_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; - } - else - return -1; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Source_Filter_Eval_Command.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Source_Filter_Eval_Command.h deleted file mode 100644 index e5bb7e9ef9c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Source_Filter_Eval_Command.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Source_Filter_Eval_Command.h - * - * $Id$ - * - * Command object for evaluating source filter. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_SOURCE_FILTER_EVAL_COMMAND_H -#define TAO_NOTIFY_SOURCE_FILTER_EVAL_COMMAND_H - -#include "ace/pre.h" -#include "Notify_Command.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "notify_export.h" - -class TAO_Notify_Event; -class TAO_Notify_EventSource; - -/** - * @class TAO_Notify_Source_Filter_Eval_Command - * - * @brief TAO_Notify_Source_Filter_Eval_Command - * - * Command object for evaluating event source's filter. - */ -class TAO_Notify_Export TAO_Notify_Source_Filter_Eval_Command : public TAO_Notify_Command -{ -public: - // = Initialization and termination code - /// Constructor. - TAO_Notify_Source_Filter_Eval_Command (TAO_Notify_Event_Processor* event_processor, TAO_Notify_Event* event, TAO_Notify_EventSource* event_source); - - /// Destructor. - ~TAO_Notify_Source_Filter_Eval_Command (); - - /// Command callback - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - -protected: - // = Data Members - TAO_Notify_EventSource* event_source_; -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_SOURCE_FILTER_EVAL_COMMAND_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredEvents.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredEvents.cpp deleted file mode 100644 index f7a3864d8e3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredEvents.cpp +++ /dev/null @@ -1,273 +0,0 @@ -// $Id$ -#include "Notify_StructuredEvents.h" -#include "Notify_QoSAdmin_i.h" -#include "tao/debug.h" - -ACE_RCSID (Notify, Notify_Event, "$Id$") - - -TAO_Notify_StructuredEvents::TAO_Notify_StructuredEvents ( - const CosNotification::EventBatch& notifications) - : data_ (notifications), - match_called_ (0) -{ - if (this->data_.length () > 0) - { - this->event_type_ = this->data_[0].header.fixed_header.event_type; - } - this->init_QoS (); -} - -TAO_Notify_StructuredEvents::~TAO_Notify_StructuredEvents () -{ -} - -void -TAO_Notify_StructuredEvents::init_QoS (void) -{ - if (this->data_.length () > 0) - { - CosNotification::PropertySeq& qos = this->data_[0].header.variable_header; - - for (CORBA::ULong index = 0; index < qos.length (); ++index) - { - ACE_CString property_name (qos[index].name); - - if (property_name.compare (CosNotification::Priority) == 0) - { - qos[index].value >>= this->priority_; - } - else if (property_name.compare (CosNotification::StartTime) == 0) - { - // qos[index].value >>= this->start_time_; - } - else if (property_name.compare (CosNotification::StopTime) == 0) - { - // qos[index].value >>= this->stop_time_; - } - else if (property_name.compare (CosNotification::Timeout) == 0) - { - qos[index].value >>= this->timeout_; - } - } - } -} - -TAO_Notify_Event* -TAO_Notify_StructuredEvents::clone (void) -{ - TAO_Notify_StructuredEvents* clone; - - ACE_NEW_RETURN (clone, TAO_Notify_StructuredEvents (this->data_), 0); - - return clone; -} - -void -TAO_Notify_StructuredEvents::operator=(const TAO_Notify_StructuredEvents& structured_events) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "In TAO_Notify_StructuredEvents::operator=\n")); - - if (this != &structured_events) - { - this->data_ = structured_events.data_; - this->matching_ = structured_events.matching_; - this->event_type_ = structured_events.event_type_; - } -} - -CORBA::Boolean -TAO_Notify_StructuredEvents::is_special_event_type (void) const -{ - return this->event_type_.is_special (); -} - -const TAO_Notify_EventType& -TAO_Notify_StructuredEvents::event_type (void) const -{ - return this->event_type_; -} - -CORBA::Boolean -TAO_Notify_StructuredEvents::do_match (CosNotifyFilter::Filter_ptr filter - ACE_ENV_ARG_DECL) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_StructuredEvents::do_match ()\n")); - - CORBA::Boolean status = 0; - CORBA::ULong index = this->matching_.length (); - CORBA::ULong length = this->data_.length (); - - for (CORBA::ULong i = 0; i < length; i++) - { - CORBA::Boolean matched = filter->match_structured (this->data_[i] - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - if (matched) - { - // Return TRUE if any event in the sequence matches - status = 1; - - // Keep track of the position within the data sequence - this->matching_.length (index + 1); - this->matching_[index++] = i; - } - } - this->match_called_ = 1; - - return status; -} - -void -TAO_Notify_StructuredEvents::do_push (CosEventComm::PushConsumer_ptr consumer - ACE_ENV_ARG_DECL) const -{ - CORBA::ULong sending_length = (this->match_called_ ? - this->matching_.length () : - this->data_.length ()); - for (CORBA::ULong i = 0; i < sending_length; i++) - { - CORBA::Any any; - any <<= this->data_[(this->match_called_ ? - this->matching_[i] : i)]; - consumer->push (any ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -void -TAO_Notify_StructuredEvents::do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer - ACE_ENV_ARG_DECL) const -{ - CORBA::ULong sending_length = (this->match_called_ ? - this->matching_.length () : - this->data_.length ()); - for (CORBA::ULong i = 0; i < sending_length; i++) - { - consumer->push_structured_event (this->data_[(this->match_called_ ? - this->matching_[i] : i)] - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -void -TAO_Notify_StructuredEvents::do_push ( - CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& qos_admin, - CosNotification::EventBatch& unsent, - int flush_queue - ACE_ENV_ARG_DECL) const -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Notify (%P|%t) - " - "TAO_Notify_StructuredEvents::do_push with " - "flush_queue = %d\n", flush_queue)); - - CORBA::ULong unsent_length = unsent.length (); - CORBA::ULong maximum_batch_size = qos_admin.maximum_batch_size (); - CORBA::ULong sending_length = (this->match_called_ ? - this->matching_.length () : - this->data_.length ()); - CosNotification::EventBatch matched (maximum_batch_size); - - // Deal with the unsent events first - CORBA::ULong queue_size = (flush_queue && - unsent_length < maximum_batch_size ? - unsent_length : maximum_batch_size); - - while (unsent_length > 0 && unsent_length >= queue_size) - { - // We can only send queue_size at a time! - matched.length (queue_size); - - // Pack 'em up and send 'em out. - for (CORBA::ULong i = 0; i < queue_size; i++) - { - matched[i] = unsent[i]; - } - consumer->push_structured_events (matched ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Shift the rest of the unsent messages to the front. - // We are reusing 'matched' for this purpose. - matched.length (unsent_length - queue_size); - for (CORBA::ULong j = queue_size; j < unsent_length; j++) - { - matched[j - queue_size] = unsent[j]; - } - unsent = matched; - unsent_length -= queue_size; - - // If we are flushing the queue and we don't have enough to - // fill upto queue_size, then we need to reset queue_size to - // the size of the rest of the unsent messages. - if (flush_queue && unsent_length < queue_size) - { - queue_size = unsent_length; - } - } - - if (sending_length > 0) - { - CORBA::ULong start = 0; - if (unsent_length + sending_length >= maximum_batch_size) - { - matched = unsent; - matched.length (maximum_batch_size); - - // Add to the matched sequence until we are full - CORBA::ULong index = 0; - for (CORBA::ULong i = unsent_length; i < maximum_batch_size; i++) - { - index = i - unsent_length; - matched[i] = this->data_[(this->match_called_ ? - this->matching_[index] : index)]; - start++; - } - consumer->push_structured_events (matched ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - unsent.length (0); - unsent_length = 0; - - // Send some more events out - while (start < sending_length && - sending_length - start >= maximum_batch_size) - { - for (CORBA::ULong i = 0; i < maximum_batch_size; i++) - { - matched[i] = this->data_[(this->match_called_ ? - this->matching_[start] : start)]; - start++; - } - consumer->push_structured_events (matched ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - } - - // append the rest to the unsent sequence - unsent.length (unsent_length + (sending_length - start)); - for (CORBA::ULong j = start; j < sending_length; j++) - { - unsent[unsent_length + (j - start)] = - this->data_[(this->match_called_ ? - this->matching_[j] : j)]; - } - } -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Unbounded_Sequence<CORBA::ULong>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Unbounded_Sequence<CORBA::ULong> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredEvents.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredEvents.h deleted file mode 100644 index ebfe6d95680..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredEvents.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_StructuredEvents.h - * - * $Id$ - * - * For use with the Sequence (Push/Pull)(Consumer/Supplier) - * - * - * @author Chad Elliott <elliott_c@ociweb.com> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_STRUCTURED_EVENTS_H -#define TAO_NOTIFY_STRUCTURED_EVENT_H - -#include "ace/pre.h" -#include "orbsvcs/Notify/Notify_Event.h" -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class TAO_Notify_StructuredEvents - * - * @brief TAO_Notify_StructuredEvents - * - * This class is the concrete prototype for the Structured Event Types. - */ -class TAO_Notify_Export TAO_Notify_StructuredEvents : public TAO_Notify_Event -{ -public: - TAO_Notify_StructuredEvents (const CosNotification::EventBatch& notifications); - virtual ~TAO_Notify_StructuredEvents (); - - virtual TAO_Notify_Event* clone (void); - void operator=(const TAO_Notify_StructuredEvents& structured_events); - - virtual CORBA::Boolean is_special_event_type (void) const; - virtual const TAO_Notify_EventType& event_type (void) const; - virtual CORBA::Boolean do_match (CosNotifyFilter::Filter_ptr filter ACE_ENV_ARG_DECL); - virtual void do_push (CosEventComm::PushConsumer_ptr consumer ACE_ENV_ARG_DECL) const; - virtual void do_push (CosNotifyComm::StructuredPushConsumer_ptr consumer ACE_ENV_ARG_DECL) const; - virtual void do_push (CosNotifyComm::SequencePushConsumer_ptr consumer, - const TAO_Notify_QoSAdmin_i& qos_admin, - CosNotification::EventBatch& unsent, - int flush_queue - ACE_ENV_ARG_DECL) const; - -protected: - - /// Load the QoS properties these events from <data_>. - void init_QoS (void); - - // = Data Members - /// The data - CosNotification::EventBatch data_; - - /// The events that matched the filter - TAO_Unbounded_Sequence<CORBA::ULong> matching_; - - /// Was do_match () called? - int match_called_; - - /// The event types of <data_> - TAO_Notify_EventType event_type_; -}; - -#include "ace/post.h" - -#endif /* TAO_NOTIFY_EVENT_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.cpp deleted file mode 100644 index 277be4d1b89..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ */ - -#include "Notify_StructuredProxyPushConsumer_i.h" -#include "Notify_Event_Manager.h" -#include "Notify_SupplierAdmin_i.h" - -ACE_RCSID(Notify, Notify_StructuredProxyPushConsumer_i, "$Id$") - -typedef ACE_Reverse_Lock<ACE_Lock> TAO_Notify_Unlock; - -TAO_Notify_StructuredProxyPushConsumer_i::TAO_Notify_StructuredProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplier_admin) - :proxy_inherited (supplier_admin) -{ -} - -TAO_Notify_StructuredProxyPushConsumer_i::~TAO_Notify_StructuredProxyPushConsumer_i (void) -{ -} - -void -TAO_Notify_StructuredProxyPushConsumer_i::connect_structured_push_supplier (CosNotifyComm::StructuredPushSupplier_ptr push_supplier ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 1) - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - else - this->push_supplier_ = - CosNotifyComm::StructuredPushSupplier::_duplicate (push_supplier); - - this->is_connected_ = 1; - - ACE_TRY - { - TAO_Notify_Unlock reverse_lock (*this->lock_); - - { - ACE_GUARD_THROW_EX (TAO_Notify_Unlock, ace_mon, reverse_lock, - CORBA::INTERNAL ()); - ACE_TRY_CHECK; - - this->on_connected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - this->push_supplier_ = - CosNotifyComm::StructuredPushSupplier::_nil (); - - this->is_connected_ = 0; - } - ACE_ENDTRY; -} - -void -TAO_Notify_StructuredProxyPushConsumer_i::dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - this->push_supplier_->subscription_change (added, removed - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_StructuredProxyPushConsumer_i::push_structured_event (const CosNotification::StructuredEvent & notification ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventComm::Disconnected - )) -{ - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected_ == 0) - ACE_THROW (CosEventComm::Disconnected ()); - } - - CosNotification::StructuredEvent *notification_copy; - ACE_NEW_THROW_EX (notification_copy, - CosNotification::StructuredEvent (notification), - CORBA::NO_MEMORY ()); - - TAO_Notify_StructuredEvent* notify_event = - new TAO_Notify_StructuredEvent (notification_copy); - - this->event_manager_->process_event (notify_event, this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - notify_event->_decr_refcnt (); -} - -void -TAO_Notify_StructuredProxyPushConsumer_i::disconnect_structured_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // ask our parent to deactivate us. - this->supplier_admin_-> - deactivate_proxy_pushconsumer (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->on_disconnected (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Notify_ProxyConsumer<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>; -template class TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Notify_ProxyConsumer<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer> -#pragma instantiate TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.h deleted file mode 100644 index 7a2bc2c216c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushConsumer_i.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_StructuredProxyPushConsumer_i.h - * - * $Id$ - * - * Implements the CosNotifyChannelAdmin::StructuredProxyPushConsumer - * interface. - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_STRUCTUREDPROXYPUSHCONSUMER_I_H -#define TAO_NOTIFY_STRUCTUREDPROXYPUSHCONSUMER_I_H - -#include "ace/pre.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_ProxyConsumer_T.h" -#include "notify_export.h" - -class TAO_Notify_SupplierAdmin_i; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_StructuredProxyPushConsumer_i - * - * @brief TAO_Notify_StructuredProxyPushConsumer_i - * - * Implements CosNotifyChannelAdmin::StructuredProxyPushConsumer - */ -class TAO_Notify_Export TAO_Notify_StructuredProxyPushConsumer_i : public TAO_Notify_ProxyConsumer <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer> -{ - -public: - /// Constructor - TAO_Notify_StructuredProxyPushConsumer_i (TAO_Notify_SupplierAdmin_i* supplier_admin); - - /// Destructor - virtual ~TAO_Notify_StructuredProxyPushConsumer_i (void); - - // = interface methods - virtual void connect_structured_push_supplier ( - CosNotifyComm::StructuredPushSupplier_ptr push_supplier - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected - )); - -virtual void push_structured_event ( - const CosNotification::StructuredEvent & notification - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventComm::Disconnected - )); - - virtual void disconnect_structured_push_consumer ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -protected: - // = Helper methods - /// Dispatch updates to the supplier. - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL); - - // = Data members - /// The supplier that we're connected to. - CosNotifyComm::StructuredPushSupplier_var push_supplier_; - -private: - typedef TAO_Notify_ProxyConsumer <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer> - proxy_inherited; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_STRUCTUREDPROXYPUSHCONSUMER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp deleted file mode 100644 index 00770c13a3a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ */ - -#include "Notify_StructuredProxyPushSupplier_i.h" -#include "Notify_ConsumerAdmin_i.h" - -ACE_RCSID(Notify, Notify_StructuredProxyPushSupplier_i, "$Id$") - -typedef ACE_Reverse_Lock<ACE_Lock> TAO_Notify_Unlock; - -TAO_Notify_StructuredProxyPushSupplier_i::TAO_Notify_StructuredProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumeradmin) - :proxy_inherited (consumeradmin) -{ -} - -TAO_Notify_StructuredProxyPushSupplier_i::~TAO_Notify_StructuredProxyPushSupplier_i (void) -{ -} - -void -TAO_Notify_StructuredProxyPushSupplier_i::connect_structured_push_consumer (CosNotifyComm::StructuredPushConsumer_ptr push_consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (CORBA::is_nil (push_consumer)) - ACE_THROW (CosEventChannelAdmin::TypeError ()); - else - { - if (this->is_connected_ == 1) - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - else - { - this->push_consumer_ = - CosNotifyComm::StructuredPushConsumer::_duplicate (push_consumer); - } - - this->is_connected_ = 1; - } - - ACE_TRY - { - TAO_Notify_Unlock reverse_lock (*this->lock_); - - { - ACE_GUARD_THROW_EX (TAO_Notify_Unlock, ace_mon, reverse_lock, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->on_connected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCHALL - { - this->push_consumer_ = - CosNotifyComm::StructuredPushConsumer::_nil (); - - this->is_connected_ = 0; - - ACE_RE_THROW; - } - ACE_ENDTRY; -} - -void -TAO_Notify_StructuredProxyPushSupplier_i::dispatch_event_i (TAO_Notify_Event &event ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - event.do_push (this->push_consumer_.in () ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - ACE_DEBUG ((LM_DEBUG, "Exception dispatching structured event\n")); - // misbehaving client, - this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); // FUZZ: ignore check_for_ace_check - } - ACE_ENDTRY; -} - -void -TAO_Notify_StructuredProxyPushSupplier_i::dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL) -{ - ACE_TRY - { - this->push_consumer_->offer_change (added, removed ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "call to offer_change failed\n"); - // misbehaving client, ignore for now. - } - ACE_ENDTRY; -} - -void -TAO_Notify_StructuredProxyPushSupplier_i::shutdown_i (ACE_ENV_SINGLE_ARG_DECL) -{ - this->on_disconnected (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // ask our parent to deactivate us. - this->consumer_admin_-> - deactivate_proxy_pushsupplier (this ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_StructuredProxyPushSupplier_i::disconnect_structured_push_supplier(ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // unregister with CA - this->consumer_admin_->unregister_listener (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->shutdown_i (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_StructuredProxyPushSupplier_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - // Tell the consumer that we're going away ... - // @@ Later, lookup a "notify_on_disconnect" option. - - { - ACE_GUARD (ACE_Lock, ace_mon, *this->lock_); - - if (this->is_connected_ == 0) - return; - } - - this->shutdown_i (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY - { - this->push_consumer_->disconnect_structured_push_consumer (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - // ignore - } - ACE_ENDTRY; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier>; -template class TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier> - -#pragma instantiate TAO_Notify_Proxy<POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier> -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.h deleted file mode 100644 index 74edbd29cdd..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.h +++ /dev/null @@ -1,98 +0,0 @@ -//============================================================================= -/** - * @file Notify_StructuredProxyPushSupplier_i.h - * - * $Id$ - * - * Implements the POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier - * interface. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_NOTIFY_STRUCTUREDPROXYPUSHSUPPLIER_I_H -#define TAO_NOTIFY_STRUCTUREDPROXYPUSHSUPPLIER_I_H - -#include "ace/pre.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_ProxySupplier_T.h" - -class TAO_Notify_ConsumerAdmin_i; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_StructuredProxyPushSupplier_i - * - * @brief TAO_Notify_StructuredProxyPushSupplier_i - * - * Implements POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier - */ -class TAO_Notify_Export TAO_Notify_StructuredProxyPushSupplier_i : public TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier> -{ - - public: - /// Constructor - TAO_Notify_StructuredProxyPushSupplier_i (TAO_Notify_ConsumerAdmin_i* consumer_admin); - - /// Destructor - virtual ~TAO_Notify_StructuredProxyPushSupplier_i (void); - - virtual void connect_structured_push_consumer ( - CosNotifyComm::StructuredPushConsumer_ptr push_consumer - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosEventChannelAdmin::AlreadyConnected, - CosEventChannelAdmin::TypeError - )); - - virtual void disconnect_structured_push_supplier ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// Shutdown. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - protected: - // = Helper methods - /// Shutdown - void shutdown_i (ACE_ENV_SINGLE_ARG_DECL); - - /// Deliver the event to the consumer. - virtual void dispatch_event_i (TAO_Notify_Event &event ACE_ENV_ARG_DECL); - - /// Deliver the update to the consumer. - virtual void dispatch_update_i (CosNotification::EventTypeSeq added, CosNotification::EventTypeSeq removed ACE_ENV_ARG_DECL); - - // = Data Members - /// The consumer that we're connect to. - CosNotifyComm::StructuredPushConsumer_var push_consumer_; - - private: - typedef TAO_Notify_ProxySupplier<POA_CosNotifyChannelAdmin::StructuredProxyPushSupplier> - proxy_inherited; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_STRUCTUREDPROXYPUSHSUPPLIER_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp deleted file mode 100644 index 4e30fc27bc0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.cpp +++ /dev/null @@ -1,452 +0,0 @@ -// $Id$ - -#include "Notify_SupplierAdmin_i.h" -#include "Notify_ProxyPushConsumer_i.h" -#include "Notify_StructuredProxyPushConsumer_i.h" -#include "Notify_SequenceProxyPushConsumer_i.h" -#include "Notify_EventChannel_i.h" -#include "Notify_Channel_Objects_Factory.h" -#include "Notify_POA_Factory.h" -#include "Notify_Factory.h" -#include "Notify_Event_Manager.h" - -#include "tao/debug.h" - -#include "ace/Auto_Ptr.h" - -ACE_RCSID(Notify, Notify_SupplierAdmin_i, "$Id$") - -// Implementation skeleton constructor -TAO_Notify_SupplierAdmin_i::TAO_Notify_SupplierAdmin_i (TAO_Notify_EventChannel_i* event_channel) - :event_channel_ (event_channel), - channel_objects_factory_ (0), - poa_factory_ (0), - lock_ (0), - destory_child_POAs_ (0) -{ - event_channel_->_add_ref (); // we don't want our parent to go away! -} - -// Implementation skeleton destructor -TAO_Notify_SupplierAdmin_i::~TAO_Notify_SupplierAdmin_i () -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG,"in SA dtor\n")); - // Cleanup all resources.. - - delete this->lock_; - - this->event_channel_->supplier_admin_destroyed (this->my_id_); - event_channel_->_remove_ref (); -} - -void -TAO_Notify_SupplierAdmin_i::proxy_pushconsumer_destroyed (CosNotifyChannelAdmin::ProxyID proxyID) -{ - this->proxy_pushconsumer_ids_.put (proxyID); // This id is no longer in use. -} - -void -TAO_Notify_SupplierAdmin_i::init (CosNotifyChannelAdmin::AdminID my_id, - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator, - PortableServer::POA_ptr my_POA - ACE_ENV_ARG_DECL) -{ - this->my_POA_ = PortableServer::POA::_duplicate (my_POA); - - this->channel_objects_factory_ = - TAO_Notify_Factory::get_channel_objects_factory (); - - this->poa_factory_ = TAO_Notify_Factory::get_poa_factory (); - - this->lock_ = this->channel_objects_factory_-> - create_supplier_admin_lock (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->proxy_pushconsumer_POA_ = this->poa_factory_-> - create_proxy_pushconsumer_POA (this->my_POA_.in (), my_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - my_id_ = my_id; - filter_operator_ = filter_operator; -} - -CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_Notify_SupplierAdmin_i::get_ref (ACE_ENV_SINGLE_ARG_DECL) -{ - // @@ Pradeep: if you get a chance to quantify this stuff you will - // notice that this is a very expensive operation, you may want to - // cache the result if it is invoked very often... - - CORBA::Object_var obj = this->poa_factory_-> - servant_to_reference (this->my_POA_.in (), this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ()); - - return CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in ()); -} - -// @@ Pradeep: it is possible that you want methods like this -// inlined... - -TAO_Notify_Event_Manager* -TAO_Notify_SupplierAdmin_i::get_event_manager (void) -{ - return this->event_channel_->get_event_manager (); -} - -TAO_Notify_FilterAdmin_i& -TAO_Notify_SupplierAdmin_i::get_filter_admin (void) -{ - return this->filter_admin_; -} - -void -TAO_Notify_SupplierAdmin_i::deactivate_proxy_pushconsumer (PortableServer::Servant servant ACE_ENV_ARG_DECL) -{ - this->poa_factory_-> - deactivate_object (servant, this->proxy_pushconsumer_POA_.in () - ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminID -TAO_Notify_SupplierAdmin_i::MyID (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return my_id_; -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_Notify_SupplierAdmin_i::MyChannel (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return event_channel_->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::InterFilterGroupOperator -TAO_Notify_SupplierAdmin_i::MyOperator (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return filter_operator_; -} - -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_Notify_SupplierAdmin_i::push_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - return this->proxy_pushconsumer_ids_.get_sequence (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_Notify_SupplierAdmin_i::get_proxy_consumer (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ProxyNotFound - )) -{ - CORBA::Object_var obj = - this->poa_factory_->id_to_reference (proxy_id, - proxy_pushconsumer_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - - return CosNotifyChannelAdmin::ProxyConsumer::_narrow (obj.in ()); -} - -CORBA::Object_ptr -TAO_Notify_SupplierAdmin_i::obtain_sequence_proxy_pushconsumer_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - TAO_Notify_SequenceProxyPushConsumer_i* seq_proxy_pushconsumer = - this->channel_objects_factory_->create_seq_proxy_pushconsumer (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - PortableServer::ServantBase_var proxy_pushconsumer_var (seq_proxy_pushconsumer); - - seq_proxy_pushconsumer->init (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return this->poa_factory_-> - activate_object_with_id (proxy_id, - this->proxy_pushconsumer_POA_.in (), - seq_proxy_pushconsumer - ACE_ENV_ARG_PARAMETER); -} - -CORBA::Object_ptr -TAO_Notify_SupplierAdmin_i::obtain_struct_proxy_pushconsumer_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - TAO_Notify_StructuredProxyPushConsumer_i* struct_proxy_pushconsumer = - this->channel_objects_factory_->create_struct_proxy_pushconsumer (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - PortableServer::ServantBase_var proxy_pushconsumer_var (struct_proxy_pushconsumer); - - struct_proxy_pushconsumer->init (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return this->poa_factory_-> - activate_object_with_id (proxy_id, - this->proxy_pushconsumer_POA_.in (), - struct_proxy_pushconsumer - ACE_ENV_ARG_PARAMETER); -} - -CORBA::Object_ptr -TAO_Notify_SupplierAdmin_i::obtain_proxy_pushconsumer_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) -{ - TAO_Notify_ProxyPushConsumer_i* proxy_pushconsumer = - this->channel_objects_factory_->create_proxy_pushconsumer (this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - PortableServer::ServantBase_var proxy_pushconsumer_var (proxy_pushconsumer); - - proxy_pushconsumer->init (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return this->poa_factory_-> - activate_object_with_id (proxy_id, - this->proxy_pushconsumer_POA_.in (), - proxy_pushconsumer - ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_Notify_SupplierAdmin_i::obtain_notification_push_consumer (CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )) -{ - CORBA::Object_var obj; - - { - ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - - proxy_id = this->proxy_pushconsumer_ids_.get (); - } - - switch (ctype) - { - case CosNotifyChannelAdmin::ANY_EVENT: - { - obj = this->obtain_proxy_pushconsumer_i (proxy_id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - } - break; - - case CosNotifyChannelAdmin::STRUCTURED_EVENT: - { - obj = this->obtain_struct_proxy_pushconsumer_i (proxy_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - } - break; - - case CosNotifyChannelAdmin::SEQUENCE_EVENT: - { - obj = this->obtain_sequence_proxy_pushconsumer_i (proxy_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - } - break; - - default: - ACE_THROW_RETURN (CORBA::BAD_PARAM (), - CosNotifyChannelAdmin::ProxyConsumer::_nil ()); - } - - this->proxy_pushconsumer_ids_.next (); // commit the current id. - return CosNotifyChannelAdmin::ProxyConsumer::_narrow (obj.in () - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_SupplierAdmin_i::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->destory_child_POAs_ = 1; - if (this->destory_child_POAs_ == 1) - this->poa_factory_->destroy_POA (this->proxy_pushconsumer_POA_.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // deactivate ourselves - this->poa_factory_->deactivate_object (this, this->my_POA_.in () - ACE_ENV_ARG_PARAMETER); -} - -CosNotification::QoSProperties* -TAO_Notify_SupplierAdmin_i::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->qos_admin_.get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_SupplierAdmin_i::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.set_qos (qos ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_SupplierAdmin_i::validate_qos (const CosNotification::QoSProperties & required_qos, CosNotification::NamedPropertyRangeSeq_out available_qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - this->qos_admin_.validate_qos (required_qos, available_qos ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_SupplierAdmin_i::offer_change (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )) -{ - this->get_event_manager ()->update_publication_list (added, - removed ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::FilterID -TAO_Notify_SupplierAdmin_i::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER); -} - -void -TAO_Notify_SupplierAdmin_i::remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::Filter_ptr -TAO_Notify_SupplierAdmin_i::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER); -} - -CosNotifyFilter::FilterIDSeq* -TAO_Notify_SupplierAdmin_i::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_Notify_SupplierAdmin_i::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosEventChannelAdmin::ProxyPushConsumer_ptr -TAO_Notify_SupplierAdmin_i::obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_Notify_CosEC_ProxyPushConsumer_i* cosec_proxy; - - ACE_NEW_THROW_EX (cosec_proxy, - TAO_Notify_CosEC_ProxyPushConsumer_i (this), - CORBA::NO_MEMORY ()); - - PortableServer::ServantBase_var proxy_var (cosec_proxy); - - cosec_proxy->init (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (CosEventChannelAdmin::ProxyPushConsumer::_nil ()); - - PortableServer::POA_var def_poa = - this->event_channel_->get_default_POA (); - - CORBA::Object_var obj = this->poa_factory_-> - activate_object (def_poa.in (), cosec_proxy ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CosEventChannelAdmin::ProxyPushConsumer::_nil ()); - - return CosEventChannelAdmin::ProxyPushConsumer::_narrow (obj.in ()); -} - -// = Pull Methods. -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_Notify_SupplierAdmin_i::pull_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // @@ Pradeep: there is no rush to implement pull, but look at the - // code in the new CosEC, we may need to start thinking about pull, - // and how can we reduce duplicated code for both pull and push - // models. - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_Notify_SupplierAdmin_i::obtain_notification_pull_consumer (CosNotifyChannelAdmin::ClientType /*ctype*/, CosNotifyChannelAdmin::ProxyID_out /*proxy_id*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyChannelAdmin::ProxyConsumer::_nil ()); -} - -CosEventChannelAdmin::ProxyPullConsumer_ptr -TAO_Notify_SupplierAdmin_i::obtain_pull_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - // @@ Pradeep: you may want to group all the Pull methods together, - // it would be easier to identify them or read the code that way. - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosEventChannelAdmin::ProxyPullConsumer::_nil ()); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::ProxyID, CosNotifyChannelAdmin::ProxyIDSeq>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::ProxyID, CosNotifyChannelAdmin::ProxyIDSeq> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.h deleted file mode 100644 index 12f53a97eaa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_SupplierAdmin_i.h +++ /dev/null @@ -1,307 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_SupplierAdmin_i.h - * - * $Id$ - * - * Implements the CosNotifyChannelAdmin::SupplierAdmin interface. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_SUPPLIERADMIN_I_H -#define TAO_NOTIFY_SUPPLIERADMIN_I_H -#include "ace/pre.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_ID_Pool_T.h" -#include "Notify_QoSAdmin_i.h" -#include "Notify_FilterAdmin_i.h" - -class TAO_Notify_EventChannel_i; -class TAO_Notify_CO_Factory; -class TAO_Notify_POA_Factory; -class TAO_Notify_Event_Manager; - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_Notify_SupplierAdmin_i - * - * @brief TAO_Notify_SupplierAdmin_i - * - * Implements the CosNotifyChannelAdmin::SupplierAdmin interface. - */ -class TAO_Notify_Export TAO_Notify_SupplierAdmin_i : public POA_CosNotifyChannelAdmin::SupplierAdmin, public PortableServer::RefCountServantBase -{ - -public: - // @@ Pradeep: you may want to drop the _i suffix, it buys you - // nothing.. - - /// Constructor - /// <event_channel> is this objects parent. - TAO_Notify_SupplierAdmin_i (TAO_Notify_EventChannel_i* event_channel); - - /// Destructor - virtual ~TAO_Notify_SupplierAdmin_i (); - - ///Initialize the Supplier Admin. - void init (CosNotifyChannelAdmin::AdminID myID, - CosNotifyChannelAdmin::InterFilterGroupOperator myOperator, - PortableServer::POA_ptr my_POA - ACE_ENV_ARG_DECL); - - // @@ Pradeep: could this method be const? Try to use const - // operations when possible. - /// Get our filter admin. - TAO_Notify_FilterAdmin_i& get_filter_admin (void); - - /// Deactivate servant from <proxy_pushconsumer_POA_>. - void deactivate_proxy_pushconsumer (PortableServer::Servant servant - ACE_ENV_ARG_DECL); - - /// This id is no longer in use.It can be reused by <proxy_pushconsumer_ids_> - void proxy_pushconsumer_destroyed (CosNotifyChannelAdmin::ProxyID proxyID); - - // = Interface methods - virtual CosNotifyChannelAdmin::AdminID MyID ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// Return the CORBA object for this servant. - CosNotifyChannelAdmin::SupplierAdmin_ptr get_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Accesor for the event manager. - TAO_Notify_Event_Manager* get_event_manager (void); - - // @@ Pradeep: Don't forget to indent this stuff, at the very least - // it should not start in the first column! - virtual CosNotifyChannelAdmin::EventChannel_ptr MyChannel ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ProxyIDSeq * pull_consumers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ProxyIDSeq * push_consumers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotifyChannelAdmin::ProxyConsumer_ptr get_proxy_consumer ( - CosNotifyChannelAdmin::ProxyID proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ProxyNotFound - )); - -virtual CosNotifyChannelAdmin::ProxyConsumer_ptr obtain_notification_pull_consumer ( - CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )); - -virtual CosNotifyChannelAdmin::ProxyConsumer_ptr obtain_notification_push_consumer ( - CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::AdminLimitExceeded - )); - -virtual void destroy ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosNotification::QoSProperties * get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - -virtual void validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - -virtual void offer_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )); - -virtual CosNotifyFilter::FilterID add_filter ( - CosNotifyFilter::Filter_ptr new_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - -virtual CosNotifyFilter::Filter_ptr get_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - -virtual CosNotifyFilter::FilterIDSeq * get_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual void remove_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -virtual CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -protected: - // = Helper methods - /// Obtain a proxy pushconsumer object - CORBA::Object_ptr obtain_proxy_pushconsumer_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL); - - /// Obtain a structured proxy pushconsumer object. - CORBA::Object_ptr obtain_struct_proxy_pushconsumer_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL); - - /// Obtain a sequence pushconsumer object - CORBA::Object_ptr obtain_sequence_proxy_pushconsumer_i (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL); - - // = Data members - /// The channel to which we belong. - TAO_Notify_EventChannel_i* event_channel_; - - /// The factory for channel objects. - TAO_Notify_CO_Factory* channel_objects_factory_; - - /// The factory for POA based containers. - TAO_Notify_POA_Factory* poa_factory_; - - /// The locking strategy. - ACE_Lock* lock_; - - /// Flag to tell if the child poa's should be destroyed. - CORBA::Boolean destory_child_POAs_; - - /// The inter filter operator to use. - CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator_; - - /// My ID. - CosNotifyChannelAdmin::AdminID my_id_; - - /// This is the POA in which we live. - PortableServer::POA_var my_POA_; - - /// The POA in which all our push consumers live. - /// We create and own this POA. - PortableServer::POA_var proxy_pushconsumer_POA_; - - // @@ Pradeep: you may want to use a typedef for that template. - /// Id generator for proxy push consumers. - TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::ProxyID, - CosNotifyChannelAdmin::ProxyIDSeq> proxy_pushconsumer_ids_; - - /// Handle QoS admin methods. - TAO_Notify_QoSAdmin_i qos_admin_; - - /// Handles the Filter Admin methods. - TAO_Notify_FilterAdmin_i filter_admin_; -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_SUPPLIERADMIN_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Update_Dispatch_Command.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Update_Dispatch_Command.cpp deleted file mode 100644 index 9df8ecd1499..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Update_Dispatch_Command.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ - -#include "Notify_Update_Dispatch_Command.h" -#include "Notify_Collection.h" -#include "Notify_Listeners.h" -#include "Notify_Event.h" - -ACE_RCSID(Notify, Notify_Update_Dispatch_Command, "$Id$") - -TAO_Notify_Update_Dispatch_Command::TAO_Notify_Update_Dispatch_Command (TAO_Notify_UpdateListener* update_listener, TAO_Notify_EventType_List& added, TAO_Notify_EventType_List& removed) - :TAO_Notify_Command (0,0), - update_listener_ (update_listener), - added_ (added), - removed_ (removed) -{ - update_listener_->_incr_refcnt (); -} - -TAO_Notify_Update_Dispatch_Command::~TAO_Notify_Update_Dispatch_Command () -{ - update_listener_->_decr_refcnt (); -} - -int -TAO_Notify_Update_Dispatch_Command::execute (ACE_ENV_SINGLE_ARG_DECL) -{ - this->update_listener_->dispatch_update (this->added_, this->removed_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Update_Dispatch_Command.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Update_Dispatch_Command.h deleted file mode 100644 index 33eb47b5d8f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Update_Dispatch_Command.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Update_Dispatch_Command.h - * - * $Id$ - * - * - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_UPDATE_DISPATCH_COMMAND_H -#define TAO_NOTIFY_UPDATE_DISPATCH_COMMAND_H -#include "ace/pre.h" -#include "Notify_Command.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "notify_export.h" -#include "tao/corba.h" -#include "Notify_Collection.h" - -class TAO_Notify_UpdateListener; - - /** - * @class TAO_Notify_Update_Dispatch_Command - * - * @brief TAO_Notify_Update_Dispatch_Command - * - */ -class TAO_Notify_Export TAO_Notify_Update_Dispatch_Command : public TAO_Notify_Command -{ - public: - // = Initialization and termination code - TAO_Notify_Update_Dispatch_Command (TAO_Notify_UpdateListener* listener, TAO_Notify_EventType_List& added, TAO_Notify_EventType_List& removed); - - ~TAO_Notify_Update_Dispatch_Command (); - - /// Command callback - virtual int execute (ACE_ENV_SINGLE_ARG_DECL); - -protected: - // = Data Members - TAO_Notify_UpdateListener* update_listener_; - TAO_Notify_EventType_List added_; - TAO_Notify_EventType_List removed_; -}; - -/********************************************************************/ - -#include "ace/post.h" -#endif /* TAO_NOTIFY_UPDATE_DISPATCH_COMMAND_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Worker_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Worker_Task.cpp deleted file mode 100644 index 4c23104c958..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Worker_Task.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -#include "Notify_Worker_Task.h" -#include "Notify_Command.h" -#include "Notify_AdminProperties.h" -#include "Notify_QoSAdmin_i.h" - -ACE_RCSID(Notify, Notify_Worker_Task, "$Id$") - -TAO_Notify_Worker_Task::TAO_Notify_Worker_Task (void) -{ -} - -TAO_Notify_Worker_Task::~TAO_Notify_Worker_Task () -{ -} - -int -TAO_Notify_Worker_Task::init_task (TAO_Notify_AdminProperties* const, - TAO_Notify_QoSAdmin_i* const) -{ - return 0; -} - -void -TAO_Notify_Worker_Task::shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ -} - -int -TAO_Notify_Worker_Task::process_event (TAO_Notify_Command *mb ACE_ENV_ARG_DECL, ACE_Time_Value * /*tv*/) -{ - int result = mb->execute (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - ACE_Message_Block::release (mb); - return result; -} - -void -TAO_Notify_Worker_Task::update_admin (TAO_Notify_AdminProperties& /*admin*/) -{ -} - -void -TAO_Notify_Worker_Task::update_qos (TAO_Notify_QoSAdmin_i& /*qos_admin*/) -{ -} - diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Worker_Task.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_Worker_Task.h deleted file mode 100644 index cac105b333d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Worker_Task.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Notify_Worker_Task.h - * - * $Id$ - * - * Worker task handles command execution. - * - * - * @author Pradeep Gore <pradeep@cs.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_NOTIFY_WORKER_TASK_H -#define TAO_NOTIFY_WORKER_TASK_H - -#include "ace/pre.h" -#include "ace/Task.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "Notify_Command.h" -#include "notify_export.h" - -class TAO_Notify_AdminProperties; -class TAO_Notify_QoSAdmin_i; - -/** - * @class TAO_Notify_Worker_Task - * - * @brief TAO_Notify_Worker_Task - * - * A worker task that we use for various event processing jobs. - * Also see TAO_Notify_Command - This task executes Notify_Command objects. - * This implementation simply executes the command. - */ -class TAO_Notify_Export TAO_Notify_Worker_Task -{ -public: - // = Initialization and termination code - /// Constructor. - TAO_Notify_Worker_Task (void); - virtual ~TAO_Notify_Worker_Task (); - - /// Init the task - virtual int init_task (TAO_Notify_AdminProperties* const admin_properties, - TAO_Notify_QoSAdmin_i* const qos_properties); - - /// Shutdown this task. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Process the command. - virtual int process_event (TAO_Notify_Command *mb ACE_ENV_ARG_DECL, ACE_Time_Value *tv = 0); - - virtual void update_admin (TAO_Notify_AdminProperties& admin); - virtual void update_qos (TAO_Notify_QoSAdmin_i& qos_admin); - -}; - -#include "ace/post.h" -#endif /* TAO_NOTIFY_WORKER_TASK_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object.cpp b/TAO/orbsvcs/orbsvcs/Notify/Object.cpp deleted file mode 100644 index 825f6ab6075..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Object.cpp +++ /dev/null @@ -1,265 +0,0 @@ -// $Id$ - -#include "Object.h" -#include "POA_Helper.h" -#include "Worker_Task.h" -#include "Properties.h" -#include "Builder.h" -#include "ThreadPool_Task.h" -#include "Reactive_Task.h" -#include "tao/debug.h" - -#if ! defined (__ACE_INLINE__) -#include "Object.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Object, "$Id$") - -TAO_NS_Object::TAO_NS_Object (void) - : event_manager_ (0) - , admin_properties_ (0) - , id_ (0) - , poa_ (0) - , proxy_poa_ (0) - , own_proxy_poa_ (0) - , object_poa_ (0) - , own_object_poa_ (0) - , worker_task_ (0) - , own_worker_task_ (0) - , shutdown_ (0) -{ - if (TAO_debug_level > 2 ) - ACE_DEBUG ((LM_DEBUG,"object:%x created\n", this )); -} - -TAO_NS_Object::~TAO_NS_Object () -{ - if (TAO_debug_level > 2 ) - ACE_DEBUG ((LM_DEBUG,"object:%x destroyed\n", this )); -} - -void -TAO_NS_Object::init (TAO_NS_Object* parent) -{ - this->event_manager_ = parent->event_manager_; - this->admin_properties_ = parent->admin_properties_; - - this->poa_ = parent->poa_; - this->object_poa_ = parent->object_poa_; - this->proxy_poa_ = parent->proxy_poa_; - this->worker_task_ = parent->worker_task_; - - if (this->worker_task_) - this->worker_task_->_incr_refcnt (); - - // Pass QoS - parent->qos_properties_.transfer (this->qos_properties_); - this->qos_changed (this->qos_properties_); -} - -CORBA::Object_ptr -TAO_NS_Object::activate (PortableServer::Servant servant ACE_ENV_ARG_DECL) -{ - return this->poa_->activate (servant, this->id_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Object::deactivate (ACE_ENV_SINGLE_ARG_DECL) -{ - this->poa_->deactivate (this->id_ ACE_ENV_ARG_PARAMETER); -} - -int -TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - { - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 1); - - if (this->shutdown_ == 1) - return 1; // Another thread has already run shutdown. - - this->shutdown_ = 1; - } - - this->deactivate (ACE_ENV_SINGLE_ARG_PARAMETER); - - this->shutdown_worker_task (); - this->shutdown_proxy_poa (); - - return 0; -} - -CORBA::Object_ptr -TAO_NS_Object::ref (ACE_ENV_SINGLE_ARG_DECL) -{ - return this->poa_->id_to_reference (this->id_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_Object::shutdown_worker_task (void) -{ - // Only do this if we are the owner. - if (this->own_worker_task_ == 1) - { - this->worker_task_->shutdown (); // the worker deletes itself when its <close> hook is eventually called. - } - - if (this->worker_task_) - this->worker_task_->_decr_refcnt (); -} - -void -TAO_NS_Object::shutdown_proxy_poa (void) -{ - if (this->own_proxy_poa_ == 1) - { - ACE_TRY_NEW_ENV - { - this->proxy_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - delete this->proxy_poa_; - } - ACE_CATCHANY - { - if (TAO_debug_level > 2) - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Proxy shutdown error (%P|%t)\n"); - } - ACE_ENDTRY; - } -} - -void -TAO_NS_Object::shutdown_object_poa (void) -{ - if (this->own_object_poa_ == 1) - { - ACE_TRY_NEW_ENV - { - this->object_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - delete this->object_poa_; - } - ACE_CATCHANY - { - if (TAO_debug_level > 2) - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Proxy shutdown error (%P|%t)\n"); - } - ACE_ENDTRY; - } -} - -void -TAO_NS_Object::worker_task_own (TAO_NS_Worker_Task* worker_task) -{ - this->worker_task (worker_task); - - // claim ownership. - this->own_worker_task_ = 1; -} - -void -TAO_NS_Object::worker_task (TAO_NS_Worker_Task* worker_task) -{ - // shutdown the current worker. - this->shutdown_worker_task (); - - this->worker_task_ = worker_task; - - this->own_worker_task_ = 0; - - if (this->worker_task_) - this->worker_task_->_incr_refcnt (); -} - -void -TAO_NS_Object::proxy_poa_own (TAO_NS_POA_Helper* proxy_poa) -{ - // shutdown current proxy poa. - this->shutdown_proxy_poa (); - - this->proxy_poa_ = proxy_poa; - - // claim ownership. - own_proxy_poa_ = 1; -} - -void -TAO_NS_Object::object_poa_own (TAO_NS_POA_Helper* object_poa) -{ - // shutdown current object poa. - this->shutdown_object_poa (); - - // shutdown current object poa - this->object_poa_ = object_poa; - - // claim ownership. - this->own_object_poa_ = 1; -} - -void -TAO_NS_Object::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) -{ - CosNotification::PropertyErrorSeq err_seq; - - TAO_NS_QoSProperties new_qos_properties; - - if (new_qos_properties.init (qos, err_seq) == -1) - ACE_THROW (CORBA::INTERNAL ()); - - // Apply the appropriate concurrency QoS - if (new_qos_properties.thread_pool ().is_valid ()) - { - if (new_qos_properties.thread_pool ().value ().static_threads == 0) - TAO_NS_PROPERTIES::instance()->builder()->apply_reactive_concurrency (*this ACE_ENV_ARG_PARAMETER); - else - TAO_NS_PROPERTIES::instance()->builder()-> - apply_thread_pool_concurrency (*this, new_qos_properties.thread_pool ().value () ACE_ENV_ARG_PARAMETER); - } - else if (new_qos_properties.thread_pool_lane ().is_valid ()) - TAO_NS_PROPERTIES::instance()->builder()-> - apply_lane_concurrency (*this, new_qos_properties.thread_pool_lane ().value () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Update the Thread Task's QoS properties.. - this->worker_task_->update_qos_properties (new_qos_properties); - - // Inform subclasses of QoS changed. - this->qos_changed (new_qos_properties); - - // Init the the overall QoS on this object. - if (new_qos_properties.copy (this->qos_properties_) == -1) - ACE_THROW (CORBA::INTERNAL ()); - - if (err_seq.length () > 0) // Unsupported Property - ACE_THROW (CosNotification::UnsupportedQoS (err_seq)); -} - -CosNotification::QoSProperties* -TAO_NS_Object::get_qos (ACE_ENV_SINGLE_ARG_DECL) -{ - CosNotification::QoSProperties_var properties; - - ACE_NEW_THROW_EX (properties, - CosNotification::QoSProperties (), - CORBA::NO_MEMORY ()); - - this->qos_properties_.populate (properties); - - return properties._retn (); -} - -void -TAO_NS_Object::qos_changed (const TAO_NS_QoSProperties& /*qos_properties*/) -{ - // NOP. -} - -TAO_NS_Timer* -TAO_NS_Object::timer (void) -{ - return this->worker_task_->timer (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object.h b/TAO/orbsvcs/orbsvcs/Notify/Object.h deleted file mode 100644 index 43c2906996b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Object.h +++ /dev/null @@ -1,164 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Object.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_OBJECT_H -#define TAO_NS_OBJECT_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/Servant_Base.h" -#include "orbsvcs/NotifyExtC.h" -#include "QoSProperties.h" -#include "AdminProperties.h" -#include "Refcountable.h" - -class TAO_NS_POA_Helper; -class TAO_NS_Worker_Task; -class TAO_NS_Event_Manager; -class TAO_NS_Timer; - -/** - * @class TAO_NS_Object - * - * @brief Base Object for RT_Notify's CORBA Objects. - * - */ -class TAO_Notify_Export TAO_NS_Object : public TAO_NS_Refcountable -{ - friend class TAO_NS_Builder; - -public: - /// Id for Objects. - typedef CORBA::Long ID; - - /// Constuctor - TAO_NS_Object (void); - - /// Destructor - virtual ~TAO_NS_Object (void); - - /// This Object's ID - ID id (void); - - /// Activate - virtual CORBA::Object_ptr activate (PortableServer::Servant servant ACE_ENV_ARG_DECL); - - /// Deactivate - void deactivate (ACE_ENV_SINGLE_ARG_DECL); - - /// Have we been shutdown. returns 1 if shutdown. - int has_shutdown (void); - - /// Get CORBA Ref. - CORBA::Object_ptr ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Get Worker Task. - TAO_NS_Worker_Task* worker_task (void); - - /// Get the POA assigned to us. - TAO_NS_POA_Helper* poa (void); - - /// Setting the proxy_poa_ gives ownership to this class. - void proxy_poa_own (TAO_NS_POA_Helper* proxy_poa); - - /// Accessor for the proxy_poa_ - TAO_NS_POA_Helper* proxy_poa (void); - - /// Setting the object_poa_ gives ownership to this class. - void object_poa_own (TAO_NS_POA_Helper* object_poa); - - /// Accessor for the object_poa_ - TAO_NS_POA_Helper* object_poa (void); - - /// Set Worker Task. This object assume ownership of the set object. - void worker_task_own (TAO_NS_Worker_Task* worker_task); - - /// Set Worker Task. Does not assume ownership. - void worker_task (TAO_NS_Worker_Task* worker_task); - - /// Set the QoS Properties. - virtual void set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL); - - /// Get the QoS Properties. - CosNotification::QoSProperties* get_qos (ACE_ENV_SINGLE_ARG_DECL); - - /// Obtain the Timer manager associated with this object. - virtual TAO_NS_Timer* timer (void); - - /// shutdown. Returns 1 ifif the shutdown was already run once before. - virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL); - -protected: - /// Init this object with data from <rhs>. - void init (TAO_NS_Object* parent); - - /// Shutdown the current worker task and delete it if we own it. - void shutdown_worker_task (void); - - /// Shutdown the current proxy poa. - void shutdown_proxy_poa (void); - - /// Shutdown the current object poa. - void shutdown_object_poa (void); - - /// Notification that can be overridden by subclasses to be informed that <qos_properties_> have been modified. - virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties); - - ///= Protected data members. - - /// The event manager. - TAO_NS_Event_Manager* event_manager_; - - /// Admin Properties. - TAO_NS_AdminProperties_var admin_properties_; - - /// QoS Properties. - TAO_NS_QoSProperties qos_properties_; - - /// Id assigned to this object - ID id_; - - /// The POA in which the object is activated. - TAO_NS_POA_Helper* poa_; - - /// The POA in which the proxys are activated. - TAO_NS_POA_Helper* proxy_poa_; - - /// Flag that indicates if we own <proxy_poa_> - int own_proxy_poa_; - - /// The POA in which the object's children are activated. - TAO_NS_POA_Helper* object_poa_; - - /// Flag that indicates if we own <object_poa_> - int own_object_poa_; - - /// Worker Task. - TAO_NS_Worker_Task* worker_task_; - - /// Ownership flag - int own_worker_task_; - - /// Are we shutdown (i,e. scheduled for destroy). - int shutdown_; -}; - -#if defined (__ACE_INLINE__) -#include "Object.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_OBJECT_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object.inl b/TAO/orbsvcs/orbsvcs/Notify/Object.inl deleted file mode 100644 index 251c0655e6d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Object.inl +++ /dev/null @@ -1,37 +0,0 @@ -// $Id$ - -ACE_INLINE CORBA::Long -TAO_NS_Object::id (void) -{ - return id_; -} - -ACE_INLINE TAO_NS_Worker_Task* -TAO_NS_Object::worker_task (void) -{ - return this->worker_task_; -} - -ACE_INLINE TAO_NS_POA_Helper* -TAO_NS_Object::poa (void) -{ - return this->poa_; -} - -ACE_INLINE TAO_NS_POA_Helper* -TAO_NS_Object::object_poa (void) -{ - return this->object_poa_; -} - -ACE_INLINE TAO_NS_POA_Helper* -TAO_NS_Object::proxy_poa (void) -{ - return this->proxy_poa_; -} - -ACE_INLINE int -TAO_NS_Object::has_shutdown (void) -{ - return this->shutdown_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp deleted file mode 100644 index 372773f3af6..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_OBJECT_T_CPP -#define TAO_NS_OBJECT_T_CPP - -#include "Object_T.h" -#include "orbsvcs/ESF/ESF_RefCount_Guard.h" - -#if ! defined (__ACE_INLINE__) -#include "Object_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Object, "$Id$") - -template <class TYPE, class PARENT> -TAO_NS_Object_T<TYPE, PARENT>::TAO_NS_Object_T (void) - :parent_ (0) -{ -} - -template <class TYPE, class PARENT> -TAO_NS_Object_T<TYPE, PARENT>::~TAO_NS_Object_T () -{ -} - -template <class TYPE, class PARENT> void -TAO_NS_Object_T<TYPE, PARENT>::destroy (TYPE *type ACE_ENV_ARG_DECL) -{ - TAO_NS_Object_RefCount_Guard guard (this->refcount_); - - this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - if (parent_) - parent_->remove (type ACE_ENV_ARG_PARAMETER); -} - -#endif /* TAO_NS_OBJECT_T_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object_T.h b/TAO/orbsvcs/orbsvcs/Notify/Object_T.h deleted file mode 100644 index 88692b98328..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Object_T.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Object_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_OBJECT_T_H -#define TAO_NS_OBJECT_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Object.h" -#include "Refcountable.h" - -typedef int TAO_NS_NULL_PARENT; - -/** - * @class TAO_NS_Object_T - * - * @brief Base attributes of all EC participants. - * - */ -template <class TYPE, class PARENT> -class TAO_Notify_Export TAO_NS_Object_T : public virtual TAO_NS_Object, public TAO_NS_Refcountable -{ -public: - /// Constuctor - TAO_NS_Object_T (void); - - /// Destructor - virtual ~TAO_NS_Object_T (); - - /// destroy <type> - void destroy (TYPE* type ACE_ENV_ARG_DECL); - -protected: - /// = Data Members - - /// Parent - PARENT* parent_; -}; - -#if defined (__ACE_INLINE__) -#include "Object_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Object_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Object_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_OBJECT_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Object_T.inl deleted file mode 100644 index d50310e9cf1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Object_T.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Object_T.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp deleted file mode 100644 index 36b950eec2b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// $Id$ - -#include "POA_Helper.h" - -#if ! defined (__ACE_INLINE__) -#include "POA_Helper.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_POA_Helper, "$Id$") - -#include "tao/debug.h" - -TAO_NS_POA_Helper::TAO_NS_POA_Helper (void) -{ -} - -TAO_NS_POA_Helper::~TAO_NS_POA_Helper () -{ - -} - -void -TAO_NS_POA_Helper::init (PortableServer::POA_ptr parent_poa, const char* poa_name ACE_ENV_ARG_DECL) -{ - CORBA::PolicyList policy_list (2); - - this->set_policy (parent_poa, policy_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->create_i (parent_poa, poa_name, policy_list ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_POA_Helper::init (PortableServer::POA_ptr parent_poa ACE_ENV_ARG_DECL) -{ - char child_poa_name[32]; - ACE_OS_String::itoa (ACE_OS::rand (), child_poa_name, 10); - - this->init (parent_poa, child_poa_name ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_POA_Helper::set_policy (PortableServer::POA_ptr parent_poa, CORBA::PolicyList &policy_list ACE_ENV_ARG_DECL) -{ - policy_list.length (2); - - policy_list[0] = - parent_poa->create_id_uniqueness_policy (PortableServer::UNIQUE_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policy_list[1] = - parent_poa->create_id_assignment_policy (PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void -TAO_NS_POA_Helper::create_i (PortableServer::POA_ptr parent_poa, const char* poa_name, CORBA::PolicyList &policy_list ACE_ENV_ARG_DECL) -{ - PortableServer::POAManager_var manager = - parent_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - // Create the child POA. - this->poa_ = parent_poa->create_POA (poa_name, - manager.in (), - policy_list - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Created POA : %s\n", this->poa_->the_name ())); - /* - // Destroy the policies - for (CORBA::ULong index = 0; index < policy_list.length (); ++index) - { - policy_list[index]->destroy (); - } - */ -} - -PortableServer::ObjectId * -TAO_NS_POA_Helper::long_to_ObjectId (CORBA::Long id ACE_ENV_ARG_DECL) const -{ - // Modified code from string_to_ObjectId .. - // - - CORBA::ULong buffer_size = 4; - - // Create the buffer for the Id - CORBA::Octet *buffer = PortableServer::ObjectId::allocbuf (buffer_size); - - // Copy the contents - ACE_OS::memcpy (buffer, (char*)&id, buffer_size); - - // @@ Pradeep: TAO guarantees that Long is 4 bytes wide, but the - // standard only guarantees that it is at least 4 bytes wide. You - // may want to think about that.... - - // Create and return a new ID - PortableServer::ObjectId *obj_id = 0; - ACE_NEW_THROW_EX (obj_id, - PortableServer::ObjectId (buffer_size, - buffer_size, - buffer, - 1), - CORBA::NO_MEMORY ()); - - return obj_id; -} - -CORBA::Object_ptr -TAO_NS_POA_Helper::activate (PortableServer::Servant servant, CORBA::Long& id ACE_ENV_ARG_DECL) -{ - // Generate a new ID. - id = this->id_factory_.id (); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Activating object with id = %d in POA : %s\n", id, this->poa_->the_name ())); - - // Convert CORBA::Long to ObjectId - PortableServer::ObjectId_var oid = - this->long_to_ObjectId (id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - poa_->activate_object_with_id (oid.in (), - servant - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return poa_->id_to_reference (oid.in () - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_POA_Helper::deactivate (CORBA::Long id ACE_ENV_ARG_DECL) const -{ - // Convert CORBA::Long to ObjectId - PortableServer::ObjectId_var oid = - this->long_to_ObjectId (id ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - poa_->deactivate_object (oid.in () ACE_ENV_ARG_PARAMETER); -} - -CORBA::Object_ptr -TAO_NS_POA_Helper::id_to_reference (CORBA::Long id ACE_ENV_ARG_DECL) const -{ - // Convert CORBA::Long to ObjectId - PortableServer::ObjectId_var oid = - this->long_to_ObjectId (id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return poa_->id_to_reference (oid.in () - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_POA_Helper::destroy (ACE_ENV_SINGLE_ARG_DECL) -{ - poa_->destroy (1,0 ACE_ENV_ARG_PARAMETER); - // The <wait_for_completion> flag = 0 -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.h b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.h deleted file mode 100644 index 122286482f3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file POA_Helper.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_POA_Helper_H -#define TAO_NS_POA_Helper_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Copy_Disabled.h" -#include "tao/PortableServer/PortableServer.h" -#include "ID_Factory.h" - -/** - * @class TAO_NS_POA_Helper - * - * @brief POA Abstraction. - * - */ -class TAO_Notify_Export TAO_NS_POA_Helper : private ACE_Copy_Disabled -{ -public: - /// Default Constructor - TAO_NS_POA_Helper (void); - - /// Create a new PortableServer::POA. - void init (PortableServer::POA_ptr parent_poa, const char* poa_name ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. The name is chosen at random. - void init (PortableServer::POA_ptr parent_poa ACE_ENV_ARG_DECL); - - /// Destructor - virtual ~TAO_NS_POA_Helper (); - - /// Get underlying POA - PortableServer::POA_ptr poa (void); - - /// Destroy underlying POA. - void destroy (ACE_ENV_SINGLE_ARG_DECL); - - /// Activate Object, the POA will assign an ID and return its value. - CORBA::Object_ptr activate (PortableServer::Servant servant, CORBA::Long& id ACE_ENV_ARG_DECL); - - /// Deactivate Object with ID - void deactivate (CORBA::Long id ACE_ENV_ARG_DECL) const; - - /// Convert ID to reference. - CORBA::Object_ptr id_to_reference (CORBA::Long id ACE_ENV_ARG_DECL) const; - -protected: - /// Set default POA policies. - virtual void set_policy (PortableServer::POA_ptr parent_poa, CORBA::PolicyList &policy_list ACE_ENV_ARG_DECL); - - /// Apply the polices and create child POA. - void create_i (PortableServer::POA_ptr parent_poa, const char* poa_name, CORBA::PolicyList &policy_list ACE_ENV_ARG_DECL); - - /// POA - PortableServer::POA_var poa_; - - /// ID Factory - TAO_NS_ID_Factory id_factory_; - - /// Convert id to ObjectID - PortableServer::ObjectId* long_to_ObjectId (CORBA::Long id ACE_ENV_ARG_DECL) const; -}; - -#if defined (__ACE_INLINE__) -#include "POA_Helper.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_POA_Helper_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.inl b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.inl deleted file mode 100644 index 3fc996c803c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -ACE_INLINE PortableServer::POA_ptr -TAO_NS_POA_Helper::poa (void) -{ - return this->poa_.in (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp deleted file mode 100644 index 4a26d732d85..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// $Id$ - -#include "Peer.h" - -#if ! defined (__ACE_INLINE__) -#include "Peer.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Peer, "$id$") - -#include "tao/debug.h" -#include "Proxy.h" - -TAO_NS_Peer::TAO_NS_Peer (void) -{ -} - -TAO_NS_Peer::~TAO_NS_Peer () -{ -} - -void -TAO_NS_Peer::qos_changed (const TAO_NS_QoSProperties& /*qos_properties*/) -{ - // NOP. -} - -void -TAO_NS_Peer::shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - // NOP. -} - -void -TAO_NS_Peer::handle_dispatch_exception (ACE_ENV_SINGLE_ARG_DECL) -{ - // Sever all association when a remote client misbehaves. Other strategies like reties are possible but not implemented. - this->proxy ()->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_NS_Peer::dispatch_updates (const TAO_NS_EventTypeSeq & added, const TAO_NS_EventTypeSeq & removed ACE_ENV_ARG_DECL) -{ - TAO_NS_EventTypeSeq subscribed_types ; - this->proxy ()->subscribed_types (subscribed_types ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY - { - CosNotification::EventTypeSeq cos_added; - CosNotification::EventTypeSeq cos_removed; - - const TAO_NS_EventType& special = TAO_NS_EventType::special (); - - // Don;t inform of types that we already know about. - // E.g. if we're subscribed for {A,B,C,F} - // and we receive an update with added list {A,B,G} - // then, we should only send {G} because peer already knows about {A, B} - // However if we're subscribed for everything, send all kinds of adds. - - // Don;t inform of removed types that we don;t care about. - // e.g. if we're currently subscribed for {A,B,C,F} - // and we receive an update with removed list {A, B, D} - // then, we should only send {A,B} because the peer is not interested in D. - // However if we're subscribed for everything, send all kinds of removes. - - TAO_NS_EventTypeSeq added_result = added; - TAO_NS_EventTypeSeq removed_result; - - if (subscribed_types.find (special) != 0) - { - added_result.remove_seq (subscribed_types); - removed_result.intersection (subscribed_types, removed); - } - else - { - removed_result = removed; - } - - added_result.populate_no_special (cos_added); - removed_result.populate_no_special (cos_removed); - - if (cos_added.length () != 0 || cos_removed.length () != 0) - { - TAO_NS_Refcountable_Guard ref_guard(*this->proxy ()); // Protect this object from being destroyed in this scope. - - this->dispatch_updates_i (cos_added, cos_removed ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - } - ACE_CATCH (CORBA::OBJECT_NOT_EXIST, not_exist) - { - this->handle_dispatch_exception (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::NO_IMPLEMENT, no_impl) - { - // The peer does not implement the offer/subscription_change method - // Do nothing. Later, perhaps set a flag that helps us decide if we should dispatch_updates_i. - } - ACE_CATCH (CORBA::SystemException, sysex) - { - this->handle_dispatch_exception (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Do nothing - } - ACE_ENDTRY; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Peer.h b/TAO/orbsvcs/orbsvcs/Notify/Peer.h deleted file mode 100644 index 13dd08e5ab2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Peer.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Peer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PEER_H -#define TAO_NS_PEER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotificationC.h" -#include "EventTypeSeq.h" - -class TAO_NS_Proxy; -class TAO_NS_QoSProperties; -class TAO_NS_Peer; - -/** - * @class TAO_NS_Peer - * - * @brief Base class for Supplier and Consumer classes. - * This object delegates its reference count to its creator proxy object. - * - */ -class TAO_Notify_Export TAO_NS_Peer -{ -public: - /// Constuctor - TAO_NS_Peer (void); - - /// Destructor - virtual ~TAO_NS_Peer (); - - /// This method sigantures deliberately match the RefCounting methods required for ESF Proxy - CORBA::ULong _incr_refcnt (void); - CORBA::ULong _decr_refcnt (void); - - /// Release - virtual void release (void) = 0; - - /// Shutdown the peer. - virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Access Proxy. - virtual TAO_NS_Proxy* proxy (void) = 0; - - // Dispatch updates - virtual void dispatch_updates (const TAO_NS_EventTypeSeq & added, - const TAO_NS_EventTypeSeq & removed - ACE_ENV_ARG_DECL); - - /// QoS changed notification from the Peer. - virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties); - - /// Handle dispatch exceptions. - void handle_dispatch_exception (ACE_ENV_SINGLE_ARG_DECL); - -protected: - /// Implementation of Peer specific dispatch_updates - virtual void dispatch_updates_i (const CosNotification::EventTypeSeq& added, - const CosNotification::EventTypeSeq& removed - ACE_ENV_ARG_DECL) = 0; -}; - -#if defined (__ACE_INLINE__) -#include "Peer.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PEER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Peer.inl b/TAO/orbsvcs/orbsvcs/Notify/Peer.inl deleted file mode 100644 index 9fc05856b37..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Peer.inl +++ /dev/null @@ -1,15 +0,0 @@ -// $Id$ - -#include "Proxy.h" - -ACE_INLINE CORBA::ULong -TAO_NS_Peer::_incr_refcnt (void) -{ - return this->proxy ()->_incr_refcnt (); -} - -ACE_INLINE CORBA::ULong -TAO_NS_Peer::_decr_refcnt (void) -{ - return this->proxy ()->_decr_refcnt (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.cpp deleted file mode 100644 index e2f9c7371ec..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// $Id$ - -#include "Pending_Worker_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Pending_Worker_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Pending_Worker_T, "$id$") - -#include "tao/debug.h" -#include "Properties.h" - -/*****************************************************************************************/ - -template <class PEER> void -TAO_NS_Dispatch_Pending_Worker_T<PEER>::work (PEER* peer ACE_ENV_ARG_DECL) -{ - peer->dispatch_pending (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -/*****************************************************************************************/ - -template <class PEER> -TAO_NS_Pending_Worker_T<PEER>::TAO_NS_Pending_Worker_T (void) - :dispatch_observer_ (0), done_ (0), suspended_ (0) -{ -} - -template <class PEER> -TAO_NS_Pending_Worker_T<PEER>::~TAO_NS_Pending_Worker_T () -{ -} - -template <class PEER> void -TAO_NS_Pending_Worker_T<PEER>::init (TAO_NS_Dispatch_Observer_T<PEER>* dispatch_observer, ACE_Time_Value& update_period ACE_ENV_ARG_DECL) -{ - this->dispatch_observer_ = dispatch_observer; - this->update_period_ = update_period; - - long flags = THR_NEW_LWP | THR_JOINABLE; - - flags |= - TAO_NS_PROPERTIES::instance()->scope_policy () | - TAO_NS_PROPERTIES::instance()->sched_policy (); - - // Become an active object. - if (this->ACE_Task <ACE_SYNCH>::activate (flags, - 1, - 0, - ACE_DEFAULT_THREAD_PRIORITY) == -1) - { - if (TAO_debug_level > 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Insufficient privilege.\n"))); - else - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("(%t) task activation at priority %d failed\n") - ACE_TEXT ("exiting!\n%a"), - ACE_DEFAULT_THREAD_PRIORITY)); - } - - ACE_THROW (CORBA::BAD_PARAM ()); - } -} - -template <class PEER> int -TAO_NS_Pending_Worker_T<PEER>::svc (void) -{ - ACE_DECLARE_NEW_CORBA_ENV; - - while (!this->done_) - { - ACE_OS::sleep (this->update_period_); - - if (this->suspended_ == 1) - continue; - - TAO_NS_Dispatch_Pending_Worker_T<PEER> worker; - - TAO_NS_Dispatch_Observer_T<PEER>::PEER_COLLECTION* peer_collection - = this->dispatch_observer_->peer_collection (); - - if (peer_collection != 0) - peer_collection->for_each (&worker ACE_ENV_ARG_PARAMETER); - } - - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "Exiting TAO_NS_Pending_Worker_T<PEER>::svc \n")); - } - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.h b/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.h deleted file mode 100644 index 365b66c0b27..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.h +++ /dev/null @@ -1,102 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Pending_Worker_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PENDING_WORKER_T_H -#define TAO_NS_PENDING_WORKER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Types.h" -#include "ace/Task.h" -#include "orbsvcs/ESF/ESF_Worker.h" - -template <class PEER> class TAO_NS_Dispatch_Observer_T; - -/** - * @class TAO_NS_Dispatch_Pending_Worker_T - * - * @brief Ask each PEER to dispatch pending updates. - * - */ -template <class PEER> -class TAO_Notify_Export TAO_NS_Dispatch_Pending_Worker_T : public TAO_ESF_Worker<PEER> -{ -protected: - ///= TAO_ESF_Worker method - void work (PEER* peer ACE_ENV_ARG_DECL); -}; - -/*******************************************************************************************/ - -/** - * @class TAO_NS_Pending_Worker_T - * - * @brief Periodic Task that obtains the list of pending PEER's from the dispatch_observer and dispatches pending events/updates. - * - */ -template <class PEER> -class TAO_Notify_Export TAO_NS_Pending_Worker_T : public ACE_Task<ACE_SYNCH> -{ -public: - /// Constuctor - TAO_NS_Pending_Worker_T (void); - - /// Destructor - ~TAO_NS_Pending_Worker_T (); - - /// Init - void init (TAO_NS_Dispatch_Observer_T<PEER>* dispatch_observer, ACE_Time_Value& update_period ACE_ENV_ARG_DECL); - - /// Shutdown - void shutdown (void); - - /// Suspend - void worker_suspend (void); - - /// Resume - void worker_resume (void); - -protected: - /// task svc - virtual int svc (void); - - /// The observer that logs PEERs that need updates. - TAO_NS_Dispatch_Observer_T<PEER>* dispatch_observer_; - - /// The period at which updates are send. - ACE_Time_Value update_period_; - - /// Flag that we should shutdown. - CORBA::Boolean done_; - - /// Flag that we are suspended. - CORBA::Boolean suspended_; -}; - -#if defined (__ACE_INLINE__) -#include "Pending_Worker_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Pending_Worker_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Pending_Worker_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_PENDING_WORKER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.inl deleted file mode 100644 index c937771d04e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Pending_Worker_T.inl +++ /dev/null @@ -1,22 +0,0 @@ -// $Id$ - -#include "Pending_Worker_T.h" - -ACE_INLINE template <class PEER> void -TAO_NS_Pending_Worker_T<PEER>::shutdown (void) -{ - this->done_ = 1; - this->wait (); -} - -ACE_INLINE template <class PEER> void -TAO_NS_Pending_Worker_T<PEER>::worker_suspend (void) -{ - this->suspended_ = 1; -} - -ACE_INLINE template <class PEER> void -TAO_NS_Pending_Worker_T<PEER>::worker_resume (void) -{ - this->suspended_ = 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Properties.cpp b/TAO/orbsvcs/orbsvcs/Notify/Properties.cpp deleted file mode 100644 index 421fd42a00a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Properties.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "Properties.h" -#include "orbsvcs/NotifyExtC.h" -#include "tao/debug.h" - -#if ! defined (__ACE_INLINE__) -#include "Properties.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Properties, "$Id$") - -TAO_NS_Properties::TAO_NS_Properties (void) - : factory_ (0) - , builder_ (0) - , thr_sched_policy_ (THR_SCHED_DEFAULT) - , thr_scope_policy_ (THR_SCOPE_PROCESS) - , asynch_updates_ (0) -{ - // In case no conf. file is specified, the EC will default to reactive concurrency. - NotifyExt::ThreadPoolParams tp_params = - {0, 0, 0, 0, 0, 0, 0 }; - - this->ec_qos_.length (1); - this->ec_qos_[0].name = CORBA::string_dup (NotifyExt::ThreadPool); - this->ec_qos_[0].value <<= tp_params; - - if (TAO_debug_level > 1) - ACE_DEBUG ((LM_DEBUG, "in TAO_Properties ctos %x\n", this)); -} - -TAO_NS_Properties::~TAO_NS_Properties () -{ -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_Singleton<TAO_NS_Properties, TAO_SYNCH_MUTEX>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_Singleton<TAO_NS_Properties, TAO_SYNCH_MUTEX> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Properties.h b/TAO/orbsvcs/orbsvcs/Notify/Properties.h deleted file mode 100644 index 4a0a6a03ffc..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Properties.h +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Properties.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROPERTIES_H -#define TAO_NS_PROPERTIES_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/TAO_Singleton.h" -#include "tao/ORB.h" -#include "tao/PortableServer/PortableServer.h" -#include "orbsvcs/CosNotificationC.h" - -class TAO_NS_Factory; -class TAO_NS_Builder; - -/** - * @class TAO_NS_Properties - * - * @brief Global properties that strategize Notify's run-time behaviour. - * - */ -class TAO_Notify_Export TAO_NS_Properties -{ - friend class TAO_Singleton<TAO_NS_Properties, TAO_SYNCH_MUTEX>; - -public: - /// Constuctor - TAO_NS_Properties (void); - - /// Destructor - ~TAO_NS_Properties (); - - // = Property Accessors - TAO_NS_Factory* factory (void); - void factory (TAO_NS_Factory* factory); - - TAO_NS_Builder* builder (void); - void builder (TAO_NS_Builder* builder); - - CORBA::ORB_ptr orb (void); - void orb (CORBA::ORB_ptr orb); - - PortableServer::POA_ptr default_poa (void); - void default_poa (PortableServer::POA_ptr default_poa); - - long scope_policy (void); - void scope_policy (long scope_policy); - - long sched_policy (void); - void sched_policy (long sched_policy); - - CORBA::Boolean asynch_updates (void); - void asynch_updates (CORBA::Boolean asynch_updates); - - // The QoS Property that must be applied to each newly created Event Channel - const CosNotification::QoSProperties& default_event_channel_qos_properties (void); - - // Set the default EC QoS Property. - void default_event_channel_qos_properties (const CosNotification::QoSProperties &ec_qos); - - // The QoS Property that must be applied to each newly created Supplier Admin - const CosNotification::QoSProperties& default_supplier_admin_qos_properties (void); - - // Set the default SA QoS Property. - void default_supplier_admin_qos_properties (const CosNotification::QoSProperties &sa_qos); - - // The QoS Property that must be applied to each newly created Consumer Admin - const CosNotification::QoSProperties& default_consumer_admin_qos_properties (void); - - // Set the default CA QoS Property. - void default_consumer_admin_qos_properties (const CosNotification::QoSProperties &ca_qos); - - // The QoS Property that must be applied to each newly created Proxy Supplier - const CosNotification::QoSProperties& default_proxy_supplier_qos_properties (void); - - // Set the default PS QoS Property. - void default_proxy_supplier_qos_properties (const CosNotification::QoSProperties &ps_qos); - - // The QoS Property that must be applied to each newly created Proxy Consumer - const CosNotification::QoSProperties& default_proxy_consumer_qos_properties (void); - - // Set the default PC QoS Property. - void default_proxy_consumer_qos_properties (const CosNotification::QoSProperties &pc_qos); - -protected: - /// Object Factory - TAO_NS_Factory* factory_; - - /// Object Builder - TAO_NS_Builder* builder_; - - /// ORB - CORBA::ORB_var orb_; - - // POA - PortableServer::POA_var default_poa_; - - /// Sched policy - long thr_sched_policy_; - - /// Scope policy - long thr_scope_policy_; - - /// True if send asynch updates. - CORBA::Boolean asynch_updates_; - - /// The Update period for updates. - ACE_Time_Value update_period_; - - /// The default EC QoS Properties. - CosNotification::QoSProperties ec_qos_; - - /// The default SA QoS Properties. - CosNotification::QoSProperties sa_qos_; - - /// The default CA QoS Properties. - CosNotification::QoSProperties ca_qos_; - - /// The default PS QoS Properties. - CosNotification::QoSProperties ps_qos_; - - /// The default PC QoS Properties. - CosNotification::QoSProperties pc_qos_; -}; - -typedef TAO_Singleton<TAO_NS_Properties, TAO_SYNCH_MUTEX> TAO_NS_PROPERTIES; - -TAO_NOTIFY_SINGLETON_DECLARE (TAO_Singleton, TAO_NS_Properties, TAO_SYNCH_MUTEX); - -#if defined (__ACE_INLINE__) -#include "Properties.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PROPERTIES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Properties.inl b/TAO/orbsvcs/orbsvcs/Notify/Properties.inl deleted file mode 100644 index a066c3907a5..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Properties.inl +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_Factory* -TAO_NS_Properties::factory (void) -{ - return this->factory_; -} - -ACE_INLINE void -TAO_NS_Properties::factory (TAO_NS_Factory* factory) -{ - this->factory_ = factory; -} - -ACE_INLINE TAO_NS_Builder* -TAO_NS_Properties::builder (void) -{ - return this->builder_; -} - -ACE_INLINE void -TAO_NS_Properties::builder (TAO_NS_Builder* builder) -{ - this->builder_ = builder; -} - -ACE_INLINE CORBA::ORB_ptr -TAO_NS_Properties::orb (void) -{ - return CORBA::ORB::_duplicate (orb_.in ()); -} - -ACE_INLINE void -TAO_NS_Properties::orb (CORBA::ORB_ptr orb) -{ - orb_ = CORBA::ORB::_duplicate (orb); -} - -ACE_INLINE PortableServer::POA_ptr -TAO_NS_Properties::default_poa (void) -{ - return PortableServer::POA::_duplicate (this->default_poa_.in ()); -} - -ACE_INLINE void -TAO_NS_Properties::default_poa (PortableServer::POA_ptr default_poa) -{ - this->default_poa_ = PortableServer::POA::_duplicate (default_poa); -} - -ACE_INLINE long -TAO_NS_Properties::scope_policy (void) -{ - return thr_scope_policy_; -} - -ACE_INLINE void -TAO_NS_Properties::scope_policy (long scope_policy) -{ - thr_scope_policy_ = scope_policy; -} - -ACE_INLINE long -TAO_NS_Properties::sched_policy (void) -{ - return thr_sched_policy_; -} - -ACE_INLINE void -TAO_NS_Properties::sched_policy (long sched_policy) -{ - thr_sched_policy_ = sched_policy; -} - -ACE_INLINE CORBA::Boolean -TAO_NS_Properties::asynch_updates (void) -{ - return this->asynch_updates_; -} - -ACE_INLINE void -TAO_NS_Properties::asynch_updates (CORBA::Boolean asynch_updates) -{ - this->asynch_updates_ = asynch_updates; -} - -ACE_INLINE const CosNotification::QoSProperties& -TAO_NS_Properties::default_event_channel_qos_properties (void) -{ - return this->ec_qos_; -} - -ACE_INLINE void -TAO_NS_Properties::default_event_channel_qos_properties (const CosNotification::QoSProperties &ec_qos) -{ - this->ec_qos_ = ec_qos; -} - -ACE_INLINE const CosNotification::QoSProperties& -TAO_NS_Properties::default_supplier_admin_qos_properties (void) -{ - return this->sa_qos_; -} - -ACE_INLINE void -TAO_NS_Properties::default_supplier_admin_qos_properties (const CosNotification::QoSProperties &sa_qos) -{ - this->sa_qos_ = sa_qos; -} - -ACE_INLINE const CosNotification::QoSProperties& -TAO_NS_Properties::default_consumer_admin_qos_properties (void) -{ - return this->ca_qos_; -} - -ACE_INLINE void -TAO_NS_Properties::default_consumer_admin_qos_properties (const CosNotification::QoSProperties &ca_qos) -{ - this->ca_qos_ = ca_qos; -} - -ACE_INLINE const CosNotification::QoSProperties& -TAO_NS_Properties::default_proxy_supplier_qos_properties (void) -{ - return this->ps_qos_; -} - -ACE_INLINE void -TAO_NS_Properties::default_proxy_supplier_qos_properties (const CosNotification::QoSProperties &ps_qos) -{ - this->ps_qos_ = ps_qos; -} - -ACE_INLINE const CosNotification::QoSProperties& -TAO_NS_Properties::default_proxy_consumer_qos_properties (void) -{ - return this->pc_qos_; -} - -ACE_INLINE void -TAO_NS_Properties::default_proxy_consumer_qos_properties (const CosNotification::QoSProperties &pc_qos) -{ - this->pc_qos_ = pc_qos; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property.h b/TAO/orbsvcs/orbsvcs/Notify/Property.h deleted file mode 100644 index ae91ce42aff..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Property.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROPERTY_H -#define TAO_NS_PROPERTY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "tao/orbconf.h" -#include "tao/TimeBaseC.h" -#include "orbsvcs/NotifyExtC.h" - -template <class LOCK, class TYPE> class ACE_Atomic_Op; -template <class TYPE> class TAO_NS_Property_T; -template <class TYPE> class TAO_NS_StructProperty_T; - -typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX,CORBA::Long> TAO_NS_Atomic_Property_Long; -typedef TAO_NS_Property_T<CORBA::Long> TAO_NS_Property_Long; -typedef TAO_NS_Property_T<CORBA::Short> TAO_NS_Property_Short; -typedef TAO_NS_Property_T<TimeBase::TimeT> TAO_NS_Property_Time; -typedef TAO_NS_StructProperty_T<NotifyExt::ThreadPoolParams> TAO_NS_Property_ThreadPool; -typedef TAO_NS_StructProperty_T<NotifyExt::ThreadPoolLanesParams> TAO_NS_Property_ThreadPoolLanes; - -#include "ace/post.h" -#endif /* TAO_NS_PROPERTY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.cpp b/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.cpp deleted file mode 100644 index ad5042b9e87..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ - -#include "PropertySeq.h" - -#if ! defined (__ACE_INLINE__) -#include "PropertySeq.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_PropertySeq, "$id$") - -TAO_NS_PropertySeq::TAO_NS_PropertySeq (void) -{ -} - -TAO_NS_PropertySeq::~TAO_NS_PropertySeq () -{ -} - -int -TAO_NS_PropertySeq::init (const CosNotification::PropertySeq& prop_seq) -{ - ACE_CString name; - - for (CORBA::ULong i = 0; i < prop_seq.length (); ++i) - { - name = prop_seq[i].name.in (); - - if (this->property_map_.rebind (name, prop_seq[i].value) == -1) - return -1; - } - // Note call to rebind. This allows to call <init> to set updates. - - return 0; -} - -int -TAO_NS_PropertySeq::populate (CosNotification::PropertySeq_var& prop_seq) -{ - PROPERTY_MAP::ITERATOR iterator (this->property_map_); - - int index = prop_seq->length (); - prop_seq->length (index + this->property_map_.current_size ()); - - for (PROPERTY_MAP::ENTRY *entry = 0; - iterator.next (entry) != 0; - iterator.advance (), ++index) - { - (*prop_seq)[index].name = CORBA::string_dup (entry->ext_id_.c_str ()); - (*prop_seq)[index].value = entry->int_id_; - } - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.h b/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.h deleted file mode 100644 index 4371aea34f9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file PropertySeq.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROPERTYSEQ_H -#define TAO_NS_PROPERTYSEQ_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotificationC.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/SString.h" - -/** - * @class TAO_NS_PropertySeq - * - * @brief - * - */ -class TAO_Notify_Export TAO_NS_PropertySeq -{ -public: - /// Constuctor - TAO_NS_PropertySeq (void); - - /// Destructor - ~TAO_NS_PropertySeq (); - - /// Return 0 on success, -1 on error. - int init (const CosNotification::PropertySeq& prop_seq); - - /// Find the <value> for property <name>. Returns 0 on success. - int find (const ACE_CString& name, CosNotification::PropertyValue& value) const; - - /// Return -1 on error. - int populate (CosNotification::PropertySeq_var& prop_seq); - -protected: - /// Property Map. - typedef ACE_Hash_Map_Manager <ACE_CString, CosNotification::PropertyValue, ACE_SYNCH_NULL_MUTEX> PROPERTY_MAP; - - PROPERTY_MAP property_map_; -}; - -#if defined (__ACE_INLINE__) -#include "PropertySeq.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PROPERTYSEQ_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.inl b/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.inl deleted file mode 100644 index 271543a2f82..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/PropertySeq.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -ACE_INLINE int -TAO_NS_PropertySeq::find (const ACE_CString& name, CosNotification::PropertyValue& value) const -{ - return this->property_map_.find (name, value); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.cpp b/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.cpp deleted file mode 100644 index 4c240b12bd9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// $Id$ - -#include "Property_Boolean.h" - -#if ! defined (__ACE_INLINE__) -#include "Property_Boolean.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Property_Boolean, "$id$") - -#include "PropertySeq.h" - -TAO_NS_Property_Boolean::TAO_NS_Property_Boolean (const ACE_CString& name) - :name_ (name), valid_(0) -{ -} - -TAO_NS_Property_Boolean::TAO_NS_Property_Boolean (const ACE_CString& name, CORBA::Boolean initial) - :name_ (name), value_ (initial), valid_ (1) -{ -} - -int -TAO_NS_Property_Boolean::set (const TAO_NS_PropertySeq& property_seq) -{ - CosNotification::PropertyValue value; - - if (property_seq.find (this->name_, value) == -1) - return -1; - - value >>= CORBA::Any::to_boolean (this->value_); - - return 0; -} - -void -TAO_NS_Property_Boolean::get (CosNotification::PropertySeq& prop_seq) -{ - /// Make space - prop_seq.length (prop_seq.length () + 1); - - prop_seq[prop_seq.length () - 1].value <<= CORBA::Any::from_boolean (this->value_); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.h b/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.h deleted file mode 100644 index 1ddb447f418..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Property_Boolean.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROPERTY_BOOLEAN_H -#define TAO_NS_PROPERTY_BOOLEAN_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotificationC.h" - -class TAO_NS_PropertySeq; - -/** - * @class TAO_NS_Property_Boolean - * - * @brief Boolean Property. - * - */ -/*******************************************************************************/ - -class TAO_Notify_Export TAO_NS_Property_Boolean -{ -public: - /// Constuctor - TAO_NS_Property_Boolean (const ACE_CString& name, CORBA::Boolean initial); - - /// Constuctor - TAO_NS_Property_Boolean (const ACE_CString& name); - - /// Assignment from TAO_NS_Property_Boolean - TAO_NS_Property_Boolean& operator= (const TAO_NS_Property_Boolean& rhs); - - /// Assignment from CORBA::Boolean - TAO_NS_Property_Boolean& operator= (const CORBA::Boolean& rhs); - - /// Equality comparison operator. - int operator== (const CORBA::Boolean &rhs) const; - - /// Inequality comparison operator. - int operator!= (const CORBA::Boolean &rhs) const; - - int set (const TAO_NS_PropertySeq& property_seq); - - void get (CosNotification::PropertySeq& prop_seq); - - /// Return the value. - CORBA::Boolean value (void) const; - - /// Is the current value valid - CORBA::Boolean is_valid (void) const; - -protected: - /// The Property name. - ACE_CString name_; - - /// The value - CORBA::Boolean value_; - - /// Is the value valid - CORBA::Boolean valid_; -}; - -#if defined (__ACE_INLINE__) -#include "Property_Boolean.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PROPERTY_BOOLEAN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.inl b/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.inl deleted file mode 100644 index d30cabb4e39..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property_Boolean.inl +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_Property_Boolean& -TAO_NS_Property_Boolean::operator= (const TAO_NS_Property_Boolean& rhs) -{ - if (this == &rhs) - return *this; - - if (rhs.is_valid ()) - { - this->name_ = rhs.name_; - this->value_ = rhs.value_; - this->valid_ = rhs.valid_; - } - - return *this; -} - -ACE_INLINE TAO_NS_Property_Boolean& -TAO_NS_Property_Boolean::operator= (const CORBA::Boolean& value) -{ - this->value_ = value; - - return *this; -} - -ACE_INLINE int -TAO_NS_Property_Boolean::operator== (const CORBA::Boolean &rhs) const -{ - return (this->value_ == rhs); -} - -ACE_INLINE int -TAO_NS_Property_Boolean::operator!= (const CORBA::Boolean &rhs) const -{ - return (this->value_ != rhs); -} - -ACE_INLINE CORBA::Boolean -TAO_NS_Property_Boolean::value (void) const -{ - return this->value_; -} - -ACE_INLINE CORBA::Boolean -TAO_NS_Property_Boolean::is_valid (void) const -{ - return this->valid_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Property_T.cpp deleted file mode 100644 index 051345844c1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property_T.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_PROPERTY_T_CPP -#define TAO_NS_PROPERTY_T_CPP - -#include "Property_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Property_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Property_T, "$id$") - -#include "PropertySeq.h" - -/*******************************************************************************/ - -template <class TYPE> -TAO_NS_PropertyBase_T<TYPE>::TAO_NS_PropertyBase_T (const ACE_CString& name) - :name_ (name), valid_(0) -{ -} - -template <class TYPE> -TAO_NS_PropertyBase_T<TYPE>::TAO_NS_PropertyBase_T (const ACE_CString& name, const TYPE& initial) - :name_ (name), value_ (initial), valid_ (1) -{ -} - -template <class TYPE> -TAO_NS_PropertyBase_T<TYPE>::TAO_NS_PropertyBase_T (const TAO_NS_PropertyBase_T &rhs) -{ - this->name_ = rhs.name_; - this->value_ = rhs.value_; - this->valid_ = rhs.valid_; -} - -template <class TYPE> -TAO_NS_PropertyBase_T<TYPE>::~TAO_NS_PropertyBase_T () -{ -} - -template <class TYPE> void -TAO_NS_PropertyBase_T<TYPE>::get (CosNotification::PropertySeq& prop_seq) -{ - /// Make space - prop_seq.length (prop_seq.length () + 1); - - prop_seq[prop_seq.length () - 1].value <<= this->value_; -} - -/*******************************************************************************/ - -template <class TYPE> -TAO_NS_Property_T<TYPE>::TAO_NS_Property_T (const ACE_CString& name) - :TAO_NS_PropertyBase_T <TYPE> (name) -{ -} - -template <class TYPE> -TAO_NS_Property_T<TYPE>::TAO_NS_Property_T (const ACE_CString& name, const TYPE& initial) - :TAO_NS_PropertyBase_T <TYPE> (name, initial) -{ -} - -template <class TYPE> int -TAO_NS_Property_T<TYPE>::set (const TAO_NS_PropertySeq& property_seq) -{ - CosNotification::PropertyValue value; - - if (property_seq.find (this->name_, value) == -1) - { - this->valid_ = 0; - return -1; - } - - value >>= this->value_; - - this->valid_ = 1; - - return 0; -} - -/*******************************************************************************/ - -template <class TYPE> -TAO_NS_StructProperty_T<TYPE>::TAO_NS_StructProperty_T (const ACE_CString& name) - :name_ (name), valid_(0) -{ -} - -template <class TYPE> -TAO_NS_StructProperty_T<TYPE>::TAO_NS_StructProperty_T (const ACE_CString& name, const TYPE& initial) - :name_ (name), value_ (initial), valid_ (1) -{ -} - -template <class TYPE> int -TAO_NS_StructProperty_T<TYPE>::set (const TAO_NS_PropertySeq& property_seq) -{ - CosNotification::PropertyValue value; - - if (property_seq.find (this->name_, value) == -1) - { - this->valid_ = 0; - return -1; - } - - TYPE* extract_type; - value >>= extract_type; - - this->value_ = *extract_type; // copy - - this->valid_ = 1; - - return 0; -} - -#endif /* TAO_NS_PROPERTY_T_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property_T.h b/TAO/orbsvcs/orbsvcs/Notify/Property_T.h deleted file mode 100644 index 5b05d472b9f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property_T.h +++ /dev/null @@ -1,161 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Property_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROPERTY_T_H -#define TAO_NS_PROPERTY_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/SString.h" -#include "orbsvcs/CosNotificationC.h" - -class TAO_NS_PropertySeq; - -/** - * @class TAO_NS_PropertyBase_T - * - * @brief - * - */ -template <class TYPE> -class TAO_NS_PropertyBase_T -{ -public: - /// Constuctor - TAO_NS_PropertyBase_T (const ACE_CString& name, const TYPE& initial); - - /// Constuctor - TAO_NS_PropertyBase_T (const ACE_CString& name); - - /// Copy Constuctor - TAO_NS_PropertyBase_T (const TAO_NS_PropertyBase_T &rhs); - - /// Destructor - ~TAO_NS_PropertyBase_T (); - - /// Assignment from TAO_NS_PropertyBase_T - TAO_NS_PropertyBase_T& operator= (const TAO_NS_PropertyBase_T& rhs); - - /// Assignment from TYPE - TAO_NS_PropertyBase_T& operator= (const TYPE& rhs); - - /// Equality comparison operator. - int operator== (const TYPE &rhs) const; - - /// Inequality comparison operator. - int operator!= (const TYPE &rhs) const; - - /// Populate the Property Sequence with this valid value. - void get (CosNotification::PropertySeq& prop_seq); - - /// Return the value. - const TYPE& value (void) const; - - /// Is the current value valid - CORBA::Boolean is_valid (void) const; - - /// Invalidate this property's value. - void invalidate (void); - -protected: - /// The Property name. - ACE_CString name_; - - /// The value - TYPE value_; - - /// Is the value valid - CORBA::Boolean valid_; -}; - - -/*******************************************************************************/ -/** - * @class TAO_NS_Property_T - * - * @brief - * - */ -template <class TYPE> -class TAO_NS_Property_T : public TAO_NS_PropertyBase_T<TYPE> -{ -public: - /// Constuctor - TAO_NS_Property_T (const ACE_CString& name, const TYPE& initial); - - /// Constuctor - TAO_NS_Property_T (const ACE_CString& name); - - /// Assignment from TYPE - TAO_NS_Property_T& operator= (const TYPE& rhs); - - /// Init this Property from the sequence. - /// Returns 0 on success, -1 on error - int set (const TAO_NS_PropertySeq& property_seq); -}; - -/*******************************************************************************/ -/** - * @class TAO_NS_StructProperty_T - * - * @brief - * - */ -template <class TYPE> -class TAO_NS_StructProperty_T -{ -public: - /// Constuctor - TAO_NS_StructProperty_T (const ACE_CString& name, const TYPE& initial); - - /// Constuctor - TAO_NS_StructProperty_T (const ACE_CString& name); - - /// Init this Property from the sequence. - /// Returns 0 on success, -1 on error - int set (const TAO_NS_PropertySeq& property_seq); - - /// Return the value. - const TYPE& value (void) const; - - /// Is the current value valid - CORBA::Boolean is_valid (void) const; - -protected: - /// The Property name. - ACE_CString name_; - - /// The value - TYPE value_; - - /// Is the value valid - CORBA::Boolean valid_; -}; - -#if defined (__ACE_INLINE__) -#include "Property_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Property_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Property_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_PROPERTY_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Property_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Property_T.inl deleted file mode 100644 index 3442b0fe7c4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Property_T.inl +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - -template <class TYPE> ACE_INLINE const TYPE& -TAO_NS_PropertyBase_T<TYPE>::value (void) const -{ - return this->value_; -} - -template <class TYPE> ACE_INLINE CORBA::Boolean -TAO_NS_PropertyBase_T<TYPE>::is_valid (void) const -{ - return this->valid_; -} - -template <class TYPE> ACE_INLINE int -TAO_NS_PropertyBase_T<TYPE>::operator== (const TYPE &rhs) const -{ - return (this->value_ == rhs); -} - -template <class TYPE> ACE_INLINE int -TAO_NS_PropertyBase_T<TYPE>::operator!= (const TYPE &rhs) const -{ - return (this->value_ != rhs); -} - -template <class TYPE> ACE_INLINE TAO_NS_PropertyBase_T<TYPE>& -TAO_NS_PropertyBase_T<TYPE>::operator= (const TAO_NS_PropertyBase_T<TYPE>& rhs) -{ - if (this == &rhs) - return *this; - - if (rhs.is_valid ()) - { - this->name_ = rhs.name_; - this->value_ = rhs.value_; - this->valid_ = rhs.valid_; - } - - return *this; -} - -template <class TYPE> ACE_INLINE TAO_NS_PropertyBase_T<TYPE>& -TAO_NS_PropertyBase_T<TYPE>::operator=(const TYPE& value) -{ - this->value_ = value; - - return *this; -} - -template <class TYPE> ACE_INLINE void -TAO_NS_PropertyBase_T<TYPE>:: invalidate (void) -{ - this->valid_ = 0; -} - -/******************************************************************************/ - -template <class TYPE> ACE_INLINE TAO_NS_Property_T<TYPE>& -TAO_NS_Property_T<TYPE>::operator=(const TYPE& value) -{ - this->TAO_NS_PropertyBase_T<TYPE>::operator= (value); - return *this; -} - -/******************************************************************************/ - -template <class TYPE> ACE_INLINE const TYPE& -TAO_NS_StructProperty_T<TYPE>::value (void) const -{ - return this->value_; -} - -template <class TYPE> ACE_INLINE CORBA::Boolean -TAO_NS_StructProperty_T<TYPE>::is_valid (void) const -{ - return this->valid_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp b/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp deleted file mode 100644 index dd1cd160f13..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// $Id$ - -#include "Proxy.h" - -#if ! defined (__ACE_INLINE__) -#include "Proxy.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Proxy, "$Id$") - -#include "Peer.h" -#include "Proxy.h" -#include "Method_Request_Updates.h" -#include "Worker_Task.h" -#include "Properties.h" - -TAO_NS_Proxy::TAO_NS_Proxy (void) - :updates_off_ (0) -{ -} - -TAO_NS_Proxy::~TAO_NS_Proxy () -{ -} - -void -TAO_NS_Proxy::init (TAO_NS_Admin *admin ACE_ENV_ARG_DECL_NOT_USED) -{ - TAO_NS_Object::init (admin); - - // For Proxy's the object should be activated in the proxy poa. - // so we override the default initialization in TAO_NS_Object - - this->poa_ = this->proxy_poa_; -} - -void -TAO_NS_Proxy::subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - // copy - subscribed_types = this->subscribed_types_; -} - -void -TAO_NS_Proxy::types_changed (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL_NOT_USED) -{ - TAO_NS_Method_Request_Updates request (added, removed, this); - - if (TAO_NS_PROPERTIES::instance()->asynch_updates () == 1) // if we should send the updates synchronously. - { - this->worker_task ()->exec (request); - } - else // execute in the current thread context. - { - ACE_DECLARE_NEW_CORBA_ENV; - request.execute (ACE_ENV_SINGLE_ARG_PARAMETER); - } -} - -CORBA::Boolean -TAO_NS_Proxy::check_filters (const TAO_NS_Event_var &event - , TAO_NS_FilterAdmin& parent_filter_admin - , CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator - ACE_ENV_ARG_DECL) -{ - // check if it passes the parent filter. - CORBA::Boolean parent_val = - parent_filter_admin.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Boolean val = 0; - - if (filter_operator == CosNotifyChannelAdmin::AND_OP) - { - val = parent_val && this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - else - { - val = parent_val || this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - } - - return val; -} - -CosNotification::EventTypeSeq* -TAO_NS_Proxy::obtain_types (CosNotifyChannelAdmin::ObtainInfoMode mode, const TAO_NS_EventTypeSeq& types ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotification::EventTypeSeq_var event_type_seq; - - ACE_NEW_THROW_EX (event_type_seq, - CosNotification::EventTypeSeq (), - CORBA::NO_MEMORY ()); - - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::INTERNAL ()); - ACE_CHECK_RETURN (event_type_seq._retn ()); - - if (mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_OFF || - mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON) - { - types.populate (event_type_seq); - } - - if (mode == CosNotifyChannelAdmin::NONE_NOW_UPDATES_ON || - mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON) - { - this->updates_off_ = 0; - } - else - { - this->updates_off_ = 1; - } - - return event_type_seq._retn (); -} - -void -TAO_NS_Proxy::qos_changed (const TAO_NS_QoSProperties& qos_properties) -{ - //Inform Peers of qos changes. - TAO_NS_Peer* peer = this->peer (); - - if (peer != 0) - peer->qos_changed (qos_properties); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy.h b/TAO/orbsvcs/orbsvcs/Notify/Proxy.h deleted file mode 100644 index 27f8e3ea518..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Proxy.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Proxy.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROXY_H -#define TAO_NS_PROXY_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Object.h" -#include "EventTypeSeq.h" -#include "FilterAdmin.h" -#include "Admin.h" - -class TAO_NS_Admin; -class TAO_NS_Peer; - -/** - * @class TAO_NS_Proxy - * - * @brief Base class proxy for all proxys in NS. - * - */ -class TAO_Notify_Export TAO_NS_Proxy : public virtual TAO_NS_Object -{ - friend class TAO_NS_Peer; - -public: - typedef CosNotifyChannelAdmin::ProxyIDSeq SEQ; - typedef CosNotifyChannelAdmin::ProxyIDSeq_var SEQ_VAR; - - /// Constuctor - TAO_NS_Proxy (void); - - /// Destructor - ~TAO_NS_Proxy (); - - /// Init - void init (TAO_NS_Admin *admin ACE_ENV_ARG_DECL); - - /// Obtain the Proxy's subscribed types. - void subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL); - - /// Check if this event passes the admin and proxy filters. - CORBA::Boolean check_filters (const TAO_NS_Event_var &event - , TAO_NS_FilterAdmin& parent_filter_admin - , CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator - ACE_ENV_ARG_DECL); - - /// Inform this proxy that the following types are being advertised. - void types_changed (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL); - - /// Have updates been turned off. - CORBA::Boolean updates_off (void); - - /// Destroy this object. - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) = 0; - - /// Access our Peer. - virtual TAO_NS_Peer* peer (void) = 0; - - /// Implement the Obtain Types. - virtual CosNotification::EventTypeSeq* obtain_types (CosNotifyChannelAdmin::ObtainInfoMode mode, const TAO_NS_EventTypeSeq& types ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// Notification of subscriptions/offers set at the admin. - virtual void admin_types_changed (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL) = 0; - - - /// Override, TAO_NS_Object::qos_changed - virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties); - -protected: - - /// Filter Administration - TAO_NS_FilterAdmin filter_admin_; - - /// The types that we're subscribed with the event manager. - TAO_NS_EventTypeSeq subscribed_types_; - - /// True if updates have been turned off. - CORBA::Boolean updates_off_; -}; - -#if defined (__ACE_INLINE__) -#include "Proxy.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PROXY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl b/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl deleted file mode 100644 index 3610f2b3167..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -ACE_INLINE CORBA::Boolean -TAO_NS_Proxy::updates_off (void) -{ - return this->updates_off_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp deleted file mode 100644 index b2191768a07..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// $Id$ - -#include "ProxyConsumer.h" - -#if ! defined (__ACE_INLINE__) -#include "ProxyConsumer.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_ProxyConsumer, "$Id$") - -#include "tao/debug.h" -#include "ace/Atomic_Op.h" -#include "Supplier.h" -#include "AdminProperties.h" -#include "Property.h" -#include "Proxy.h" -#include "Event_Manager.h" -#include "Method_Request_Lookup.h" -#include "Worker_Task.h" -#include "Properties.h" -#include "SupplierAdmin.h" - -TAO_NS_ProxyConsumer::TAO_NS_ProxyConsumer (void) - : supplier_admin_ (0) - , supplier_ (0) -{ -} - -TAO_NS_ProxyConsumer::~TAO_NS_ProxyConsumer () -{ - this->supplier_admin_->_decr_refcnt (); -} - -TAO_NS_Peer* -TAO_NS_ProxyConsumer::peer (void) -{ - return this->supplier (); -} - -void -TAO_NS_ProxyConsumer::init (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_Proxy::init (supplier_admin ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->supplier_admin_ = supplier_admin; - - this->supplier_admin_->_incr_refcnt (); - - const CosNotification::QoSProperties &default_ps_qos = - TAO_NS_PROPERTIES::instance ()->default_proxy_consumer_qos_properties (); - - this->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_ProxyConsumer::connect (TAO_NS_Supplier *supplier ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosEventChannelAdmin::AlreadyConnected - )) -{ - TAO_NS_Atomic_Property_Long& supplier_count = this->admin_properties_->suppliers (); - const TAO_NS_Property_Long& max_suppliers = this->admin_properties_->max_suppliers (); - - if (max_suppliers != 0 && - supplier_count >= max_suppliers.value ()) - ACE_THROW (CORBA::IMP_LIMIT ()); // we've reached the limit of suppliers connected. - - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected ()) - { - supplier->release (); - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - } - - supplier_ = supplier; - - this->supplier_admin_->subscribed_types (this->subscribed_types_ ACE_ENV_ARG_PARAMETER); // get the parents subscribed types. - ACE_CHECK; - } - - // Inform QoS values. - supplier_->qos_changed (this->qos_properties_); - - TAO_NS_EventTypeSeq removed; - - this->event_manager_->offer_change (this, this->subscribed_types_, removed ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->connect (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Increment the global supplier count - ++supplier_count; -} - -void -TAO_NS_ProxyConsumer::disconnect (ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_EventTypeSeq added; - - event_manager_->offer_change (this, added, this->subscribed_types_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->disconnect (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Decrement the global supplier count - this->admin_properties_->suppliers ()--; -} - -int -TAO_NS_ProxyConsumer::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return 1; - - ACE_CHECK_RETURN (1); - - this->disconnect (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (1); - - if (this->supplier_ != 0) - this->supplier_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - - return 0; -} - -void -TAO_NS_ProxyConsumer::destroy (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return; - - ACE_CHECK; - - this->supplier_admin_->remove (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_ProxyConsumer::push (TAO_NS_Event_var &event) -{ - TAO_NS_Method_Request_Lookup request (event, this, this->event_manager_->consumer_map ()); - - this->worker_task ()->exec (request); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h deleted file mode 100644 index 807bcf152f3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ProxyConsumer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROXYCONSUMER_H -#define TAO_NS_PROXYCONSUMER_H -#include "ace/pre.h" - -#include "notify_export.h" -#include "ace/Auto_Ptr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Event.h" -#include "Proxy.h" -#include "orbsvcs/CosEventChannelAdminC.h" - -class TAO_NS_SupplierAdmin; -class TAO_NS_Supplier; - -/** - * @class TAO_NS_ProxyConsumer - * - * @brief Base class for all types of ProxyConsumer implementations. - * - */ -class TAO_Notify_Export TAO_NS_ProxyConsumer : public virtual TAO_NS_Proxy -{ -public: - /// Constuctor - TAO_NS_ProxyConsumer (void); - - /// Destructor - ~TAO_NS_ProxyConsumer (); - - /// Init - void init (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL); - - /// Connect - void connect (TAO_NS_Supplier* supplier ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosEventChannelAdmin::AlreadyConnected - )); - - /// Disconnect - void disconnect (ACE_ENV_SINGLE_ARG_DECL); - - /// Shutdown (TAO_NS_Container_T method) - virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Destroy this object. - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL); - - /// Start event propagation. - virtual void push (TAO_NS_Event_var &event); - - /// Access our Peer. - virtual TAO_NS_Peer* peer (void); - - /// Access the Supplier - TAO_NS_Supplier* supplier (void); - - /// Return 1 if connected - int is_connected (void); - - /// The SA parent. - TAO_NS_SupplierAdmin* supplier_admin (void); - -protected: - ///= Data Members. - /// The SA parent. - TAO_NS_SupplierAdmin* supplier_admin_; - - /// The Supplier that we're connect to. - TAO_NS_Supplier* supplier_; -}; - -#if defined (__ACE_INLINE__) -#include "ProxyConsumer.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PROXYCONSUMER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl deleted file mode 100644 index ea4b07f8474..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -ACE_INLINE int -TAO_NS_ProxyConsumer::is_connected (void) -{ - return supplier_ == 0 ? 0 : 1; -} - -ACE_INLINE TAO_NS_Supplier* -TAO_NS_ProxyConsumer::supplier (void) -{ - return this->supplier_; -} - -ACE_INLINE TAO_NS_SupplierAdmin* -TAO_NS_ProxyConsumer::supplier_admin (void) -{ - return this->supplier_admin_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp deleted file mode 100644 index 7c75dd56b49..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_PROXYCONSUMER_T_CPP -#define TAO_NS_PROXYCONSUMER_T_CPP - -#include "ProxyConsumer_T.h" -#include "SupplierAdmin.h" - -#if ! defined (__ACE_INLINE__) -#include "ProxyConsumer_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_ProxyConsumer_T, "$id$") - -#include "Event_Manager.h" - -template <class SERVANT_TYPE> -TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::TAO_NS_ProxyConsumer_T (void) -{ -} - -template <class SERVANT_TYPE> -TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::~TAO_NS_ProxyConsumer_T () -{ -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::admin_types_changed (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL) -{ - this->offer_change (added, removed ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyChannelAdmin::SupplierAdmin_ptr -TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::MyAdmin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotifyChannelAdmin::SupplierAdmin_var ret; - - CORBA::Object_var object = this->supplier_admin_->ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (ret._retn ()); - - ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - - return ret._retn (); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::offer_change (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )) -{ - TAO_NS_EventTypeSeq seq_added (added); - TAO_NS_EventTypeSeq seq_removed (removed); - - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->subscribed_types_.init (seq_added, seq_removed); - } - - this->event_manager_->offer_change (this, seq_added, seq_removed ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotification::EventTypeSeq* -TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::obtain_subscription_types (CosNotifyChannelAdmin::ObtainInfoMode mode ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->obtain_types (mode, this->event_manager_->subscription_types () ACE_ENV_ARG_PARAMETER); -} - -#endif /* TAO_NS_PROXYCONSUMER_T_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.h b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.h deleted file mode 100644 index 6ccc7dcec1d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ProxyConsumer_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROXYCONSUMER_T_H -#define TAO_NS_PROXYCONSUMER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Proxy_T.h" -#include "ProxyConsumer.h" - -/** - * @class TAO_NS_ProxyConsumer_T - * - * @brief - * - */ -template <class SERVANT_TYPE> -class TAO_Notify_Export TAO_NS_ProxyConsumer_T : public virtual TAO_NS_Proxy_T <SERVANT_TYPE>, public virtual TAO_NS_ProxyConsumer -{ -public: - /// Constuctor - TAO_NS_ProxyConsumer_T (void); - - /// Destructor - ~TAO_NS_ProxyConsumer_T (); - - /// Notification of subscriptions set at the admin. - virtual void admin_types_changed (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL); - - virtual CosNotifyChannelAdmin::SupplierAdmin_ptr MyAdmin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotification::EventTypeSeq * obtain_subscription_types ( - CosNotifyChannelAdmin::ObtainInfoMode mode - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void offer_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )); - -}; - -#if defined (__ACE_INLINE__) -#include "ProxyConsumer_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ProxyConsumer_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("ProxyConsumer_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_PROXYCONSUMER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.inl b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp deleted file mode 100644 index ade8865cb78..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// $Id$ - -#include "ProxySupplier.h" - -#if ! defined (__ACE_INLINE__) -#include "ProxySupplier.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_ProxySupplier, "$Id$") - -#include "Method_Request_Dispatch_No_Filtering.h" -#include "Event_Manager.h" -#include "AdminProperties.h" -#include "Consumer.h" -#include "Method_Request_Dispatch.h" -#include "Worker_Task.h" -#include "Buffering_Strategy.h" -#include "Properties.h" -#include "ConsumerAdmin.h" - -TAO_NS_ProxySupplier::TAO_NS_ProxySupplier (void) - : consumer_admin_ (0) - , consumer_ (0) -{ -} - -TAO_NS_ProxySupplier::~TAO_NS_ProxySupplier () -{ - this->consumer_admin_->_decr_refcnt (); -} - -void -TAO_NS_ProxySupplier::init (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_Proxy::init (consumer_admin ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->consumer_admin_ = consumer_admin; - - this->consumer_admin_->_incr_refcnt (); - - const CosNotification::QoSProperties &default_ps_qos = - TAO_NS_PROPERTIES::instance ()->default_proxy_supplier_qos_properties (); - - this->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER); -} - -TAO_NS_Peer* -TAO_NS_ProxySupplier:: peer (void) -{ - return this->consumer (); -} - -void -TAO_NS_ProxySupplier::connect (TAO_NS_Consumer *consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosEventChannelAdmin::AlreadyConnected - )) -{ - TAO_NS_Atomic_Property_Long& consumer_count = this->admin_properties_->consumers (); - const TAO_NS_Property_Long& max_consumers = this->admin_properties_->max_consumers (); - - if (max_consumers != 0 && - consumer_count >= max_consumers.value ()) - ACE_THROW (CORBA::IMP_LIMIT ()); // we've reached the limit of consumers connected. - - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - if (this->is_connected ()) - { - consumer->release (); - ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - } - - consumer_ = consumer; - - this->consumer_admin_->subscribed_types (this->subscribed_types_ ACE_ENV_ARG_PARAMETER); // get the parents subscribed types. - ACE_CHECK; - } - - // Inform QoS values. - consumer_->qos_changed (this->qos_properties_); - - TAO_NS_EventTypeSeq removed; - - this->event_manager_->subscription_change (this, this->subscribed_types_, removed ACE_ENV_ARG_PARAMETER); - - this->event_manager_->connect (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Increment the global consumer count - ++consumer_count; -} - -void -TAO_NS_ProxySupplier::disconnect (ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_EventTypeSeq added; - - this->event_manager_->subscription_change (this, added, this->subscribed_types_ ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->event_manager_->disconnect (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Decrement the global consumer count - this->admin_properties_->consumers ()--; -} - -int -TAO_NS_ProxySupplier::shutdown (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return 1; - - ACE_CHECK_RETURN (1); - - this->disconnect (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (1); - - if (this->consumer_ != 0) - this->consumer_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); - - return 0; -} - -void -TAO_NS_ProxySupplier::destroy (ACE_ENV_SINGLE_ARG_DECL) -{ - if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return; - - ACE_CHECK; - - this->consumer_admin_->remove (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_ProxySupplier::push (const TAO_NS_Event_var &event) -{ - TAO_NS_Method_Request_Dispatch request (event, this); - - this->worker_task ()->exec (request); -} - -void -TAO_NS_ProxySupplier::push_no_filtering (const TAO_NS_Event_var &event) -{ - TAO_NS_Method_Request_Dispatch_No_Filtering request (event, this); - - this->worker_task ()->exec (request); -} - -void -TAO_NS_ProxySupplier::qos_changed (const TAO_NS_QoSProperties& qos_properties) -{ - TAO_NS_Property_Long mepc_qos (CosNotification::MaxEventsPerConsumer); - - if (mepc_qos.set (qos_properties) != -1) - { - // Does the Proxy own the Worker Task? - if (own_worker_task_) - { - TAO_NS_Buffering_Strategy* bs = this->worker_task_->buffering_strategy (); - - // Apply this QoS to the Proxy's Buffering Strategy. - if (bs) - { - bs->max_local_queue_length (mepc_qos.value ()); - } - } - } - - TAO_NS_Proxy::qos_changed (qos_properties); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h deleted file mode 100644 index dfb5bb590b9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ProxySupplier.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROXYSUPPLIER_H -#define TAO_NS_PROXYSUPPLIER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Event.h" -#include "Proxy.h" -#include "orbsvcs/CosEventChannelAdminC.h" - -class TAO_NS_Consumer; -class TAO_NS_ConsumerAdmin; - -/** - * @class TAO_NS_ProxySupplier - * - * @brief Base class for all the ProxySuppliers. - * - */ -class TAO_Notify_Export TAO_NS_ProxySupplier : public virtual TAO_NS_Proxy -{ - friend class TAO_NS_Consumer; - -public: - /// Constuctor - TAO_NS_ProxySupplier (void); - - /// Destructor - virtual ~TAO_NS_ProxySupplier (); - - /// Init - virtual void init (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL); - - /// Connect - void connect (TAO_NS_Consumer* consumer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosEventChannelAdmin::AlreadyConnected - )); - /// Disconnect - void disconnect (ACE_ENV_SINGLE_ARG_DECL); - - /// Dispatch Event to consumer - virtual void push (const TAO_NS_Event_var &event); - - /// Dispatch Event to consumer, no filtering - virtual void push_no_filtering (const TAO_NS_Event_var &event); - - /// Override TAO_NS_Container_T::shutdown method - virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL); - - /// Destroy this object. - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL); - - /// Override, TAO_NS_Proxy::qos_changed to apply MaxEventssPerConsumer QoS. - virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties); - - /// Access our Peer. - virtual TAO_NS_Peer* peer (void); - - /// Access the Consumer - TAO_NS_Consumer* consumer (void); - - /// Return 1 if connected - int is_connected (void); - - /// The CA parent. - TAO_NS_ConsumerAdmin* consumer_admin (void); - -protected: - - ///= Data Members. - /// The CA parent. - TAO_NS_ConsumerAdmin* consumer_admin_; - - /// The Consumer that we're connect to. - TAO_NS_Consumer* consumer_; -}; - -#if defined (__ACE_INLINE__) -#include "ProxySupplier.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_PROXYSUPPLIER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl deleted file mode 100644 index 3c7852c9858..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -ACE_INLINE int -TAO_NS_ProxySupplier::is_connected (void) -{ - return consumer_ == 0 ? 0 : 1; -} - -ACE_INLINE TAO_NS_Consumer* -TAO_NS_ProxySupplier::consumer (void) -{ - return this->consumer_; -} - -ACE_INLINE TAO_NS_ConsumerAdmin* -TAO_NS_ProxySupplier::consumer_admin (void) -{ - return this->consumer_admin_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp deleted file mode 100644 index 04db7d0d999..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp +++ /dev/null @@ -1,223 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_PROXYSUPPLIER_T_C -#define TAO_NS_PROXYSUPPLIER_T_C - -#include "ProxySupplier_T.h" - -#if ! defined (__ACE_INLINE__) -#include "ProxySupplier_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_ProxySupplier_T, "$id$") - -#include "Consumer.h" -#include "Structured/StructuredEvent.h" -#include "Any/AnyEvent.h" - -#include "Method_Request_Dispatch.h" -#include "Method_Request_Dispatch_No_Filtering.h" -#include "Worker_Task.h" -#include "Event_Manager.h" -#include "ConsumerAdmin.h" - -template <class SERVANT_TYPE> -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::TAO_NS_ProxySupplier_T (void) - :is_suspended_ (0) -{ -} - -template <class SERVANT_TYPE> -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::~TAO_NS_ProxySupplier_T () -{ -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::admin_types_changed (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL) -{ - this->subscription_change (added, removed ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::forward_structured (const CosNotification::StructuredEvent& notification ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Event_var event (new TAO_NS_StructuredEvent (notification)); - - TAO_NS_Method_Request_Dispatch request (event, this); - - this->worker_task ()->exec (request); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::forward_structured_no_filtering (const CosNotification::StructuredEvent& notification ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Event_var event (new TAO_NS_StructuredEvent (notification)); - - TAO_NS_Method_Request_Dispatch_No_Filtering request (event, this); - - this->worker_task ()->exec (request); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::forward_any (const CORBA::Any & data ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Event_var event (new TAO_NS_AnyEvent (data)); - - TAO_NS_Method_Request_Dispatch request (event, this); - - this->worker_task ()->exec (request); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::forward_any_no_filtering (const CORBA::Any& data ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Event_var event (new TAO_NS_AnyEvent (data)); - - TAO_NS_Method_Request_Dispatch_No_Filtering request (event, this); - - this->worker_task ()->exec (request); -} - -template <class SERVANT_TYPE> CosNotification::EventTypeSeq* -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::obtain_offered_types (CosNotifyChannelAdmin::ObtainInfoMode mode ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->obtain_types (mode, this->event_manager_->offered_types () ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::subscription_change (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - CosNotifyComm::InvalidEventType)) -{ - TAO_NS_EventTypeSeq seq_added (added); - TAO_NS_EventTypeSeq seq_removed (removed); - - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->subscribed_types_.init (seq_added, seq_removed); - } - - this->event_manager_->subscription_change (this, seq_added, seq_removed ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::suspend_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyInactive, - CosNotifyChannelAdmin::NotConnected - )) -{ - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::INTERNAL ()); - - if (this->is_connected () == 0) - ACE_THROW (CosNotifyChannelAdmin::NotConnected ()); - - if (this->consumer_->is_suspended () == 1) - ACE_THROW (CosNotifyChannelAdmin::ConnectionAlreadyInactive ()); - } - - this->consumer_->suspend (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::resume_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyActive, - CosNotifyChannelAdmin::NotConnected - )) -{ - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::INTERNAL ()); - - if (this->is_connected () == 0) - ACE_THROW (CosNotifyChannelAdmin::NotConnected ()); - - if (this->consumer_->is_suspended () == 0) - ACE_THROW (CosNotifyChannelAdmin::ConnectionAlreadyActive ()); - } - - this->consumer_->resume (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyChannelAdmin::ConsumerAdmin_ptr -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::MyAdmin (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - CosNotifyChannelAdmin::ConsumerAdmin_var ret; - - CORBA::Object_var object = this->consumer_admin_->ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (ret._retn ()); - - ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER); - - return ret._retn (); -} - -/***************************** UNIMPLEMENTED METHODS***************************************/ - -template <class SERVANT_TYPE> CosNotifyFilter::MappingFilter_ptr -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::priority_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyFilter::MappingFilter::_nil ()); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::priority_filter (CosNotifyFilter::MappingFilter_ptr /*priority_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -template <class SERVANT_TYPE> CosNotifyFilter::MappingFilter_ptr -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::lifetime_filter (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CosNotifyFilter::MappingFilter::_nil ()); -} - -template <class SERVANT_TYPE> void -TAO_NS_ProxySupplier_T<SERVANT_TYPE>::lifetime_filter (CosNotifyFilter::MappingFilter_ptr /*lifetime_filter*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -#endif /* #define TAO_NS_PROXYSUPPLIER_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.h b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.h deleted file mode 100644 index c0e8d2054fb..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.h +++ /dev/null @@ -1,162 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ProxySupplier_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROXYSUPPLIER_T_H -#define TAO_NS_PROXYSUPPLIER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Proxy_T.h" -#include "ProxySupplier.h" - -/** - * @class TAO_NS_ProxySupplier_T - * - * @brief - * - */ -template <class SERVANT_TYPE> -class TAO_NS_ProxySupplier_T : public virtual TAO_NS_Proxy_T <SERVANT_TYPE>, public virtual TAO_NS_ProxySupplier -{ -public: - /// Constuctor - TAO_NS_ProxySupplier_T (void); - - /// Destructor - ~TAO_NS_ProxySupplier_T (); - - /// Notification of subscriptions set at the admin. - virtual void admin_types_changed (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL); - - ///= POA_Notify_Internal methods - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward_structured (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward_structured_no_filtering (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward_any (const CORBA::Any & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward_any_no_filtering (const CORBA::Any & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); -protected: - //= Data Members - CORBA::Boolean is_suspended_; - - // = Interface methods - virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr MyAdmin ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void suspend_connection ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyInactive, - CosNotifyChannelAdmin::NotConnected - )); - - virtual void resume_connection ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyChannelAdmin::ConnectionAlreadyActive, - CosNotifyChannelAdmin::NotConnected - )); - - virtual CosNotifyFilter::MappingFilter_ptr priority_filter ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void priority_filter ( - CosNotifyFilter::MappingFilter_ptr priority_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotifyFilter::MappingFilter_ptr lifetime_filter ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void lifetime_filter ( - CosNotifyFilter::MappingFilter_ptr lifetime_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual CosNotification::EventTypeSeq * obtain_offered_types ( - CosNotifyChannelAdmin::ObtainInfoMode mode - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void subscription_change ( - const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyComm::InvalidEventType - )); -}; - -#if defined (__ACE_INLINE__) -#include "ProxySupplier_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ProxySupplier_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("ProxySupplier_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_PROXYSUPPLIER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.inl b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp deleted file mode 100644 index dd340c2b592..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp +++ /dev/null @@ -1,160 +0,0 @@ -// $Id$ - -#include "Proxy_T.h" - -#ifndef TAO_NS_PROXY_T_CPP -#define TAO_NS_PROXY_T_CPP - -#if ! defined (__ACE_INLINE__) -#include "Proxy_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Proxy_T, "$id$") - -template <class SERVANT_TYPE> -TAO_NS_Proxy_T<SERVANT_TYPE>::TAO_NS_Proxy_T (void) -{ -} - -template <class SERVANT_TYPE> -TAO_NS_Proxy_T<SERVANT_TYPE>::~TAO_NS_Proxy_T () -{ -} - -template <class SERVANT_TYPE> PortableServer::Servant -TAO_NS_Proxy_T<SERVANT_TYPE>::servant (void) -{ - return this; -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_incr_refcnt (); -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_decr_refcnt (); -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::validate_event_qos (const CosNotification::QoSProperties & /*required_qos*/, CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -template <class SERVANT_TYPE> CosNotification::QoSProperties* -TAO_NS_Proxy_T<SERVANT_TYPE>::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - return this->TAO_NS_Object::get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - - this->TAO_NS_Object::set_qos (qos ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::validate_qos ( - const CosNotification::QoSProperties & /*required_qos*/, - CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -template <class SERVANT_TYPE> CosNotifyFilter::FilterID -TAO_NS_Proxy_T<SERVANT_TYPE>::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - - this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyFilter::Filter_ptr -TAO_NS_Proxy_T<SERVANT_TYPE>::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ()); - - return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> CosNotifyFilter::FilterIDSeq* -TAO_NS_Proxy_T<SERVANT_TYPE>::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK_RETURN (0); - - return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -template <class SERVANT_TYPE> void -TAO_NS_Proxy_T<SERVANT_TYPE>::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -#endif /* TAO_NS_PROXY_T_CPP */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.h b/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.h deleted file mode 100644 index 090d4edd49a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.h +++ /dev/null @@ -1,158 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Proxy_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_PROXY_T_H -#define TAO_NS_PROXY_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Proxy.h" - -/** - * @class TAO_NS_Proxy_T - * - * @brief The is a base class for all proxys , templatized by the servant - * type. All the Filter Admin and QoS Admin interface methods are - * implemented here by delegating to the admin implementations. - * - */ -template <class SERVANT_TYPE> -class TAO_NS_Proxy_T : public SERVANT_TYPE, public virtual TAO_NS_Proxy -{ -public: - /// Constuctor - TAO_NS_Proxy_T (void); - - /// Destructor - ~TAO_NS_Proxy_T (); - - /// Implements TAO_NS_Object::servant method. - virtual PortableServer::Servant servant (void); - - /// ServantBase refcount methods. - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - virtual void validate_event_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual CosNotification::QoSProperties * get_qos ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos ( - const CosNotification::QoSProperties & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual void validate_qos ( - const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotification::UnsupportedQoS - )); - - virtual CosNotifyFilter::FilterID add_filter ( - CosNotifyFilter::Filter_ptr new_filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::Filter_ptr get_filter ( - CosNotifyFilter::FilterID filter - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException, - CosNotifyFilter::FilterNotFound - )); - - virtual CosNotifyFilter::FilterIDSeq * get_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_filters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); -}; - -#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_Event_Forwarder::StructuredProxyPushSupplier>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_Event_Forwarder::ProxyPushSupplier>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_CosEventChannelAdmin::ProxyPushSupplier>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_CosNotifyChannelAdmin::ProxyPushConsumer>; -template class TAO_Notify_Export -TAO_NS_Proxy_T<POA_CosEventChannelAdmin::ProxyPushConsumer>; -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */ - -#if defined (__ACE_INLINE__) -#include "Proxy_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Proxy_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Proxy_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_PROXY_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.cpp deleted file mode 100644 index 8870699ca0e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// $Id$ - -#include "QoSAdmin.h" -#include "Container.h" -#include "ThreadPool_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "QoSAdmin.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_QoSAdmin, "$Id$") - -TAO_NS_QoSAdmin::TAO_NS_QoSAdmin (void) -{ -} - -TAO_NS_QoSAdmin::~TAO_NS_QoSAdmin () -{ -} - -void -TAO_NS_QoSAdmin::apply_qos (TAO_NS_Container* container, const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) -{ - for (CORBA::ULong index = 0; index < qos.length (); ++index) - { - ACE_CString property_name (qos[index].name); - - if (property_name.compare (NotifyExt::ThreadPool) == 0) - { - // check if ThreadPool is required. - NotifyExt::ThreadPoolParams* tp_params = 0; - - qos[index].value >>= tp_params; - - this->apply_threadpool_qos (container, tp_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - else if (property_name.compare (NotifyExt::ThreadPoolLanes) == 0) - { - NotifyExt::ThreadPoolLanesParams* tpl_params = 0; - - qos[index].value >>= tpl_params; - - this->apply_threadpool_lane_qos (container, tpl_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - } -} - -void -TAO_NS_QoSAdmin::apply_threadpool_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL) -{ - // @@ TODO??: check if number of threads is 0, if so, set as reactive. - - TAO_NS_ThreadPool_Task* worker_task; - - ACE_NEW_THROW_EX (worker_task, - TAO_NS_ThreadPool_Task (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - worker_task->init (tp_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - container->worker_task_own (worker_task); -} - -void -TAO_NS_QoSAdmin::apply_threadpool_lane_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL) -{ - // No lane support - ACE_THROW ((CORBA::NO_IMPLEMENT ())); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.h deleted file mode 100644 index b2d8de83427..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file QoSAdmin.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_QOSADMIN_H -#define TAO_NS_QOSADMIN_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotificationC.h" -#include "orbsvcs/NotifyExtC.h" - -class TAO_NS_Container; - -/** - * @class TAO_NS_QoSAdmin - * - * @brief Admin class to manage and apply QoS parameters to the EventChannel, Admin and Proxy classes. - * - */ -class TAO_Notify_Export TAO_NS_QoSAdmin -{ -public: - /// Constuctor - TAO_NS_QoSAdmin (void); - - /// Destructor - ~TAO_NS_QoSAdmin (); - - void apply_qos (TAO_NS_Container* container, const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL); - -protected: - /// Apply Threadpool QoS - virtual void apply_threadpool_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL); - - /// Apply ThreadpoolLanes QoS - virtual void apply_threadpool_lane_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "QoSAdmin.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_QOSADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.inl b/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.inl deleted file mode 100644 index fcdc349349e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/QoSAdmin.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "QoSAdmin.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp deleted file mode 100644 index ca2e0da3330..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp +++ /dev/null @@ -1,138 +0,0 @@ -// $Id$ - -#include "QoSProperties.h" - -#if ! defined (__ACE_INLINE__) -#include "QoSProperties.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_QoSProperties, "$id$") - -#include "Property.h" - -TAO_NS_QoSProperties::TAO_NS_QoSProperties (void) - :priority_ (CosNotification::Priority), - timeout_ (CosNotification::Timeout), - stop_time_supported_ (CosNotification::StopTimeSupported), - maximum_batch_size_ (CosNotification::MaximumBatchSize), - pacing_interval_ (CosNotification::PacingInterval), - thread_pool_ (NotifyExt::ThreadPool), - thread_pool_lane_ (NotifyExt::ThreadPoolLanes) -{ - unsupported_[0] = CosNotification::EventReliability; - unsupported_[1] = CosNotification::ConnectionReliability; - unsupported_[2] = CosNotification::StartTimeSupported; -} - -TAO_NS_QoSProperties::~TAO_NS_QoSProperties () -{ -} - -int -TAO_NS_QoSProperties::unsupported (ACE_CString& name) -{ - for (int i = 0; i < UNSUPPORTED_PROPERTY_COUNT; ++i) - { - if (this->unsupported_[i] == name) - return 1; - } - - return 0; -} - -int -TAO_NS_QoSProperties::init (const CosNotification::PropertySeq& prop_seq, CosNotification::PropertyErrorSeq& err_seq) -{ - int err_index = -1; - - ACE_CString name; - for (CORBA::ULong i = 0; i < prop_seq.length (); ++i) - { - name = prop_seq[i].name.in(); - - if (this->unsupported (name)) - { - err_index = err_seq.length (); - err_seq.length (err_seq.length () + 1); - - err_seq[err_index].code = CosNotification::UNSUPPORTED_PROPERTY; - err_seq[err_index].name = CORBA::string_dup (prop_seq[i].name); - } - else if (this->property_map_.rebind (prop_seq[i].name.in (), prop_seq[i].value) == -1) - return -1; - // Note call to rebind. This allows to call <init> to set updates. - } - - // Now, init the supported properties - this->priority_.set (*this); - this->timeout_.set (*this); - this->stop_time_supported_.set (*this); - this->maximum_batch_size_.set (*this); - this->pacing_interval_.set (*this); - this->thread_pool_.set (*this); - this->thread_pool_lane_.set (*this); - - return err_index == -1 ? 0 : 1; -} - -int -TAO_NS_QoSProperties::copy (TAO_NS_QoSProperties& qos_properties) -{ - qos_properties.priority_ = this->priority_; - qos_properties.timeout_ = this->timeout_; - qos_properties.stop_time_supported_ = this->stop_time_supported_; - qos_properties.maximum_batch_size_ = this->maximum_batch_size_; - qos_properties.pacing_interval_ = this->pacing_interval_; - - PROPERTY_MAP::ITERATOR iter (this->property_map_); - PROPERTY_MAP::ENTRY *entry; - - for (; iter.next (entry); iter.advance ()) - { - if (qos_properties.property_map_.rebind (entry->ext_id_, entry->int_id_) == -1) - return -1; - } - - return 0; -} - -int -TAO_NS_QoSProperties::transfer (TAO_NS_QoSProperties& qos_properties) -{ - if (this->copy (qos_properties) == -1) - return -1; - - // unbind the properties that we don't want to transfer. - qos_properties.property_map_.unbind (NotifyExt::ThreadPool); - qos_properties.property_map_.unbind (NotifyExt::ThreadPoolLanes); - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_PropertyBase_T<CORBA::Long>; -template class TAO_NS_PropertyBase_T<CORBA::Short>; -template class TAO_NS_PropertyBase_T<TimeBase::TimeT>; - -template class TAO_NS_Property_T<CORBA::Long>; -template class TAO_NS_Property_T<CORBA::Short>; -template class TAO_NS_Property_T<TimeBase::TimeT>; - -template class TAO_NS_StructProperty_T<NotifyExt::ThreadPoolParams>; -template class TAO_NS_StructProperty_T<NotifyExt::ThreadPoolLanesParams>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_PropertyBase_T<CORBA::Long> -#pragma instantiate TAO_NS_PropertyBase_T<CORBA::Short> -#pragma instantiate TAO_NS_PropertyBase_T<TimeBase::TimeT> - -#pragma instantiate TAO_NS_Property_T<CORBA::Long> -#pragma instantiate TAO_NS_Property_T<CORBA::Short> -#pragma instantiate TAO_NS_Property_T<TimeBase::TimeT> - -#pragma instantiate TAO_NS_StructProperty_T<NotifyExt::ThreadPoolParams> -#pragma instantiate TAO_NS_StructProperty_T<NotifyExt::ThreadPoolLanesParams> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h deleted file mode 100644 index 0b65e375865..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h +++ /dev/null @@ -1,102 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file QoSProperties.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_QOSPROPERTIES_H -#define TAO_NS_QOSPROPERTIES_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "PropertySeq.h" -#include "Property_T.h" -#include "Property_Boolean.h" -#include "Property.h" - -/** - * @class TAO_NS_QoSProperties - * - * @brief - * - */ -class TAO_Notify_Export TAO_NS_QoSProperties : public TAO_NS_PropertySeq -{ -public: - /// Constuctor - TAO_NS_QoSProperties (void); - - /// Destructor - ~TAO_NS_QoSProperties (); - - /// Return 0 on success, 1 if unsupported properties were detected and -1 on error. - int init (const CosNotification::PropertySeq& prop_seq, CosNotification::PropertyErrorSeq& err_seq); - - /// Populate <qos_properties> with all properties from this object. Returns -1 on error. - int copy (TAO_NS_QoSProperties& qos_properties); - - /// Populate <qos_properties> with properties that can be transfered.Returns -1 on error. - int transfer (TAO_NS_QoSProperties& qos_properties); - - ///= Accessors - /// ThreadPool - const TAO_NS_Property_ThreadPool& thread_pool (void) const; - - /// ThreadPoolLane - const TAO_NS_Property_ThreadPoolLanes& thread_pool_lane (void) const; - - /// Maximum Batch Size - const TAO_NS_Property_Long& maximum_batch_size (void) const; - - /// Pacing Interval - const TAO_NS_Property_Time& pacing_interval (void) const; - -protected: - /// Return 1 if <value> is unsupported. - int unsupported (ACE_CString& name); - - enum {UNSUPPORTED_PROPERTY_COUNT = 3}; - - ///= Unsupported Properties. - ACE_CString unsupported_[UNSUPPORTED_PROPERTY_COUNT]; - - ///= Supported properties - - /// Priority - TAO_NS_Property_Short priority_; - - /// Timeout - TAO_NS_Property_Time timeout_; - - /// Stop Time Supported - TAO_NS_Property_Boolean stop_time_supported_; - - /// Maximum Batch Size - TAO_NS_Property_Long maximum_batch_size_; - - /// Pacing Interval - TAO_NS_Property_Time pacing_interval_; - - /// ThreadPool Params. - TAO_NS_Property_ThreadPool thread_pool_; - - /// ThreadPoolLane Params. - TAO_NS_Property_ThreadPoolLanes thread_pool_lane_; -}; - -#if defined (__ACE_INLINE__) -#include "QoSProperties.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_QOSPROPERTIES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.inl b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.inl deleted file mode 100644 index e331e8b1046..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.inl +++ /dev/null @@ -1,25 +0,0 @@ -// $Id$ - -ACE_INLINE const TAO_NS_Property_ThreadPool& -TAO_NS_QoSProperties::thread_pool (void) const -{ - return this->thread_pool_; -} - -ACE_INLINE const TAO_NS_Property_ThreadPoolLanes& -TAO_NS_QoSProperties::thread_pool_lane (void) const -{ - return this->thread_pool_lane_; -} - -ACE_INLINE const TAO_NS_Property_Long& -TAO_NS_QoSProperties::maximum_batch_size (void) const -{ - return this->maximum_batch_size_; -} - -ACE_INLINE const TAO_NS_Property_Time& -TAO_NS_QoSProperties::pacing_interval (void) const -{ - return this->pacing_interval_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.cpp deleted file mode 100644 index 411dab84434..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - -#include "RTCORBA_Builder.h" -#include "ace/Auto_Ptr.h" -#include "RTCORBA_POA_Helper.h" -#include "EventChannel.h" -#include "Proxy.h" -#include "Admin.h" -#include "EventChannelFactory.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_Builder.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_Builder, "$Id$") - -TAO_NS_RTCORBA_Builder::TAO_NS_RTCORBA_Builder (void) -{ -} - -TAO_NS_RTCORBA_Builder::~TAO_NS_RTCORBA_Builder () -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.h deleted file mode 100644 index b037386338b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_Builder.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_BUILDER_H -#define TAO_NS_RTCORBA_BUILDER_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Builder.h" - -/** - * @class TAO_NS_RTCORBA_Builder - * - * @brief Builder for RTCORBA specific classes. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_Builder : public TAO_NS_Builder -{ -public: - /// Constuctor - TAO_NS_RTCORBA_Builder (void); - - /// Destructor - ~TAO_NS_RTCORBA_Builder (); -}; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_Builder.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_BUILDER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.inl deleted file mode 100644 index 89c5aa485e2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Builder.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_Builder.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.cpp deleted file mode 100644 index 9dbc9bf495b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// $Id$ - -#include "RTCORBA_EventChannel.h" -#include "EventChannel.h" -#include "Proxy.h" -#include "Admin.h" -#include "EventChannelFactory.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_EventChannel.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_EventChannel, "$Id$") - -TAO_NS_RTCORBA_EventChannel::TAO_NS_RTCORBA_EventChannel (void) -{ -} - -TAO_NS_RTCORBA_EventChannel::~TAO_NS_RTCORBA_EventChannel () -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.h deleted file mode 100644 index 2b6470d3e97..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_EventChannel.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_EVENTCHANNEL_H -#define TAO_NS_RTCORBA_EVENTCHANNEL_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "EventChannel.h" - - /** - * @class TAO_NS_RTCORBA_EventChannel - * - * @brief RTCORBA specific EventChannel. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_EventChannel : public TAO_NS_EventChannel -{ -public: - /// Constuctor - TAO_NS_RTCORBA_EventChannel (void); - - /// Destructor - ~TAO_NS_RTCORBA_EventChannel (); - -protected: -}; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_EventChannel.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_EVENTCHANNEL_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.inl deleted file mode 100644 index 298a4a0d7f8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_EventChannel.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_EventChannel.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.cpp deleted file mode 100644 index 6e49fb45af4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ - -#include "RTCORBA_Factory.h" -#include "Structured/RTCORBA_StructuredProxyPushSupplier_Tie.h" -#include "Structured/RTCORBA_StructuredProxyPushConsumer.h" -#include "RTCORBA_EventChannel.h" -#include "Admin.h" -#include "Proxy.h" -#include "RTCORBA_QoSAdmin.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_Factory.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_Factory, "$Id$") - -TAO_NS_RTCORBA_Factory::TAO_NS_RTCORBA_Factory (void) -{ -} - -TAO_NS_RTCORBA_Factory::~TAO_NS_RTCORBA_Factory () -{ -} - -void -TAO_NS_RTCORBA_Factory::create (TAO_NS_QoSAdmin*& qos_admin ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (qos_admin, TAO_NS_RTCORBA_QoSAdmin (), CORBA::NO_MEMORY ()); -} - -void -TAO_NS_RTCORBA_Factory::create (TAO_NS_EventChannel*& channel ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (channel, - TAO_NS_RTCORBA_EventChannel (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_RTCORBA_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_SINGLE_ARG_DECL) -{ - TAO_NS_RTCORBA_StructuredProxyPushSupplier_Tie* proxy_tie; - - ACE_NEW_THROW_EX (proxy_tie, - TAO_NS_RTCORBA_StructuredProxyPushSupplier_Tie (), - CORBA::NO_MEMORY ()); - proxy = proxy_tie->_tied_object (); - - /// set correct callback. - proxy->destroy_callback (proxy_tie); - -} - -void -TAO_NS_RTCORBA_Factory::create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_RTCORBA_StructuredProxyPushConsumer (), - CORBA::NO_MEMORY ()); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.h deleted file mode 100644 index 8b8463a5efc..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_FACTORY_H -#define TAO_NS_RTCORBA_FACTORY_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Factory.h" - -/** - * @class TAO_NS_RTCORBA_Factory - * - * @brief The Factory for the RTCORBA aware Notify classes. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_Factory : public TAO_NS_Factory -{ -public: - /// Constuctor - TAO_NS_RTCORBA_Factory (void); - - /// Destructor - ~TAO_NS_RTCORBA_Factory (); - - /// Create QoSAdmin - virtual void create (TAO_NS_QoSAdmin*& qos_admin ACE_ENV_SINGLE_ARG_DECL); - - /// Create EventChannel - virtual void create (TAO_NS_EventChannel*& ACE_ENV_SINGLE_ARG_DECL); - - /// Create StructuredProxyPushSupplier - virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_SINGLE_ARG_DECL); - - /// Create StructuredProxyPushConsumer - virtual void create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_SINGLE_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_Factory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.inl deleted file mode 100644 index 73c842908fb..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Factory.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_Factory.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.cpp deleted file mode 100644 index f21b7de60b3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// $Id$ - -#include "RTCORBA_Notify_Service.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_Notify_Service.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_Notify_Service, "$Id$") - -#include "Properties.h" -#include "RTCORBA_Properties.h" -#include "RTCORBA_Factory.h" -#include "RTCORBA_Builder.h" - -TAO_NS_RTCORBA_Notify_Service::TAO_NS_RTCORBA_Notify_Service (void) -{ -} - -TAO_NS_RTCORBA_Notify_Service::~TAO_NS_RTCORBA_Notify_Service () -{ -} - -void -TAO_NS_RTCORBA_Notify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - ACE_DEBUG ((LM_DEBUG, "Loading the Real-Time Notification Service...\n")); - - this->init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_RTCORBA_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - //init the base class. - TAO_NS_Notify_Service::init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_RTCORBA_Properties* properties = TAO_NS_RTCORBA_PROPERTIES::instance(); - - // Resolve RTORB - CORBA::Object_var object = - orb->resolve_initial_references ("RTORB" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::RTORB_var rt_orb = - RTCORBA::RTORB::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Resolve RTCurrent - object = - orb->resolve_initial_references ("RTCurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::Current_var current = - RTCORBA::Current::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - /// Set the properties - properties->rt_orb (rt_orb.in ()); - properties->current (current.in ()); -} - -void -TAO_NS_RTCORBA_Notify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_RTCORBA_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_RTCORBA_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_RTCORBA_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -ACE_FACTORY_DEFINE (TAO_RT_Notify,TAO_NS_RTCORBA_Notify_Service) diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.cpp~ b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.cpp~ deleted file mode 100644 index 955ba12759f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.cpp~ +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ - -#include "RTCORBA_Notify_Service.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_Notify_Service.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_Notify_Service, "$Id$") - -#include "Properties.h" -#include "RTCORBA_Properties.h" -#include "RTCORBA_Factory.h" -#include "RTCORBA_Builder.h" - -TAO_NS_RTCORBA_Notify_Service::TAO_NS_RTCORBA_Notify_Service (void) -{ - ACE_DEBUG ((LM_DEBUG, "Loading the Real-Time Notification Service...")); -} - -TAO_NS_RTCORBA_Notify_Service::~TAO_NS_RTCORBA_Notify_Service () -{ -} - -void -TAO_NS_RTCORBA_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - //init the base class. - TAO_NS_Notify_Service::init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_RTCORBA_Properties* properties = TAO_NS_RTCORBA_PROPERTIES::instance(); - - // Resolve RTORB - CORBA::Object_var object = - orb->resolve_initial_references ("RTORB" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::RTORB_var rt_orb = - RTCORBA::RTORB::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Resolve RTCurrent - object = - orb->resolve_initial_references ("RTCurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::Current_var current = - RTCORBA::Current::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - /// Set the properties - properties->rt_orb (rt_orb.in ()); - properties->current (current.in ()); -} - -void -TAO_NS_RTCORBA_Notify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_RTCORBA_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_RTCORBA_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_RTCORBA_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -ACE_FACTORY_DEFINE (TAO_RT_Notify,TAO_NS_RTCORBA_Notify_Service) diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.h deleted file mode 100644 index b84effb722f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_Notify_Service.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_SERVICE_H -#define TAO_NS_RTCORBA_SERVICE_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Notify_Service.h" - -/** - * @class TAO_NS_RTCORBA_Notify_Service - * - * @brief Implemetation of the TAO_NS_Service interface for RT Notification. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_Notify_Service : public TAO_NS_Notify_Service -{ -public: - /// Constuctor - TAO_NS_RTCORBA_Notify_Service (void); - - /// Destructor - ~TAO_NS_RTCORBA_Notify_Service (); - - /// Init the service. - virtual void init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - -protected: - /// Init the data members - virtual void init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Create the Factory for RT Notify objects. - virtual void init_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// Creates the Builder for RT Notify objects. - virtual void init_builder (ACE_ENV_SINGLE_ARG_DECL); -}; - -ACE_FACTORY_DECLARE (TAO_RT_Notify,TAO_NS_RTCORBA_Notify_Service) - -#if defined (__ACE_INLINE__) -#include "RTCORBA_Notify_Service.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_SERVICE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.inl deleted file mode 100644 index f1cc7809251..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Notify_Service.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ -#include "RTCORBA_Notify_Service.h" - diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.cpp deleted file mode 100644 index 0464e39e0ad..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// $Id$ - -#include "RTCORBA_POA_Helper.h" -#include "tao/RTCORBA/RTCORBA.h" -#include "tao/debug.h" -#include "orbsvcs/NotifyExtC.h" -#include "RTCORBA_Properties.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_POA_Helper.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_POA_Helper, "$Id$") - -TAO_NS_RTCORBA_POA_Helper::~TAO_NS_RTCORBA_POA_Helper () -{ -} - -void -TAO_NS_RTCORBA_POA_Helper::init (PortableServer::POA_ptr parent_poa, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL) -{ - char child_poa_name[32]; - ACE_OS_String::itoa (ACE_OS::rand (), child_poa_name, 10); - - this->init (parent_poa, child_poa_name, tp_params ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RTCORBA_POA_Helper::init (PortableServer::POA_ptr parent_poa, const char* poa_name, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL) -{ - CORBA::PolicyList policy_list (4); - - this->set_policy (parent_poa, policy_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - RTCORBA::RTORB_var rt_orb = TAO_NS_RTCORBA_PROPERTIES::instance ()->rt_orb (); - - policy_list.length (3); - policy_list[2] = - rt_orb->create_priority_model_policy (RTCORBA::CLIENT_PROPAGATED, - 0 - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (tp_params != 0) - { - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "Creating threadpool: static threads = %d, def. prio = %d\n", tp_params->static_threads, tp_params->default_priority)); - } - - // Create the thread-pool. - RTCORBA::ThreadpoolId threadpool_id = - rt_orb->create_threadpool (tp_params->stacksize, - tp_params->static_threads, - tp_params->dynamic_threads, - tp_params->default_priority, - tp_params->allow_request_buffering, - tp_params->max_buffered_requests, - tp_params->max_request_buffer_size - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policy_list.length (4); - policy_list[3] = - rt_orb->create_threadpool_policy (threadpool_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - this->create_i (parent_poa, poa_name, policy_list ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RTCORBA_POA_Helper::init (PortableServer::POA_ptr parent_poa, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL) -{ - char child_poa_name[32]; - ACE_OS_String::itoa (ACE_OS::rand (), child_poa_name, 10); - - this->init (parent_poa, child_poa_name, tpl_params ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RTCORBA_POA_Helper::init (PortableServer::POA_ptr parent_poa, const char* poa_name, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL) -{ - CORBA::PolicyList policy_list (4); - - this->set_policy (parent_poa, policy_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - RTCORBA::RTORB_var rt_orb = TAO_NS_RTCORBA_PROPERTIES::instance ()->rt_orb (); - - policy_list.length (3); - policy_list[2] = - rt_orb->create_priority_model_policy (RTCORBA::CLIENT_PROPAGATED, - 0 - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (tpl_params != 0) - { - // Populate RTCORBA Lanes. - RTCORBA::ThreadpoolLanes lanes (tpl_params->lanes.length ()); - - for (CORBA::ULong index = 0; index < tpl_params->lanes.length (); ++index) - { - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "Creating threadpool lane %d: priority = %d, static threads = %d\n", - index, tpl_params->lanes[index].lane_priority, tpl_params->lanes[index].static_threads)); - } - - lanes[index].lane_priority = tpl_params->lanes[index].lane_priority; - lanes[index].static_threads = tpl_params->lanes[index].static_threads; - lanes[index].dynamic_threads = tpl_params->lanes[index].dynamic_threads; - } - - // Create the thread-pool. - RTCORBA::ThreadpoolId threadpool_id = - rt_orb->create_threadpool_with_lanes (tpl_params->stacksize, - lanes, - tpl_params->allow_borrowing, - tpl_params->allow_request_buffering, - tpl_params->max_buffered_requests, - tpl_params->max_request_buffer_size - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policy_list.length (4); - policy_list[3] = - rt_orb->create_threadpool_policy (threadpool_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - this->create_i (parent_poa, poa_name, policy_list ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.h deleted file mode 100644 index 6b4e46d9557..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_POA_Helper.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_POA_Helper_H -#define TAO_NS_RTCORBA_POA_Helper_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "POA_Helper.h" -#include "orbsvcs/NotifyExtC.h" - -/** - * @class TAO_NS_RTCORBA_POA_Helper - * - * @brief Helper for creating RT POA objects. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_POA_Helper : public TAO_NS_POA_Helper -{ -public: - /// Destructor - ~TAO_NS_RTCORBA_POA_Helper (); - - /// Create a new PortableServer::POA. - void init (PortableServer::POA_ptr parent_poa, const char* poa_name, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. The name is chosen at random. - void init (PortableServer::POA_ptr parent_poa, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. - void init (PortableServer::POA_ptr parent_poa, const char* poa_name, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. The name is chosen at random. - void init (PortableServer::POA_ptr parent_poa, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "RT_POA.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_POA_Helper_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.inl deleted file mode 100644 index 9cefb670a0c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_POA_Helper.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_POA_Helper.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.cpp deleted file mode 100644 index b56be4626e8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "RTCORBA_Properties.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_Properties.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_Properties, "$Id$") - -TAO_NS_RTCORBA_Properties::TAO_NS_RTCORBA_Properties (void) -{ -} - -TAO_NS_RTCORBA_Properties::~TAO_NS_RTCORBA_Properties () -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.h deleted file mode 100644 index cc12b60ab9e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_Properties.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_PROPERTIES_H -#define TAO_NS_RTCORBA_PROPERTIES_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Singleton.h" -#include "tao/RTCORBA/RTCORBA.h" - -/** - * @class TAO_NS_RTCORBA_Properties - * - * @brief RTCORBA specifc global properties are stored here. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_Properties -{ - friend class ACE_Singleton<TAO_NS_RTCORBA_Properties, TAO_SYNCH_MUTEX>; - -public: - /// Constuctor - TAO_NS_RTCORBA_Properties (void); - - /// Destructor - ~TAO_NS_RTCORBA_Properties (); - - RTCORBA::RTORB_ptr rt_orb (void); - void rt_orb (RTCORBA::RTORB_ptr rt_orb); - - RTCORBA::Current_ptr current (void); - void current (RTCORBA::Current_ptr current); - -protected: - /// RT-ORB - RTCORBA::RTORB_var rt_orb_; - - /// Current - RTCORBA::Current_var current_; -}; - -typedef ACE_Singleton<TAO_NS_RTCORBA_Properties, TAO_SYNCH_MUTEX> TAO_NS_RTCORBA_PROPERTIES; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_Properties.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_PROPERTIES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.inl deleted file mode 100644 index f6546b553f3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Properties.inl +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -#include "RTCORBA_Properties.h" - -ACE_INLINE RTCORBA::RTORB_ptr -TAO_NS_RTCORBA_Properties::rt_orb (void) -{ - return RTCORBA::RTORB::_duplicate (rt_orb_.in ()); -} - -ACE_INLINE void -TAO_NS_RTCORBA_Properties::rt_orb (RTCORBA::RTORB_ptr rt_orb) -{ - rt_orb_ = RTCORBA::RTORB::_duplicate (rt_orb); -} - -ACE_INLINE RTCORBA::Current_ptr -TAO_NS_RTCORBA_Properties::current (void) -{ - return RTCORBA::Current::_duplicate (current_.in()); -} - -ACE_INLINE void -TAO_NS_RTCORBA_Properties::current (RTCORBA::Current_ptr current) -{ - current_ = RTCORBA::Current::_duplicate (current); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.cpp deleted file mode 100644 index 94f8c1aa8d9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// $Id$ - -#include "RTCORBA_ProxyConsumer.h" - -#include "tao/debug.h" -#include "RTCORBA_Properties.h" -#include "Method_Request_Lookup.h" -#include "Event_Manager.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_ProxyConsumer.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_ProxyConsumer, "$Id$") - -TAO_NS_RTCORBA_ProxyConsumer::TAO_NS_RTCORBA_ProxyConsumer (void) -{ -} - -TAO_NS_RTCORBA_ProxyConsumer::~TAO_NS_RTCORBA_ProxyConsumer () -{ -} - -void -TAO_NS_RTCORBA_ProxyConsumer::push (TAO_NS_Event_var &event) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "(%x,%P,%t) received event priority %d\n", this, - TAO_NS_RTCORBA_PROPERTIES::instance()->current ()->the_priority ())); - - TAO_NS_Method_Request_Lookup request (event, this, this->event_manager_->consumer_map ()); - - request.call (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.h deleted file mode 100644 index b306afe8a27..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_ProxyConsumer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_PROXYCONSUMER_H -#define TAO_NS_RTCORBA_PROXYCONSUMER_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ProxyConsumer.h" - -/** - * @class TAO_NS_RTCORBA_ProxyConsumer - * - * @brief Implements Base ProxyConsumer for RTCORBA aware consumers. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_ProxyConsumer : public virtual TAO_NS_ProxyConsumer -{ -public: - /// Constuctor - TAO_NS_RTCORBA_ProxyConsumer (void); - - /// Destructor - ~TAO_NS_RTCORBA_ProxyConsumer (); - - /// Process - virtual void push (TAO_NS_Event_var &event); -}; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_ProxyConsumer.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_PROXYCONSUMER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.inl deleted file mode 100644 index 296f9ccb0ac..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxyConsumer.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_ProxyConsumer.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.cpp deleted file mode 100644 index ec8a7f337eb..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ - -#include "RTCORBA_ProxySupplier.h" - -#include "ace/Refcounted_Auto_Ptr.h" -#include "tao/debug.h" -#include "RTCORBA_Properties.h" -#include "Event.h" -#include "Types.h" -#include "Structured/StructuredEvent.h" -#include "Method_Request_Dispatch.h" -#include "Method_Request_Dispatch_No_Filtering.h" -#include "Worker_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_ProxySupplier.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_ProxySupplier, "$Id$") - -TAO_NS_RTCORBA_ProxySupplier::TAO_NS_RTCORBA_ProxySupplier (void) -{ -} - -TAO_NS_RTCORBA_ProxySupplier::~TAO_NS_RTCORBA_ProxySupplier () -{ -} - -void -TAO_NS_RTCORBA_ProxySupplier::init_ps (ACE_ENV_SINGLE_ARG_DECL) -{ - // Obtain our ref. - CORBA::Object_var obj = this->ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->event_forwarder_ = Notify_Internal::Event_Forwarder::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RTCORBA_ProxySupplier::push (TAO_NS_Event_var &event) -{ - event->push (this->event_forwarder_.in () ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RTCORBA_ProxySupplier::push_no_filtering (TAO_NS_Event_var &event) -{ - event->push_no_filtering (this->event_forwarder_.in () ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RTCORBA_ProxySupplier::forward (const CosNotification::StructuredEvent& notification ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "(%x,%P,%t) TAO_NS_RTCORBA_ProxySupplier::forward received event priority %d\n", this, - TAO_NS_RTCORBA_PROPERTIES::instance()->current ()->the_priority ())); - - TAO_NS_Event_var event (new TAO_NS_StructuredEvent (notification)); - - TAO_NS_Method_Request_Dispatch request (event, this); - - this->worker_task ()->exec (request); -} - -void -TAO_NS_RTCORBA_ProxySupplier::forward_no_filtering (const CosNotification::StructuredEvent& notification ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "(%x,%P,%t) TAO_NS_RTCORBA_ProxySupplier::forward_no_filtering received event priority %d\n", this, - TAO_NS_RTCORBA_PROPERTIES::instance()->current ()->the_priority ())); - - TAO_NS_Event_var event (new TAO_NS_StructuredEvent (notification)); - - TAO_NS_Method_Request_Dispatch_No_Filtering request (event, this); - - this->worker_task ()->exec (request); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.h deleted file mode 100644 index ed97cb2019d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_ProxySupplier.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_PROXYSUPPLIER_H -#define TAO_NS_RTCORBA_PROXYSUPPLIER_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ProxySupplier.h" - -/** - * @class TAO_NS_RTCORBA_ProxySupplier - * - * @brief ProxySupplier implementation for RTCORBA aware Suppliers. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_ProxySupplier : public virtual TAO_NS_ProxySupplier -{ -public: - /// Constuctor - TAO_NS_RTCORBA_ProxySupplier (void); - - /// Destructor - ~TAO_NS_RTCORBA_ProxySupplier (); - - /// Init method. - virtual void init_ps (ACE_ENV_SINGLE_ARG_DECL); - - /// Override TAO_NS_ProxySupplier::push - virtual void push (TAO_NS_Event_var &event); - - /// Dispatch Event to consumer, no filtering - virtual void push_no_filtering (TAO_NS_Event_var &event); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward_no_filtering (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -private: - /// Our ref. - Notify_Internal::Event_Forwarder_var event_forwarder_; -}; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_ProxySupplier.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_PROXYSUPPLIER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.inl deleted file mode 100644 index d012e5d0036..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_ProxySupplier.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_ProxySupplier.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.cpp deleted file mode 100644 index b1582efca56..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ - -#include "RTCORBA_QoSAdmin.h" -#include "RTCORBA_POA_Helper.h" -#include "Properties.h" -#include "Container.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_QoSAdmin.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_QoSAdmin, "$Id$") - -TAO_NS_RTCORBA_QoSAdmin::TAO_NS_RTCORBA_QoSAdmin (void) -{ -} - -TAO_NS_RTCORBA_QoSAdmin::~TAO_NS_RTCORBA_QoSAdmin () -{ -} - -void -TAO_NS_RTCORBA_QoSAdmin::apply_threadpool_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL) -{ - TAO_NS_RTCORBA_POA_Helper* proxy_poa = 0; - - // Bootstrap EC Proxy POA - ACE_NEW_THROW_EX (proxy_poa, - TAO_NS_RTCORBA_POA_Helper (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (ec_ret._retn ()); - - auto_ptr<TAO_NS_POA_Helper> auto_proxy_poa (proxy_poa); - - PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa (); - - proxy_poa->init (default_poa.in (), tp_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Give ownership of proxy_poa - container->proxy_poa (proxy_poa); - - // release auto ref. - auto_proxy_poa.release (); -} - -void -TAO_NS_RTCORBA_QoSAdmin::apply_threadpool_lane_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL) -{ - TAO_NS_RTCORBA_POA_Helper* proxy_poa = 0; - - // Bootstrap EC Proxy POA - ACE_NEW_THROW_EX (proxy_poa, - TAO_NS_RTCORBA_POA_Helper (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (ec_ret._retn ()); - - auto_ptr<TAO_NS_POA_Helper> auto_proxy_poa (proxy_poa); - - PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa (); - - proxy_poa->init (default_poa.in (), tpl_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Give ownership of proxy_poa - container->proxy_poa (proxy_poa); - - // release auto ref. - auto_proxy_poa.release (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.h deleted file mode 100644 index c5d9add38f8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RTCORBA_QoSAdmin.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RTCORBA_QOSADMIN_H -#define TAO_NS_RTCORBA_QOSADMIN_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "QoSAdmin.h" - -/** - * @class TAO_NS_RTCORBA_QoSAdmin - * - * @brief Admin class that manages RT Notify QoS properties. - * - */ -class TAO_RT_Notify_Export TAO_NS_RTCORBA_QoSAdmin : public TAO_NS_QoSAdmin -{ -public: - /// Constuctor - TAO_NS_RTCORBA_QoSAdmin (void); - - /// Destructor - ~TAO_NS_RTCORBA_QoSAdmin (); - - /// Apply Threadpool QoS - virtual void apply_threadpool_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolParams* tp_params ACE_ENV_ARG_DECL); - - /// Apply ThreadpoolLanes QoS - virtual void apply_threadpool_lane_qos (TAO_NS_Container* container, NotifyExt::ThreadPoolLanesParams* tpl_params ACE_ENV_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "RTCORBA_QoSAdmin.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RTCORBA_QOSADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.inl b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.inl deleted file mode 100644 index 8429a922539..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_QoSAdmin.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_QoSAdmin.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Service.cpp~ b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Service.cpp~ deleted file mode 100644 index 423aa2408e1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Service.cpp~ +++ /dev/null @@ -1,81 +0,0 @@ -// $Id$ - -#include "RTCORBA_Service.h" - -#if ! defined (__ACE_INLINE__) -#include "RTCORBA_Service.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RTCORBA_Service, "$Id$") - -#include "Properties.h" -#include "RTCORBA_Properties.h" -#include "RTCORBA_Factory.h" -#include "RTCORBA_Builder.h" - -TAO_NS_RTCORBA_Service::TAO_NS_RTCORBA_Service (void) -{ -} - -TAO_NS_RTCORBA_Service::~TAO_NS_RTCORBA_Service () -{ -} - -void -TAO_NS_RTCORBA_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - //init the base class. - TAO_NS_Service::init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_RTCORBA_Properties* properties = TAO_NS_RTCORBA_PROPERTIES::instance(); - - // Resolve RTORB - CORBA::Object_var object = - orb->resolve_initial_references ("RTORB" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::RTORB_var rt_orb = - RTCORBA::RTORB::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Resolve RTCurrent - object = - orb->resolve_initial_references ("RTCurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::Current_var current = - RTCORBA::Current::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - /// Set the properties - properties->rt_orb (rt_orb.in ()); - properties->current (current.in ()); -} - -void -TAO_NS_RTCORBA_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_RTCORBA_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_RTCORBA_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_RTCORBA_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - diff --git a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Service.inl~ b/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Service.inl~ deleted file mode 100644 index e3d4ada0708..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RTCORBA_Service.inl~ +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ -#include "RTCORBA_Service.h" - diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.cpp b/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.cpp deleted file mode 100644 index be618793360..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// $Id$ - -#include "RT_Builder.h" - -#include "ace/Auto_Ptr.h" -#include "ace/Dynamic_Service.h" -#include "ETCL_FilterFactory.h" -#include "RT_POA_Helper.h" -#include "Properties.h" -#include "orbsvcs/NotifyExtC.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_Builder.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RT_Builder, "$Id$") - -TAO_NS_RT_Builder::TAO_NS_RT_Builder (void) -{ -} - -TAO_NS_RT_Builder::~TAO_NS_RT_Builder () -{ -} - -CosNotifyFilter::FilterFactory_ptr -TAO_NS_RT_Builder::build_filter_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - return TAO_NS_Builder::build_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER); - - TAO_NS_FilterFactory* ff = ACE_Dynamic_Service<TAO_NS_FilterFactory>::instance ("TAO_NS_FilterFactory"); - - if (ff == 0) - { - ACE_NEW_THROW_EX (ff, - TAO_NS_ETCL_FilterFactory (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (CosNotifyFilter::FilterFactory::_nil ()); - } - - PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa (); - - TAO_NS_RT_POA_Helper filter_poa; - - NotifyExt::ThreadPoolParams tp_params = {0, 1, 0, 0, 0, 0, 0 }; - - //filter_poa.init (default_poa.in (), tp_params ACE_ENV_ARG_PARAMETER); - filter_poa.init (default_poa.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - PortableServer::POA_var filter_poa_var = filter_poa.poa (); - - return ff->create (filter_poa_var ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_Builder::apply_thread_pool_concurrency (TAO_NS_Object& object - , const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL) -{ - TAO_NS_RT_POA_Helper* proxy_poa = 0; - - // Bootstrap EC Proxy POA - ACE_NEW_THROW_EX (proxy_poa, - TAO_NS_RT_POA_Helper (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (ec_ret._retn ()); - - auto_ptr<TAO_NS_POA_Helper> auto_proxy_poa (proxy_poa); - - PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa (); - - proxy_poa->init (default_poa.in (), tp_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Give ownership of proxy_poa - object.proxy_poa_own (proxy_poa); - - // release auto ref. - auto_proxy_poa.release (); -} - -void -TAO_NS_RT_Builder::apply_lane_concurrency (TAO_NS_Object& object - , const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL) -{ - TAO_NS_RT_POA_Helper* proxy_poa = 0; - - // Bootstrap EC Proxy POA - ACE_NEW_THROW_EX (proxy_poa, - TAO_NS_RT_POA_Helper (), - CORBA::NO_MEMORY ()); - ACE_CHECK_RETURN (ec_ret._retn ()); - - auto_ptr<TAO_NS_POA_Helper> auto_proxy_poa (proxy_poa); - - PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa (); - - proxy_poa->init (default_poa.in (), tpl_params ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Give ownership of proxy_poa - object.proxy_poa_own (proxy_poa); - - // release auto ref. - auto_proxy_poa.release (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.h b/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.h deleted file mode 100644 index 89591289e0a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_Builder.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_BUILDER_H -#define TAO_NS_RT_BUILDER_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Builder.h" - -/** - * @class TAO_NS_RT_Builder - * - * @brief Builder for RT specific classes. - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_Builder : public TAO_NS_Builder -{ -public: - /// Constuctor - TAO_NS_RT_Builder (void); - - /// Destructor - virtual ~TAO_NS_RT_Builder (); - - /// Build the Filter Factory. - virtual CosNotifyFilter::FilterFactory_ptr build_filter_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// Apply Thread Pools. - virtual void apply_thread_pool_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL); - - /// Apply Thread Pools with Lanes. - virtual void apply_lane_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "RT_Builder.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_BUILDER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.inl b/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.inl deleted file mode 100644 index 1ce3c730804..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Builder.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RT_Builder.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.cpp deleted file mode 100644 index 5467527c8fc..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - -#include "RT_Factory.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_Factory.inl" -#endif /* __ACE_INLINE__ */ - -#include "Structured/RT_StructuredProxyPushSupplier.h" - -ACE_RCSID(RT_Notify, TAO_NS_RT_Factory, "$Id$") - -TAO_NS_RT_Factory::TAO_NS_RT_Factory (void) -{ -} - -TAO_NS_RT_Factory::~TAO_NS_RT_Factory () -{ -} - -void -TAO_NS_RT_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (proxy, - TAO_NS_RT_StructuredProxyPushSupplier (), - CORBA::NO_MEMORY ()); -} - -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_RT_Factory) diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.h deleted file mode 100644 index f447f01f0ca..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_Factory.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_FACTORY_H -#define TAO_NS_RT_FACTORY_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Default_Factory.h" - -/** - * @class TAO_NS_RT_Factory - * - * @brief The Factory for the RT aware Notify classes. - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_Factory : public TAO_NS_Default_Factory -{ -public: - /// Constuctor - TAO_NS_RT_Factory (void); - - /// Destructor - virtual ~TAO_NS_RT_Factory (); - - /// Create StructuredProxyPushSupplier - virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL); -}; - -ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_RT_Factory) - -#if defined (__ACE_INLINE__) -#include "RT_Factory.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.inl deleted file mode 100644 index adb4497a7fa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Factory.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RT_Factory.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.cpp deleted file mode 100644 index 448ac8a612d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// $Id$ - -#include "RT_Notify_Service.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_Notify_Service.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RT_Notify_Service, "$Id$") - -#include "Properties.h" -#include "RT_Properties.h" -#include "RT_Factory.h" -#include "RT_Builder.h" - -TAO_NS_RT_Notify_Service::TAO_NS_RT_Notify_Service (void) -{ -} - -TAO_NS_RT_Notify_Service::~TAO_NS_RT_Notify_Service () -{ -} - -void -TAO_NS_RT_Notify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - ACE_DEBUG ((LM_DEBUG, "Loading the Real-Time Notification Service...\n")); - - this->init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_RT_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - //init the base class. - TAO_NS_CosNotify_Service::init_i (orb ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO_NS_RT_Properties* properties = TAO_NS_RT_PROPERTIES::instance(); - - // Resolve RTORB - CORBA::Object_var object = - orb->resolve_initial_references ("RTORB" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::RTORB_var rt_orb = - RTCORBA::RTORB::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - // Resolve RTCurrent - object = - orb->resolve_initial_references ("RTCurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - RTCORBA::Current_var current = - RTCORBA::Current::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - /// Set the properties - properties->rt_orb (rt_orb.in ()); - properties->current (current.in ()); -} - -void -TAO_NS_RT_Notify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL) -{ - this->factory_ = ACE_Dynamic_Service<TAO_NS_Factory>::instance ("TAO_NS_Factory"); - - if (this->factory_ == 0) - { - ACE_NEW_THROW_EX (this->factory_, - TAO_NS_RT_Factory (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - } - - TAO_NS_PROPERTIES::instance()->factory (this->factory_); -} - -void -TAO_NS_RT_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->builder_, - TAO_NS_RT_Builder (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - TAO_NS_PROPERTIES::instance()->builder (this->builder_); -} - -ACE_FACTORY_DEFINE (TAO_RT_Notify,TAO_NS_RT_Notify_Service) diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.h b/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.h deleted file mode 100644 index 4ea50500350..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_Notify_Service.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_NOTIFY_SERVICE_H -#define TAO_NS_RT_NOTIFY_SERVICE_H - -#include "ace/pre.h" -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "CosNotify_Service.h" - -/** - * @class TAO_NS_RT_Notify_Service - * - * @brief Implemetation of the TAO_NS_Service interface for RT Notification. - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_Notify_Service : public TAO_NS_CosNotify_Service -{ -public: - /// Constuctor - TAO_NS_RT_Notify_Service (void); - - /// Destructor - ~TAO_NS_RT_Notify_Service (); - - /// Init the service. - virtual void init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - -protected: - /// Init the data members - virtual void init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); - - /// Create the Factory for RT Notify objects. - virtual void init_factory (ACE_ENV_SINGLE_ARG_DECL); - - /// Creates the Builder for RT Notify objects. - virtual void init_builder (ACE_ENV_SINGLE_ARG_DECL); -}; - -ACE_FACTORY_DECLARE (TAO_RT_Notify,TAO_NS_RT_Notify_Service) - -#if defined (__ACE_INLINE__) -#include "RT_Notify_Service.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_NOTIFY_SERVICE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.inl b/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.inl deleted file mode 100644 index 2274b4dbd69..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Notify_Service.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RT_Notify_Service.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.cpp b/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.cpp deleted file mode 100644 index 7e0868f8bf9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// $Id$ - -#include "RT_POA_Helper.h" -#include "tao/RTCORBA/RTCORBA.h" -#include "tao/debug.h" -#include "orbsvcs/NotifyExtC.h" -#include "RT_Properties.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_POA_Helper.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RT_POA_Helper, "$Id$") - -TAO_NS_RT_POA_Helper::~TAO_NS_RT_POA_Helper () -{ -} - -void -TAO_NS_RT_POA_Helper::init (PortableServer::POA_ptr parent_poa, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL) -{ - char child_poa_name[32]; - ACE_OS_String::itoa (ACE_OS::rand (), child_poa_name, 10); - - this->init (parent_poa, child_poa_name, tp_params ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_POA_Helper::init (PortableServer::POA_ptr parent_poa, const char* poa_name - , const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL) -{ - CORBA::PolicyList policy_list (4); - - this->set_policy (parent_poa, policy_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - RTCORBA::RTORB_var rt_orb = TAO_NS_RT_PROPERTIES::instance ()->rt_orb (); - - policy_list.length (3); - policy_list[2] = - rt_orb->create_priority_model_policy (RTCORBA::CLIENT_PROPAGATED, - 0 - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Creating threadpool: static threads = %d, def. prio = %d\n" - , tp_params.static_threads, tp_params.default_priority)); - - // Create the thread-pool. - RTCORBA::ThreadpoolId threadpool_id = - rt_orb->create_threadpool (tp_params.stacksize, - tp_params.static_threads, - tp_params.dynamic_threads, - tp_params.default_priority, - tp_params.allow_request_buffering, - tp_params.max_buffered_requests, - tp_params.max_request_buffer_size - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policy_list.length (4); - policy_list[3] = - rt_orb->create_threadpool_policy (threadpool_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->create_i (parent_poa, poa_name, policy_list ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_POA_Helper::init (PortableServer::POA_ptr parent_poa, const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL) -{ - char child_poa_name[32]; - ACE_OS_String::itoa (ACE_OS::rand (), child_poa_name, 10); - - this->init (parent_poa, child_poa_name, tpl_params ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_POA_Helper::init (PortableServer::POA_ptr parent_poa, const char* poa_name - , const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL) -{ - CORBA::PolicyList policy_list (4); - - this->set_policy (parent_poa, policy_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - RTCORBA::RTORB_var rt_orb = TAO_NS_RT_PROPERTIES::instance ()->rt_orb (); - - policy_list.length (3); - policy_list[2] = - rt_orb->create_priority_model_policy (RTCORBA::CLIENT_PROPAGATED, - 0 - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Populate RTCORBA Lanes. - RTCORBA::ThreadpoolLanes lanes (tpl_params.lanes.length ()); - - for (CORBA::ULong index = 0; index < tpl_params.lanes.length (); ++index) - { - if (TAO_debug_level > 0) - { - ACE_DEBUG ((LM_DEBUG, "Creating threadpool lane %d: priority = %d, static threads = %d\n", - index, tpl_params.lanes[index].lane_priority, tpl_params.lanes[index].static_threads)); - } - - lanes[index].lane_priority = tpl_params.lanes[index].lane_priority; - lanes[index].static_threads = tpl_params.lanes[index].static_threads; - lanes[index].dynamic_threads = tpl_params.lanes[index].dynamic_threads; - } - - // Create the thread-pool. - RTCORBA::ThreadpoolId threadpool_id = - rt_orb->create_threadpool_with_lanes (tpl_params.stacksize, - lanes, - tpl_params.allow_borrowing, - tpl_params.allow_request_buffering, - tpl_params.max_buffered_requests, - tpl_params.max_request_buffer_size - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policy_list.length (4); - policy_list[3] = - rt_orb->create_threadpool_policy (threadpool_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->create_i (parent_poa, poa_name, policy_list ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_POA_Helper::init (PortableServer::POA_ptr parent_poa ACE_ENV_ARG_DECL) -{ - CORBA::PolicyList policy_list (1); - - RTCORBA::RTORB_var rt_orb = TAO_NS_RT_PROPERTIES::instance ()->rt_orb (); - - policy_list.length (1); - - policy_list[0] = - rt_orb->create_priority_model_policy (RTCORBA::CLIENT_PROPAGATED, - 0 - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - char child_poa_name[32]; - ACE_OS_String::itoa (ACE_OS::rand (), child_poa_name, 10); - - this->create_i (parent_poa, child_poa_name, policy_list ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.h b/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.h deleted file mode 100644 index 63150165467..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_POA_Helper.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_POA_Helper_H -#define TAO_NS_RT_POA_Helper_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "POA_Helper.h" -#include "orbsvcs/NotifyExtC.h" - -/** - * @class TAO_NS_RT_POA_Helper - * - * @brief Helper for creating RT POA objects. - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_POA_Helper : public TAO_NS_POA_Helper -{ -public: - /// Destructor - ~TAO_NS_RT_POA_Helper (); - - /// Create a new PortableServer::POA. - /// The UNIQUE_ID, USER_ID , CLIENT_PROPAGATED and thread pool policy is applied to the new POA. - void init (PortableServer::POA_ptr parent_poa, const char* poa_name, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. The name is chosen at random. - /// The UNIQUE_ID, USER_ID , CLIENT_PROPAGATED and thread pool policy is applied to the new POA. - void init (PortableServer::POA_ptr parent_poa, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. - /// The UNIQUE_ID, USER_ID , CLIENT_PROPAGATED and thread lane policy is applied to the new POA. - void init (PortableServer::POA_ptr parent_poa, const char* poa_name, - const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. The name is chosen at random. - /// The UNIQUE_ID, USER_ID , CLIENT_PROPAGATED and thread lane policy is applied to the new POA. - void init (PortableServer::POA_ptr parent_poa, const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL); - - /// Create a new PortableServer::POA. The name is chosen at random. - /// The CLIENT_PROPAGATED policy is applied to the new POA. - void init (PortableServer::POA_ptr parent_poa ACE_ENV_ARG_DECL); -}; - -#if defined (__ACE_INLINE__) -#include "RT_POA_Helper.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_POA_Helper_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.inl b/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.inl deleted file mode 100644 index a06831e3235..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_POA_Helper.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RT_POA_Helper.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.cpp b/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.cpp deleted file mode 100644 index b732a196e4d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "RT_Properties.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_Properties.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RT_Properties, "$Id$") - -TAO_NS_RT_Properties::TAO_NS_RT_Properties (void) -{ -} - -TAO_NS_RT_Properties::~TAO_NS_RT_Properties () -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.h b/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.h deleted file mode 100644 index 415d0dbd79c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_Properties.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_PROPERTIES_H -#define TAO_NS_RT_PROPERTIES_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/TAO_Singleton.h" -#include "tao/RTCORBA/RTCORBA.h" - -/** - * @class TAO_NS_RT_Properties - * - * @brief RT specifc global properties are stored here. - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_Properties -{ - friend class TAO_Singleton<TAO_NS_RT_Properties, TAO_SYNCH_MUTEX>; - -public: - /// Constuctor - TAO_NS_RT_Properties (void); - - /// Destructor - ~TAO_NS_RT_Properties (); - - RTCORBA::RTORB_ptr rt_orb (void); - void rt_orb (RTCORBA::RTORB_ptr rt_orb); - - RTCORBA::Current_ptr current (void); - void current (RTCORBA::Current_ptr current); - -protected: - /// RT-ORB - RTCORBA::RTORB_var rt_orb_; - - /// Current - RTCORBA::Current_var current_; -}; - -typedef TAO_Singleton<TAO_NS_RT_Properties, TAO_SYNCH_MUTEX> TAO_NS_RT_PROPERTIES; - -TAO_RT_NOTIFY_SINGLETON_DECLARE (TAO_Singleton, TAO_NS_RT_Properties, TAO_SYNCH_MUTEX); - -#if defined (__ACE_INLINE__) -#include "RT_Properties.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_PROPERTIES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.inl b/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.inl deleted file mode 100644 index 77ba96126a0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_Properties.inl +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -#include "RT_Properties.h" - -ACE_INLINE RTCORBA::RTORB_ptr -TAO_NS_RT_Properties::rt_orb (void) -{ - return RTCORBA::RTORB::_duplicate (rt_orb_.in ()); -} - -ACE_INLINE void -TAO_NS_RT_Properties::rt_orb (RTCORBA::RTORB_ptr rt_orb) -{ - rt_orb_ = RTCORBA::RTORB::_duplicate (rt_orb); -} - -ACE_INLINE RTCORBA::Current_ptr -TAO_NS_RT_Properties::current (void) -{ - return RTCORBA::Current::_duplicate (current_.in()); -} - -ACE_INLINE void -TAO_NS_RT_Properties::current (RTCORBA::Current_ptr current) -{ - current_ = RTCORBA::Current::_duplicate (current); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.cpp deleted file mode 100644 index a902546e7ce..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "RT_ProxySupplier.h" - -#include "ace/Refcounted_Auto_Ptr.h" -#include "tao/debug.h" -#include "RT_Properties.h" -#include "Event.h" -#include "Structured/StructuredEvent.h" -#include "Method_Request_Dispatch.h" -#include "Method_Request_Dispatch_No_Filtering.h" -#include "Worker_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_ProxySupplier.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_RT_ProxySupplier, "$Id$") - -TAO_NS_RT_ProxySupplier::TAO_NS_RT_ProxySupplier (void) -{ -} - -TAO_NS_RT_ProxySupplier::~TAO_NS_RT_ProxySupplier () -{ -} - -void -TAO_NS_RT_ProxySupplier::init (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_SINGLE_ARG_DECL) -{ - // Obtain our ref. - CORBA::Object_var obj = this->ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->event_forwarder_ = Notify_Internal::Event_Forwarder::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_ProxySupplier::push (TAO_NS_Event_var &event) -{ - event->push (this->event_forwarder_.in () ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_ProxySupplier::push_no_filtering (TAO_NS_Event_var &event) -{ - event->push_no_filtering (this->event_forwarder_.in () ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.h b/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.h deleted file mode 100644 index 0969e4ad403..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_ProxySupplier.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_PROXYSUPPLIER_H -#define TAO_NS_RT_PROXYSUPPLIER_H -#include "ace/pre.h" - -#include "rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ProxySupplier.h" - -/** - * @class TAO_NS_RT_ProxySupplier - * - * @brief ProxySupplier implementation for RT aware Suppliers. - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_ProxySupplier : public virtual TAO_NS_ProxySupplier -{ -public: - /// Constuctor - TAO_NS_RT_ProxySupplier (void); - - /// Destructor - virtual ~TAO_NS_RT_ProxySupplier (); - - /// Init - virtual void init (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - /// POA_Notify_Internal::Event_Forwarder method - virtual void forward_no_filtering (const CosNotification::StructuredEvent & event ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -private: - /// Our ref. - Notify_Internal::Event_Forwarder_var event_forwarder_; -}; - -#if defined (__ACE_INLINE__) -#include "RT_ProxySupplier.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_PROXYSUPPLIER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.inl b/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.inl deleted file mode 100644 index d012e5d0036..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/RT_ProxySupplier.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RTCORBA_ProxySupplier.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp deleted file mode 100644 index 705ebf295f9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// $Id$ - -#include "Reactive_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "Reactive_Task.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Reactive_Task, "$Id$") - -#include "Timer_Reactor.h" - -TAO_NS_Reactive_Task::TAO_NS_Reactive_Task (void) - :timer_ (0) -{ -} - -TAO_NS_Reactive_Task::~TAO_NS_Reactive_Task () -{ -} - -void -TAO_NS_Reactive_Task::init (TAO_NS_AdminProperties_var& /*admin_properties*/ ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->timer_, - TAO_NS_Timer_Reactor (), - CORBA::NO_MEMORY ()); -} - -void -TAO_NS_Reactive_Task::release (void) -{ - this->timer_->_decr_refcnt (); - delete this; //TODO: Release via factory. -} - -void -TAO_NS_Reactive_Task::shutdown (void) -{ -} - -void -TAO_NS_Reactive_Task::exec (TAO_NS_Method_Request& method_request) -{ - ACE_DECLARE_NEW_CORBA_ENV; - method_request.execute (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -TAO_NS_Timer* -TAO_NS_Reactive_Task::timer (void) -{ - this->timer_->_incr_refcnt (); - return this->timer_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h deleted file mode 100644 index 8b1d7e7dbea..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Reactive_Task.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_REACTIVE_TASK_H -#define TAO_NS_REACTIVE_TASK_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Worker_Task.h" -#include "AdminProperties.h" -#include "Destroy_Callback.h" - -class TAO_NS_Timer_Reactor; - -/** - * @class TAO_NS_Reactive_Task - * - * @brief A reactive worker task. Simply executes the command in the caller's context. - * - */ -class TAO_Notify_Export TAO_NS_Reactive_Task : public TAO_NS_Worker_Task, public TAO_NS_Destroy_Callback -{ -public: - /// Constuctor - TAO_NS_Reactive_Task (void); - - /// Destructor - ~TAO_NS_Reactive_Task (); - - /// Release - virtual void release (void); - - /// Init the reactive task. - void init (TAO_NS_AdminProperties_var& admin_properties ACE_ENV_ARG_DECL); - - /// Shutdown task - virtual void shutdown (void); - - /// Exec the request. - virtual void exec (TAO_NS_Method_Request& method_request); - - /// The object used by clients to register timers. This method returns a Reactor based Timer. - virtual TAO_NS_Timer* timer (void); - - /// Returns NULL. - virtual TAO_NS_Buffering_Strategy* buffering_strategy (void); - -protected: - /// The timer. - TAO_NS_Timer_Reactor* timer_; -}; - -#if defined (__ACE_INLINE__) -#include "Reactive_Task.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_REACTIVE_TASK_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.inl b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.inl deleted file mode 100644 index 348e107c4ad..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_Buffering_Strategy* -TAO_NS_Reactive_Task::buffering_strategy (void) -{ - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp deleted file mode 100644 index a5c277a611d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -#include "Refcountable.h" -#include "tao/debug.h" -#include "ace/Log_Msg.h" - -#if ! defined (__ACE_INLINE__) -#include "Refcountable.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Refcountable, "$Id$") - -TAO_NS_Refcountable::TAO_NS_Refcountable (void) - :refcount_ (1) -{ -} - -TAO_NS_Refcountable::~TAO_NS_Refcountable () -{ -} - -CORBA::ULong -TAO_NS_Refcountable::_incr_refcnt (void) -{ - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); - - if (TAO_debug_level > 1 ) - ACE_DEBUG ((LM_DEBUG,"object:%x incr refcount = %d\n", this, refcount_+1 )); - - - return this->refcount_++; -} - -CORBA::ULong -TAO_NS_Refcountable::_decr_refcnt (void) -{ - { - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); - - if (TAO_debug_level > 1 ) - ACE_DEBUG ((LM_DEBUG,"object:%x decr refcount = %d\n", this, refcount_-1 )); - - this->refcount_--; - if (this->refcount_ != 0) - return this->refcount_; - } - - this->release (); - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h deleted file mode 100644 index 77a45cd16fa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Refcountable.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_REFCOUNTABLE_H -#define TAO_NS_REFCOUNTABLE_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Synch_T.h" -#include "tao/orbconf.h" -#include "tao/corbafwd.h" - -/** - * @class TAO_NS_Refcountable - * - * @brief Thread-safe refounting, calls the <release> method when refcount falls to 0. - * - */ -class TAO_Notify_Export TAO_NS_Refcountable -{ -public: - /// Constuctor - TAO_NS_Refcountable (void); - - /// Destructor - virtual ~TAO_NS_Refcountable (); - - /// This method sigantures deliberately match the RefCounting methods required for ESF Proxy - CORBA::ULong _incr_refcnt (void); - CORBA::ULong _decr_refcnt (void); - - /// The release method is called when the refcount reaches 0. - virtual void release (void) = 0; - -protected: - /// The reference count. - CORBA::ULong refcount_; - - /// The mutex to serialize access to state variables. - TAO_SYNCH_MUTEX lock_; -}; - -/***********************************************************************/ - -/** - * @class TAO_NS_Refcountable_Guard - * - * @brief Ref. Count Guard - * Increments the reference count in the constructor, the count is decremented when the guard's is destructor. - * - */ -class TAO_Notify_Export TAO_NS_Refcountable_Guard -{ -public: - TAO_NS_Refcountable_Guard (TAO_NS_Refcountable& refcountable); - - ~TAO_NS_Refcountable_Guard (); - -protected: - TAO_NS_Refcountable& refcountable_; -}; - -#if defined (__ACE_INLINE__) -#include "Refcountable.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_REFCOUNTABLE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.inl b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.inl deleted file mode 100644 index be75f075cd8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.inl +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -ACE_INLINE -TAO_NS_Refcountable_Guard::TAO_NS_Refcountable_Guard (TAO_NS_Refcountable& refcountable) - :refcountable_ (refcountable) -{ - this->refcountable_._incr_refcnt (); -} - -ACE_INLINE -TAO_NS_Refcountable_Guard::~TAO_NS_Refcountable_Guard () -{ - this->refcountable_._decr_refcnt (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp deleted file mode 100644 index d6a9d03f7f2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// $Id$ - -#ifndef TAO_NS_SEQ_WORKER_T_CPP -#define TAO_NS_SEQ_WORKER_T_CPP - -#include "Seq_Worker_T.h" - -#if ! defined (__ACE_INLINE__) -#include "Seq_Worker_T.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Seq_Worker_T, "$id$") - -template <class T> -TAO_NS_Seq_Worker_T<T>::TAO_NS_Seq_Worker_T (void) -{ -} - -template<class TYPE> TAO_NS_Seq_Worker_T<TYPE>::SEQ* -TAO_NS_Seq_Worker_T<TYPE>::create (CONTAINER &container ACE_ENV_ARG_DECL) -{ - SEQ* tmp; - ACE_NEW_THROW_EX (tmp, //this->seq_, - SEQ (), - CORBA::INTERNAL ()); - - this->seq_ = tmp; - - container.collection ()->for_each (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return this->seq_._retn (); - -} - -#endif /* TAO_NS_SEQ_WORKER_T_CPP */ - diff --git a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h deleted file mode 100644 index c4cb69c2f6d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Seq_Worker_T.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_SEQ_WORKER_T_H -#define TAO_NS_SEQ_WORKER_T_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "orbsvcs/ESF/ESF_Worker.h" -#include "Container_T.h" - -/** - * @class TAO_NS_Seq_Worker_T - * - * @brief Helper to construct a sequence of IDS in a collections. - * - */ -template <class TYPE> -class TAO_Notify_Export TAO_NS_Seq_Worker_T : public TAO_ESF_Worker<TYPE> -{ - typedef TAO_NS_Container_T<TYPE> CONTAINER; - typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION; - typedef typename TYPE::SEQ SEQ; - typedef typename TYPE::SEQ_VAR SEQ_VAR; - -public: - /// Constructor - TAO_NS_Seq_Worker_T (void); - - /// create a SEQ - SEQ* create (CONTAINER& container ACE_ENV_ARG_DECL); - -protected: - ///= TAO_ESF_Worker method - void work (TYPE* object ACE_ENV_ARG_DECL); - - /// The result - SEQ_VAR seq_; -}; - -#if defined (__ACE_INLINE__) -#include "Seq_Worker_T.inl" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Seq_Worker_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Seq_Worker_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#include "ace/post.h" -#endif /* TAO_NS_SEQ_WORKER_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl deleted file mode 100644 index 97489c1811e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl +++ /dev/null @@ -1,9 +0,0 @@ -// $Id$ - -template<class TYPE> ACE_INLINE void -TAO_NS_Seq_Worker_T<TYPE>::work (TYPE* type ACE_ENV_ARG_DECL_NOT_USED) -{ - this->seq_->length (this->seq_->length () + 1); - - this->seq_[this->seq_->length () - 1] = type->id (); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Service.h b/TAO/orbsvcs/orbsvcs/Notify/Service.h deleted file mode 100644 index d10636f5b12..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Service.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Service.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_SERVICE_H -#define TAO_NS_SERVICE_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "tao/PortableServer/PortableServer.h" - -/** - * @class TAO_NS_Service - * - * @brief Abstract ACE_Service_Object interface that is a - * factory for creating a Notify EventChannelFactory. - * Note that a Service creates only 1 Factory object. - * - */ -class TAO_Notify_Export TAO_NS_Service : public ACE_Service_Object -{ -public: - /// Define Service_Object method otherwise SunCC compiler complains. - virtual int init (int argc, char *argv[]) = 0; - - /// Init the service. - virtual void init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) = 0; - - /// Create the Channel Factory. - virtual CosNotifyChannelAdmin::EventChannelFactory_ptr create ( - PortableServer::POA_ptr default_POA ACE_ENV_ARG_DECL - ) = 0; -}; - -#define TAO_NOTIFY_DEF_EMO_FACTORY_NAME "Notify_Default_Event_Manager_Objects_Factory" - -#define TAO_NS_NOTIFICATION_SERVICE_NAME "TAO_NS_Service" - -#define TAO_NS_COS_NOTIFICATION_SERVICE_NAME "TAO_NS_CosNotify_Service" - -#define TAO_NS_RT_NOTIFICATION_SERVICE_NAME "TAO_NS_RT_Notify_Service" - -#include "ace/post.h" -#endif /* TAO_NS_SERVICE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.cpp deleted file mode 100644 index 4d15210ad6c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "RT_StructuredProxyPushSupplier.h" - -#if ! defined (__ACE_INLINE__) -#include "RT_StructuredProxyPushSupplier.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_RT_StructuredProxyPushSupplier, "$id$") - -TAO_NS_RT_StructuredProxyPushSupplier::TAO_NS_RT_StructuredProxyPushSupplier (void) -{ -} - -TAO_NS_RT_StructuredProxyPushSupplier::~TAO_NS_RT_StructuredProxyPushSupplier () -{ -} - -CORBA::Object_ptr -TAO_NS_RT_StructuredProxyPushSupplier::activate (PortableServer::Servant servant ACE_ENV_ARG_DECL) -{ - CORBA::Object_var object = TAO_NS_Object::activate (servant ACE_ENV_ARG_DECL); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - // Obtain our ref. - CORBA::Object_var obj = this->ref (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - this->event_forwarder_ = Event_Forwarder::StructuredProxyPushSupplier::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); - - return object._retn (); -} - -void -TAO_NS_RT_StructuredProxyPushSupplier::push (const TAO_NS_Event_var &event) -{ - event->push (this->event_forwarder_.in () ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_RT_StructuredProxyPushSupplier::push_no_filtering (const TAO_NS_Event_var &event) -{ - event->push_no_filtering (this->event_forwarder_.in () ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.h deleted file mode 100644 index a183a8193c7..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file RT_StructuredProxyPushSupplier.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_RT_STRUCTUREDPROXYPUSHSUPPLIER_H -#define TAO_NS_RT_STRUCTUREDPROXYPUSHSUPPLIER_H -#include "ace/pre.h" - -#include "../rt_notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "StructuredProxyPushSupplier.h" - -/** - * @class TAO_NS_RT_StructuredProxyPushSupplier - * - * @brief - * - */ -class TAO_RT_Notify_Export TAO_NS_RT_StructuredProxyPushSupplier : public virtual TAO_NS_StructuredProxyPushSupplier -{ -public: - /// Constuctor - TAO_NS_RT_StructuredProxyPushSupplier (void); - - /// Destructor - ~TAO_NS_RT_StructuredProxyPushSupplier (); - - /// Activate this object and obtain the Event_Forwarder interface. - virtual CORBA::Object_ptr activate (PortableServer::Servant servant ACE_ENV_ARG_DECL); - - /// Override TAO_NS_ProxySupplier::push - virtual void push (const TAO_NS_Event_var &event); - - /// Dispatch Event to consumer, no filtering - virtual void push_no_filtering (const TAO_NS_Event_var &event); - -private: - /// Our ref. - Event_Forwarder::StructuredProxyPushSupplier_var event_forwarder_; -}; - -#if defined (__ACE_INLINE__) -#include "RT_StructuredProxyPushSupplier.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_RT_STRUCTUREDPROXYPUSHSUPPLIER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.inl b/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.inl deleted file mode 100644 index 2387811a56a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Structured/RT_StructuredProxyPushSupplier.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "RT_StructuredProxyPushSupplier.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.cpp b/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.cpp deleted file mode 100644 index 12210af6fc4..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// $Id$ - -#include "Subscription_Change_Worker.h" - -#if ! defined (__ACE_INLINE__) -#include "Subscription_Change_Worker.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_Subscription_Change_Worker, "$id$") - -TAO_NS_Subscription_Change_Worker::TAO_NS_Subscription_Change_Worker (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed) -:added_ (added), removed_ (removed) -{ -} - -TAO_NS_Subscription_Change_Worker::~TAO_NS_Subscription_Change_Worker () -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.h b/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.h deleted file mode 100644 index 2baea73b727..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Subscription_Change_Worker.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_SUBSCRIPTION_CHANGE_WORKER_H -#define TAO_SUBSCRIPTION_CHANGE_WORKER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotificationC.h" -#include "orbsvcs/ESF/ESF_Worker.h" - -class TAO_NS_Proxy; - -/** - * @class TAO_Subscription_Change_Worker - * - * @brief - * - */ -class TAO_Notify_Export TAO_NS_Subscription_Change_Worker : public TAO_ESF_Worker<TAO_NS_Proxy> -{ -public: - /// Constuctor - TAO_NS_Subscription_Change_Worker (const CosNotification::EventTypeSeq & added, const CosNotification::EventTypeSeq & removed); - - /// Destructor - ~TAO_NS_Subscription_Change_Worker (); - - ///= TAO_ESF_Worker method - void work (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL); - -protected: - const CosNotification::EventTypeSeq & added_; - const CosNotification::EventTypeSeq & removed_; -}; - -#if defined (__ACE_INLINE__) -#include "Subscription_Change_Worker.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_SUBSCRIPTION_CHANGE_WORKER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.inl b/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.inl deleted file mode 100644 index cb6180d5d7a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Subscription_Change_Worker.inl +++ /dev/null @@ -1,9 +0,0 @@ -// $Id$ - -#include "Proxy.h" - -ACE_INLINE void -TAO_NS_Subscription_Change_Worker::work (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL) -{ - proxy->admin_types_changed (this->added_, this->removed_ ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp deleted file mode 100644 index f03f91207e2..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -#include "Supplier.h" - -#if ! defined (__ACE_INLINE__) -#include "Supplier.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Supplier, "$Id$") - -#include "ProxyConsumer.h" -#include "Proxy.h" - -TAO_NS_Supplier::TAO_NS_Supplier (TAO_NS_ProxyConsumer* proxy) - :proxy_ (proxy) -{ -} - -TAO_NS_Supplier::~TAO_NS_Supplier () -{ -} - -TAO_NS_Proxy* -TAO_NS_Supplier::proxy (void) -{ - return this->proxy_consumer (); -} - -void -TAO_NS_Supplier::dispatch_updates_i (const CosNotification::EventTypeSeq& added, const CosNotification::EventTypeSeq& removed - ACE_ENV_ARG_DECL) -{ - if (!CORBA::is_nil (this->subscribe_.in ())) - this->subscribe_->subscription_change (added, removed ACE_ENV_ARG_PARAMETER); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Supplier.h b/TAO/orbsvcs/orbsvcs/Notify/Supplier.h deleted file mode 100644 index f24bddae07c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Supplier.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Supplier.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_SUPPLIER_H -#define TAO_NS_SUPPLIER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Peer.h" - -#include "orbsvcs/CosNotifyCommC.h" -class TAO_NS_ProxyConsumer; - -/** - * @class TAO_NS_Supplier - * - * @brief Base Wrappers for Suppliers that connect to the EventChannel. - * - */ -class TAO_Notify_Export TAO_NS_Supplier : public TAO_NS_Peer -{ -public: - /// Constuctor - TAO_NS_Supplier (TAO_NS_ProxyConsumer* proxy); - - /// Destructor - ~TAO_NS_Supplier (); - - /// Access Specific Proxy. - TAO_NS_ProxyConsumer* proxy_consumer (void); - - /// Access Base Proxy. - virtual TAO_NS_Proxy* proxy (void); - -protected: - /// Dispatch updates implementation. - virtual void dispatch_updates_i (const CosNotification::EventTypeSeq& added, - const CosNotification::EventTypeSeq& removed - ACE_ENV_ARG_DECL); - - /// The proxy that we associate with. - TAO_NS_ProxyConsumer* proxy_; - - /// Interface that accepts subscription_changes - CosNotifyComm::NotifySubscribe_var subscribe_; -}; - -#if defined (__ACE_INLINE__) -#include "Supplier.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_SUPPLIER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Supplier.inl b/TAO/orbsvcs/orbsvcs/Notify/Supplier.inl deleted file mode 100644 index 6df91e0fd9a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Supplier.inl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -ACE_INLINE TAO_NS_ProxyConsumer* -TAO_NS_Supplier::proxy_consumer (void) -{ - return this->proxy_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp deleted file mode 100644 index a90e8a16e62..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp +++ /dev/null @@ -1,300 +0,0 @@ -// $Id$ - -#include "SupplierAdmin.h" - -#if ! defined (__ACE_INLINE__) -#include "SupplierAdmin.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_SupplierAdmin, "$Id$") - -#include "orbsvcs/ESF/ESF_Proxy_Collection.h" -#include "Builder.h" -#include "Proxy.h" -#include "EventChannel.h" -#include "Subscription_Change_Worker.h" -#include "Find_Worker_T.h" -#include "Seq_Worker_T.h" -#include "Properties.h" - -TAO_NS_SupplierAdmin::TAO_NS_SupplierAdmin (void) -{ -} - -TAO_NS_SupplierAdmin::~TAO_NS_SupplierAdmin () -{ -} - -void -TAO_NS_SupplierAdmin::init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL) -{ - TAO_NS_Admin::init (ec); - - const CosNotification::QoSProperties &default_sa_qos = - TAO_NS_PROPERTIES::instance ()->default_supplier_admin_qos_properties (); - - this->set_qos (default_sa_qos ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_SupplierAdmin::_add_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_incr_refcnt (); -} - -void -TAO_NS_SupplierAdmin::_remove_ref (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ - this->_decr_refcnt (); -} - -void -TAO_NS_SupplierAdmin::release (void) -{ - delete this; - //@@ inform factory -} - -void -TAO_NS_SupplierAdmin::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1) - return; - - ACE_CHECK; - - this->ec_->remove (this ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -TAO_NS_SupplierAdmin::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )) -{ - this->TAO_NS_Object::set_qos (qos ACE_ENV_ARG_PARAMETER); -} - -CosNotification::QoSProperties* -TAO_NS_SupplierAdmin::get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->TAO_NS_Object::get_qos (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_NS_SupplierAdmin::obtain_notification_push_consumer (CosNotifyChannelAdmin::ClientType ctype - , CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )) - -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this - , ctype - , proxy_id - ACE_ENV_ARG_PARAMETER); -} - -CosEventChannelAdmin::ProxyPushConsumer_ptr -TAO_NS_SupplierAdmin::obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::AdminID -TAO_NS_SupplierAdmin::MyID (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->id (); -} - -CosNotifyChannelAdmin::EventChannel_ptr -TAO_NS_SupplierAdmin::MyChannel (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->ec_->_this (ACE_ENV_SINGLE_ARG_DECL); -} - -::CosNotifyChannelAdmin::InterFilterGroupOperator -TAO_NS_SupplierAdmin::MyOperator (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_operator_; -} - -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_NS_SupplierAdmin::push_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - TAO_NS_Seq_Worker_T<TAO_NS_Proxy> seq_worker; - - return seq_worker.create (*this->proxy_container_ ACE_ENV_ARG_PARAMETER); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_NS_SupplierAdmin::get_proxy_consumer (CosNotifyChannelAdmin::ProxyID proxy_id ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::ProxyNotFound - )) -{ - TAO_NS_Find_Worker_T<TAO_NS_Proxy - , CosNotifyChannelAdmin::ProxyConsumer - , CosNotifyChannelAdmin::ProxyConsumer_ptr - , CosNotifyChannelAdmin::ProxyNotFound> find_worker; - - return find_worker.resolve (proxy_id, *this->proxy_container_ ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_SupplierAdmin::offer_change (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyComm::InvalidEventType - )) - -{ - TAO_NS_EventTypeSeq seq_added (added); - TAO_NS_EventTypeSeq seq_removed (removed); - - { - ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, - CORBA::INTERNAL ()); - ACE_CHECK; - - this->subscribed_types_.init (seq_added, seq_removed); - - TAO_NS_Subscription_Change_Worker worker (added, removed); - - this->proxy_container_->collection ()->for_each (&worker ACE_ENV_ARG_PARAMETER); - } -} - -CosNotifyFilter::FilterID -TAO_NS_SupplierAdmin::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER); -} - -void -TAO_NS_SupplierAdmin::remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )) -{ - this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER); -} - -::CosNotifyFilter::Filter_ptr -TAO_NS_SupplierAdmin::get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )) -{ - return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER); -} - -::CosNotifyFilter::FilterIDSeq* -TAO_NS_SupplierAdmin::get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_NS_SupplierAdmin::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER); -} - -/************** UNIMPLEMENTED METHODS ***************/ - -CosEventChannelAdmin::ProxyPullConsumer_ptr -TAO_NS_SupplierAdmin::obtain_pull_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosEventChannelAdmin::ProxyPullConsumer::_nil ()); -} - -CosNotifyChannelAdmin::ProxyIDSeq* -TAO_NS_SupplierAdmin::pull_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); -} - - -void -TAO_NS_SupplierAdmin::validate_qos (const CosNotification::QoSProperties & /*required_qos*/, - CosNotification::NamedPropertyRangeSeq_out /*available_qos*/ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )) -{ - ACE_THROW (CORBA::NO_IMPLEMENT ()); -} - -CosNotifyChannelAdmin::ProxyConsumer_ptr -TAO_NS_SupplierAdmin::obtain_notification_pull_consumer (CosNotifyChannelAdmin::ClientType /*ctype*/, - CosNotifyChannelAdmin::ProxyID_out /*proxy_id*/ - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )) -{ - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyChannelAdmin::ProxyConsumer::_nil ()); -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO_NS_Find_Worker_T<TAO_NS_Proxy>; -template class TAO_NS_Find_Worker_T<TAO_NS_Proxy>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_Proxy> -#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_Proxy> - -#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h deleted file mode 100644 index 248c4335d6c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h +++ /dev/null @@ -1,189 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file SupplierAdmin.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_SUPPLIERADMIN_H -#define TAO_NS_SUPPLIERADMIN_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/CosNotifyChannelAdminS.h" -#include "Admin.h" - -#if defined(_MSC_VER) -#if (_MSC_VER >= 1200) -#pragma warning(push) -#endif /* _MSC_VER >= 1200 */ -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -/** - * @class TAO_NS_SupplierAdmin - * - * @brief Implementation of CosNotifyChannelAdmin::SupplierAdmin - * - */ -class TAO_Notify_Export TAO_NS_SupplierAdmin : public virtual POA_CosNotifyChannelAdmin::SupplierAdmin - , public virtual TAO_NS_Admin -{ -public: - /// Constuctor - TAO_NS_SupplierAdmin (void); - - /// Destructor - ~TAO_NS_SupplierAdmin (); - - /// Init - void init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL); - - /// ServantBase refcount methods. - virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL); - virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL); - - /// Release - virtual void release (void); - -protected: - /// = CosNotifyChannelAdmin::SupplierAdmin methods - virtual CosNotifyChannelAdmin::AdminID MyID (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::EventChannel_ptr MyChannel (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::InterFilterGroupOperator MyOperator (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ProxyIDSeq * pull_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ProxyIDSeq * push_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr get_proxy_consumer (CosNotifyChannelAdmin::ProxyID proxy_id - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::ProxyNotFound - )); - - virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr obtain_notification_pull_consumer (CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )); - - virtual ::CosNotifyChannelAdmin::ProxyConsumer_ptr obtain_notification_push_consumer (CosNotifyChannelAdmin::ClientType ctype, - CosNotifyChannelAdmin::ProxyID_out proxy_id - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyChannelAdmin::AdminLimitExceeded - )); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosNotification::QoSProperties* get_qos (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void set_qos (const CosNotification::QoSProperties& qos ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )); - - virtual void validate_qos (const CosNotification::QoSProperties & required_qos, - CosNotification::NamedPropertyRangeSeq_out available_qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotification::UnsupportedQoS - )); - - virtual void offer_change (const CosNotification::EventTypeSeq & added, - const CosNotification::EventTypeSeq & removed - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyComm::InvalidEventType - )); - - virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )); - - virtual ::CosNotifyFilter::Filter_ptr get_filter (CosNotifyFilter::FilterID filter ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - , CosNotifyFilter::FilterNotFound - )); - - virtual ::CosNotifyFilter::FilterIDSeq * get_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual void remove_all_filters (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosEventChannelAdmin::ProxyPushConsumer_ptr obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - - virtual ::CosEventChannelAdmin::ProxyPullConsumer_ptr obtain_pull_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )); -}; - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#if defined (__ACE_INLINE__) -#include "SupplierAdmin.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_SUPPLIERADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.inl b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h b/TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h deleted file mode 100644 index 9a1d8034548..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Supplier_Map.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_SUPPLIER_MAP_H -#define TAO_NS_SUPPLIER_MAP_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Event_Map_T.h" -#include "ProxyConsumer.h" - -/** - * @class TAO_NS_Supplier_Map - * - * @brief The Event Map for Suppliers. - * - */ - -typedef TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> TAO_NS_Supplier_Map; - -#include "ace/post.h" -#endif /* TAO_NS_SUPPLIER_MAP_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp deleted file mode 100644 index 5829dd3348e..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// $Id$ - -#include "ThreadPool_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "ThreadPool_Task.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_ThreadPool_Task, "$Id$") - -#include "tao/debug.h" -#include "Properties.h" -#include "Timer_Queue.h" - -TAO_NS_ThreadPool_Task::TAO_NS_ThreadPool_Task (void) - : buffering_strategy_ (0), shutdown_ (0), timer_ (0) -{ -} - -TAO_NS_ThreadPool_Task::~TAO_NS_ThreadPool_Task () -{ - delete this->buffering_strategy_; -} - -int -TAO_NS_ThreadPool_Task::init (int argc, char **argv) -{ - return this->ACE_Task<ACE_NULL_SYNCH>::init (argc, argv); -} - -TAO_NS_Timer* -TAO_NS_ThreadPool_Task::timer (void) -{ - this->timer_->_incr_refcnt (); - - return this->timer_; -} - -void -TAO_NS_ThreadPool_Task::init (const NotifyExt::ThreadPoolParams& tp_params, TAO_NS_AdminProperties_var& admin_properties ACE_ENV_ARG_DECL) -{ - ACE_NEW_THROW_EX (this->timer_, - TAO_NS_Timer_Queue (), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - ACE_NEW_THROW_EX (this->buffering_strategy_, - TAO_NS_Buffering_Strategy (*msg_queue (), admin_properties, 1), - CORBA::NO_MEMORY ()); - ACE_CHECK; - - long flags = THR_NEW_LWP | THR_JOINABLE; - - flags |= - TAO_NS_PROPERTIES::instance()->scope_policy () | - TAO_NS_PROPERTIES::instance()->sched_policy (); - - // Increment the count on this object by the number of threads using it. - { - ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->TAO_NS_Refcountable::lock_); - - this->refcount_+=tp_params.static_threads; - } - - // Become an active object. - if (this->ACE_Task <ACE_NULL_SYNCH>::activate (flags, - tp_params.static_threads, - 0, - ACE_THR_PRI_OTHER_DEF) == -1) - { - // Decrement the count on this object. We know that this object's owner is holding a count on this object so - // we can neglect our responsibility of checking if the refcount is decremented to 0. - { - ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->TAO_NS_Refcountable::lock_); - - this->refcount_-=tp_params.static_threads; - } - - if (TAO_debug_level > 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Insufficient privilege.\n"))); - else - ACE_DEBUG ((LM_ERROR, - ACE_TEXT ("(%t) task activation at priority %d failed\n") - ACE_TEXT ("exiting!\n%a"), - tp_params.default_priority)); - } - - ACE_THROW (CORBA::BAD_PARAM ()); - } -} - -void -TAO_NS_ThreadPool_Task::exec (TAO_NS_Method_Request& method_request) -{ - TAO_NS_Method_Request& request_copy = *method_request.copy (); - - if (this->buffering_strategy_->enqueue (request_copy) == -1) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "NS_ThreadPool_Task (%P|%t) - " - "failed to enqueue\n")); - } -} - -int -TAO_NS_ThreadPool_Task::svc (void) -{ - TAO_NS_Method_Request* method_request; - - while (!shutdown_) - { - ACE_TRY_NEW_ENV - { - ACE_Time_Value* dequeue_blocking_time = 0; - ACE_Time_Value earliest_time; - - if (!this->timer_->impl().is_empty ()) - { - earliest_time = this->timer_->impl().earliest_time (); - dequeue_blocking_time = &earliest_time; - } - - // Dequeue 1 item - int result = buffering_strategy_->dequeue (method_request, dequeue_blocking_time); - - if (result > 0) - { - method_request->execute (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - ACE_Message_Block::release (method_request); - } - else if (errno == ETIME) - { - this->timer_->impl ().expire (); - } - else if (result == -1) - { - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "ThreadPool_Task dequeue failed\n")); - } - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "ThreadPool_Task (%P|%t) exception in method request\n"); - } - ACE_ENDTRY; - } /* while */ - - return 0; -} - -void -TAO_NS_ThreadPool_Task::shutdown (void) -{ - this->shutdown_ = 1; - - this->buffering_strategy_->shutdown (); - - return; -} - -void -TAO_NS_ThreadPool_Task::release (void) -{ - this->timer_->_decr_refcnt (); - - delete this; -} - -int -TAO_NS_ThreadPool_Task::close (u_long /*flags*/) -{ - this->_decr_refcnt (); - - return 0; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h deleted file mode 100644 index 256e45c54fd..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file ThreadPool_Task.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_THREADPOOL_TASK_H -#define TAO_NS_THREADPOOL_TASK_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Task.h" -#include "ace/Message_Queue.h" -#include "ace/Reactor.h" -#include "AdminProperties.h" -#include "Worker_Task.h" -#include "Destroy_Callback.h" - -class TAO_NS_Buffering_Strategy; -class TAO_NS_Timer_Queue; - -/** - * @class TAO_NS_ThreadPool_Task - * - * @brief Implements a Thread Pool Worker Task. - * - */ -class TAO_Notify_Export TAO_NS_ThreadPool_Task : public TAO_NS_Worker_Task, ACE_Task<ACE_NULL_SYNCH>, public TAO_NS_Destroy_Callback -{ - friend class TAO_NS_Method_Request_Shutdown; - -public: - /// Constuctor - TAO_NS_ThreadPool_Task (void); - - /// Destructor - ~TAO_NS_ThreadPool_Task (); - - /// Call the base class init - virtual int init (int argc, char **argv); - - virtual int close (u_long flags); - - /// Release - virtual void release (void); - - /// Activate the threadpool - void init (const NotifyExt::ThreadPoolParams& tp_params, TAO_NS_AdminProperties_var& admin_properties ACE_ENV_ARG_DECL); - - /// Queue the request - virtual void exec (TAO_NS_Method_Request& method_request); - - /// Shutdown task - virtual void shutdown (void); - - /// Update QoS Properties. - virtual void update_qos_properties (const TAO_NS_QoSProperties& qos_properties); - - /// The object used by clients to register timers. - virtual TAO_NS_Timer* timer (void); - - /// Access the Buffering Strategy. - TAO_NS_Buffering_Strategy* buffering_strategy (void); - -protected: - /// task svc - virtual int svc (void); - -private: - /// The buffering strategy to use. - TAO_NS_Buffering_Strategy* buffering_strategy_; - - /// Shutdown - int shutdown_; - - /// The Queue based timer. - TAO_NS_Timer_Queue* timer_; -}; - -#if defined (__ACE_INLINE__) -#include "ThreadPool_Task.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_THREADPOOL_TASK_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.inl b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.inl deleted file mode 100644 index 27f363d90ce..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.inl +++ /dev/null @@ -1,15 +0,0 @@ -// $Id$ - -#include "Buffering_Strategy.h" - -ACE_INLINE void -TAO_NS_ThreadPool_Task::update_qos_properties (const TAO_NS_QoSProperties& qos_properties) -{ - this->buffering_strategy_->update_qos_properties (qos_properties); -} - -ACE_INLINE TAO_NS_Buffering_Strategy* -TAO_NS_ThreadPool_Task::buffering_strategy (void) -{ - return this->buffering_strategy_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer.h b/TAO/orbsvcs/orbsvcs/Notify/Timer.h deleted file mode 100644 index 84423f943d6..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Timer.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_TIMER_H -#define TAO_NS_TIMER_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Time_Value.h" -#include "Refcountable.h" - -class ACE_Event_Handler; - -/** - * @class TAO_NS_Timer - * - * @brief Interface for scheduling timers. - * - */ -class TAO_Notify_Export TAO_NS_Timer : public TAO_NS_Refcountable -{ -public: - /// Destructor - virtual ~TAO_NS_Timer (){}; - - /// Schedule a timer - virtual long schedule_timer (ACE_Event_Handler *handler, - const ACE_Time_Value &delay_time, - const ACE_Time_Value &interval) = 0; - - /// Cancel Timer - virtual int cancel_timer (long timer_id) = 0; -}; - -#include "ace/post.h" -#endif /* TAO_NS_TIMER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp deleted file mode 100644 index aa80ab73163..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ - -#include "Timer_Queue.h" - -#if ! defined (__ACE_INLINE__) -#include "Timer_Queue.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Timer_Queue, "$id$") - -TAO_NS_Timer_Queue::TAO_NS_Timer_Queue (void) -{ -} - -TAO_NS_Timer_Queue::~TAO_NS_Timer_Queue () -{ -} - -void -TAO_NS_Timer_Queue::release (void) -{ - delete this; - //@@ inform factory -} - -long -TAO_NS_Timer_Queue::schedule_timer (ACE_Event_Handler *handler, - const ACE_Time_Value &delay_time, - const ACE_Time_Value &interval) -{ - return this->timer_queue_.schedule (handler, - 0, - timer_queue_.gettimeofday () + delay_time, - interval); -} - -int -TAO_NS_Timer_Queue::cancel_timer (long timer_id) -{ - return this->timer_queue_.cancel (timer_id); -} - -ACE_Timer_Queue& -TAO_NS_Timer_Queue::impl (void) -{ - return this->timer_queue_; -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h deleted file mode 100644 index 52dea61911b..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Timer_Queue.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_TIMER_QUEUE_H -#define TAO_NS_TIMER_QUEUE_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Timer.h" - -#include "ace/Timer_Queue.h" -#include "ace/Timer_Heap.h" - -/** - * @class TAO_NS_Timer_Queue - * - * @brief ACE_Timer_Queue based timer. - * - */ -class TAO_Notify_Export TAO_NS_Timer_Queue : public TAO_NS_Timer -{ -public: - /// Constuctor - TAO_NS_Timer_Queue (void); - - /// Destructor - virtual ~TAO_NS_Timer_Queue (); - - /// Release - virtual void release (void); - - /// Schedule a timer - virtual long schedule_timer (ACE_Event_Handler *handler, - const ACE_Time_Value &delay_time, - const ACE_Time_Value &interval); - - /// Cancel Timer - virtual int cancel_timer (long timer_id); - - /// Get the native impl. - ACE_Timer_Queue& impl (void); - -protected: - /// The Timer Queue - ACE_Timer_Heap timer_queue_; -}; - -#if defined (__ACE_INLINE__) -#include "Timer_Queue.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_TIMER_QUEUE_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.inl b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.inl deleted file mode 100644 index eeaf18f3e5f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Timer_Queue.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp deleted file mode 100644 index 41709be90df..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ - -#include "Timer_Reactor.h" - -#if ! defined (__ACE_INLINE__) -#include "Timer_Reactor.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(Notify, TAO_NS_Timer_Reactor, "$id$") - -#include "ace/Reactor.h" -#include "tao/ORB_Core.h" -#include "Properties.h" - -TAO_NS_Timer_Reactor::TAO_NS_Timer_Reactor (void) - :reactor_ (0) -{ - // Get the ORB - CORBA::ORB_var orb = TAO_NS_PROPERTIES::instance()->orb (); - - this->reactor_ = orb->orb_core ()->reactor (); -} - -TAO_NS_Timer_Reactor::~TAO_NS_Timer_Reactor () -{ -} - -void -TAO_NS_Timer_Reactor::release (void) -{ - delete this; - //@@ inform factory -} - -long -TAO_NS_Timer_Reactor::schedule_timer (ACE_Event_Handler *handler, - const ACE_Time_Value &delay_time, - const ACE_Time_Value &interval) -{ - return this->reactor_->schedule_timer (handler, 0, delay_time, interval); -} - -int -TAO_NS_Timer_Reactor::cancel_timer (long timer_id) -{ - return this->reactor_->cancel_timer (timer_id); -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h deleted file mode 100644 index 67953bb5576..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Timer_Reactor.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_TIMER_REACTOR_H -#define TAO_NS_TIMER_REACTOR_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Timer.h" - -class ACE_Reactor; - -/** - * @class TAO_NS_Timer_Reactor - * - * @brief Reactor::instance based timer. The timers are dispatched by the main thread. - * - */ -class TAO_Notify_Export TAO_NS_Timer_Reactor : public TAO_NS_Timer -{ -public: - /// Constuctor - TAO_NS_Timer_Reactor (void); - - /// Destructor - virtual ~TAO_NS_Timer_Reactor (); - - /// Release - virtual void release (void); - - /// Schedule a timer - virtual long schedule_timer (ACE_Event_Handler *handler, - const ACE_Time_Value &delay_time, - const ACE_Time_Value &interval); - - /// Cancel Timer - virtual int cancel_timer (long timer_id); - -protected: - /// The instance reactor that we use. - ACE_Reactor* reactor_; -}; - -#if defined (__ACE_INLINE__) -#include "Timer_Reactor.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_TIMER_REACTOR_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.inl b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.inl deleted file mode 100644 index ba9c8b4cae1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Timer_Reactor.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Types.cpp b/TAO/orbsvcs/orbsvcs/Notify/Types.cpp deleted file mode 100644 index 6701d0ca8fa..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Types.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// $Id$ - -#include "Types.h" -#include "orbsvcs/NotifyExtC.h" - -#if ! defined (__ACE_INLINE__) -#include "Types.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Types, "$Id$") diff --git a/TAO/orbsvcs/orbsvcs/Notify/Types.h b/TAO/orbsvcs/orbsvcs/Notify/Types.h deleted file mode 100644 index a5666018741..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Types.h +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Types.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_TYPES_H -#define TAO_NS_TYPES_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/corba.h" -#include "tao/orbconf.h" - -/** - * Forward declare templates - */ -template <class EVENT, class SYNCH> class ACE_Refcounted_Auto_Ptr; -template <class PROXY> class TAO_ESF_Proxy_Collection; -template <class TYPE> class TAO_ESF_RefCount_Guard; -template <class PROXY, class ACE_LOCK> class TAO_NS_Event_Map_T; -template <class T> class ACE_Unbounded_Queue; -template <class PEER> class TAO_NS_Dispatch_Observer_T; -template <class PROXY> class TAO_NS_Event_Map_Observer_T; -template <class PEER> class TAO_NS_Pending_Worker_T; -template <class LOCK, class TYPE> ACE_Atomic_Op; -template <class LOCK, class TYPE> TAO_NS_Signal_Property; -template <class TYPE> TAO_NS_Property_T; - -/** - * Forward declare classes - */ -class TAO_NS_Supplier; -class TAO_NS_Consumer; -class TAO_NS_Object; -class TAO_NS_EventChannel; -class TAO_NS_Admin; -class TAO_NS_Proxy; -class TAO_NS_Event; -class TAO_NS_ProxySupplier; -class TAO_NS_ProxyConsumer; -class TAO_NS_Peer; -class TAO_NS_EventType; -class TAO_NS_EventTypeSeq; - -/** - * Define common types - */ -typedef ACE_Reverse_Lock<TAO_SYNCH_MUTEX> TAO_NS_Reverse_Lock; - -typedef CORBA::Long TAO_NS_Object_Id; - -typedef ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> TAO_NS_Event_var; -typedef ACE_Unbounded_Queue<TAO_NS_Event_var> TAO_NS_Event_Collection; - -typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer> TAO_NS_ProxyConsumer_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier> TAO_NS_ProxySupplier_Collection; - -typedef TAO_ESF_Proxy_Collection<TAO_NS_EventChannel> TAO_NS_EventChannel_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_Admin> TAO_NS_Admin_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_Proxy> TAO_NS_Proxy_Collection; - -typedef TAO_ESF_Proxy_Collection<TAO_NS_Consumer> TAO_NS_Consumer_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_Supplier> TAO_NS_Supplier_Collection; -typedef TAO_ESF_Proxy_Collection<TAO_NS_Peer> TAO_NS_Peer_Collection; - -typedef TAO_ESF_RefCount_Guard<CORBA::ULong> TAO_NS_Object_RefCount_Guard; - -typedef TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> TAO_NS_Consumer_Map; -typedef TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> TAO_NS_Supplier_Map; - -typedef TAO_NS_Event_Map_Observer_T<TAO_NS_ProxyConsumer> TAO_NS_Consumer_Map_Observer; -typedef TAO_NS_Event_Map_Observer_T<TAO_NS_ProxySupplier> TAO_NS_Supplier_Map_Observer; - -typedef TAO_NS_Dispatch_Observer_T<TAO_NS_Peer> TAO_NS_Updates_Dispatch_Observer; -typedef TAO_NS_Dispatch_Observer_T<TAO_NS_Consumer> TAO_NS_Event_Dispatch_Observer; - -typedef TAO_NS_Pending_Worker_T<TAO_NS_Peer> TAO_NS_Updates_Pending_Worker; -typedef TAO_NS_Pending_Worker_T<TAO_NS_Consumer> TAO_NS_Event_Pending_Worker; - -typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX,CORBA::Long> TAO_NS_Property_Atomic_Long; -typedef TAO_NS_Signal_Property <TAO_SYNCH_MUTEX,CORBA::Long> TAO_NS_Signal_Property_Long; - -typedef TAO_NS_Property_T<CORBA::Long> TAO_NS_Property_Long; - -#include "ace/post.h" -#endif /* TAO_NS_TYPES_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Types.inl b/TAO/orbsvcs/orbsvcs/Notify/Types.inl deleted file mode 100644 index 5ccf33ea155..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Types.inl +++ /dev/null @@ -1,3 +0,0 @@ -// $Id$ - -#include "Types.h" diff --git a/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.cpp deleted file mode 100644 index ae9f9efab55..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// $Id$ - -#include "Worker_Task.h" - -#if ! defined (__ACE_INLINE__) -#include "Worker_Task.inl" -#endif /* __ACE_INLINE__ */ - -ACE_RCSID(RT_Notify, TAO_NS_Worker_Task, "$Id$") - -TAO_NS_Worker_Task::TAO_NS_Worker_Task (void) -{ -} - -TAO_NS_Worker_Task::~TAO_NS_Worker_Task () -{ -} - -void -TAO_NS_Worker_Task::update_qos_properties (const TAO_NS_QoSProperties& /*qos_properties*/) -{ -} diff --git a/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.h b/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.h deleted file mode 100644 index 2eef3710451..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- C++ -*- */ -/** - * @file Worker_Task.h - * - * $Id$ - * - * @author Pradeep Gore <pradeep@oomworks.com> - * - * - */ - -#ifndef TAO_NS_WORKER_TASK_H -#define TAO_NS_WORKER_TASK_H -#include "ace/pre.h" - -#include "notify_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "Method_Request.h" -#include "Refcountable.h" - -class TAO_NS_AdminProperties; -class TAO_NS_QoSProperties; -class TAO_NS_Timer; -class TAO_NS_Buffering_Strategy; - -/** - * @class TAO_NS_Worker_Task - * - * @brief Base Worker Task. - * - * Memory Management : The Worker Task should be allocated on the heap and - * the <shutdown> method should be called to release memory. - * - */ -class TAO_Notify_Export TAO_NS_Worker_Task : public TAO_NS_Refcountable -{ -public: - /// Constuctor - TAO_NS_Worker_Task (void); - - /// Update QoS Properties. - virtual void update_qos_properties (const TAO_NS_QoSProperties& qos_properties); - - ///= Public method to be implemented by subclasses. - /// Exec the request. - virtual void exec (TAO_NS_Method_Request& method_request) = 0; - - /// Shutdown task - virtual void shutdown (void) = 0; - - /// The object used by clients to register timers. - virtual TAO_NS_Timer* timer (void) = 0; - - virtual TAO_NS_Buffering_Strategy* buffering_strategy (void) = 0; - -protected: - /// Destructor - virtual ~TAO_NS_Worker_Task (); -}; - -#if defined (__ACE_INLINE__) -#include "Worker_Task.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* TAO_NS_WORKER_TASK_H */ diff --git a/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.inl b/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.inl deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/Worker_Task.inl +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Notify/etcl_notify_filtering_export.h b/TAO/orbsvcs/orbsvcs/Notify/etcl_notify_filtering_export.h deleted file mode 100644 index 51203597ac5..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/etcl_notify_filtering_export.h +++ /dev/null @@ -1,50 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl ETCL_Notify_Filtering -// ------------------------------ -#ifndef ETCL_NOTIFY_FILTERING_EXPORT_H -#define ETCL_NOTIFY_FILTERING_EXPORT_H - -#include "ace/config-all.h" - -#if !defined (ETCL_NOTIFY_FILTERING_HAS_DLL) -# define ETCL_NOTIFY_FILTERING_HAS_DLL 1 -#endif /* ! ETCL_NOTIFY_FILTERING_HAS_DLL */ - -#if defined (ETCL_NOTIFY_FILTERING_HAS_DLL) && (ETCL_NOTIFY_FILTERING_HAS_DLL == 1) -# if defined (ETCL_NOTIFY_FILTERING_BUILD_DLL) -# define ETCL_Notify_Filtering_Export ACE_Proper_Export_Flag -# define ETCL_NOTIFY_FILTERING_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define ETCL_NOTIFY_FILTERING_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* ETCL_NOTIFY_FILTERING_BUILD_DLL */ -# define ETCL_Notify_Filtering_Export ACE_Proper_Import_Flag -# define ETCL_NOTIFY_FILTERING_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define ETCL_NOTIFY_FILTERING_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* ETCL_NOTIFY_FILTERING_BUILD_DLL */ -#else /* ETCL_NOTIFY_FILTERING_HAS_DLL == 1 */ -# define ETCL_Notify_Filtering_Export -# define ETCL_NOTIFY_FILTERING_SINGLETON_DECLARATION(T) -# define ETCL_NOTIFY_FILTERING_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* ETCL_NOTIFY_FILTERING_HAS_DLL == 1 */ - -// Set ETCL_NOTIFY_FILTERING_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (ETCL_NOTIFY_FILTERING_NTRACE) -# if (ACE_NTRACE == 1) -# define ETCL_NOTIFY_FILTERING_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define ETCL_NOTIFY_FILTERING_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !ETCL_NOTIFY_FILTERING_NTRACE */ - -#if (ETCL_NOTIFY_FILTERING_NTRACE == 1) -# define ETCL_NOTIFY_FILTERING_TRACE(X) -#else /* (ETCL_NOTIFY_FILTERING_NTRACE == 1) */ -# define ETCL_NOTIFY_FILTERING_TRACE(X) ACE_TRACE_IMPL(X) -#endif /* (ETCL_NOTIFY_FILTERING_NTRACE == 1) */ - -#endif /* ETCL_NOTIFY_FILTERING_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/Notify/notify_export.h b/TAO/orbsvcs/orbsvcs/Notify/notify_export.h deleted file mode 100644 index d17be740d41..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/notify_export.h +++ /dev/null @@ -1,40 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl -// ------------------------------ -#ifndef TAO_NOTIFY_EXPORT_H -#define TAO_NOTIFY_EXPORT_H - -#include "ace/config-all.h" - -#if defined (TAO_AS_STATIC_LIBS) -# if !defined (TAO_NOTIFY_HAS_DLL) -# define TAO_NOTIFY_HAS_DLL 0 -# endif /* ! TAO_NOTIFY_HAS_DLL */ -#else -# if !defined (TAO_NOTIFY_HAS_DLL) -# define TAO_NOTIFY_HAS_DLL 1 -# endif /* ! TAO_NOTIFY_HAS_DLL */ -#endif - -#if defined (TAO_NOTIFY_HAS_DLL) && (TAO_NOTIFY_HAS_DLL == 1) -# if defined (TAO_NOTIFY_BUILD_DLL) -# define TAO_Notify_Export ACE_Proper_Export_Flag -# define TAO_NOTIFY_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define TAO_NOTIFY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* TAO_NOTIFY_BUILD_DLL */ -# define TAO_Notify_Export ACE_Proper_Import_Flag -# define TAO_NOTIFY_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define TAO_NOTIFY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* TAO_NOTIFY_BUILD_DLL */ -#else /* TAO_NOTIFY_HAS_DLL == 1 */ -# define TAO_Notify_Export -# define TAO_NOTIFY_SINGLETON_DECLARATION(T) -# define TAO_NOTIFY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* TAO_NOTIFY_HAS_DLL == 1 */ - -#endif /* TAO_NOTIFY_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/Notify/notify_stubs_export.h b/TAO/orbsvcs/orbsvcs/Notify/notify_stubs_export.h deleted file mode 100644 index 1092241fe82..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/notify_stubs_export.h +++ /dev/null @@ -1,49 +0,0 @@ -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl TAO_Notify_Stubs -// ------------------------------ -#ifndef TAO_Notify_Stubs_EXPORT_H -#define TAO_Notify_Stubs_EXPORT_H - -#include "ace/config-all.h" - -#if !defined (TAO_Notify_Stubs_HAS_DLL) -# define TAO_Notify_Stubs_HAS_DLL 1 -#endif /* ! TAO_Notify_Stubs_HAS_DLL */ - -#if defined (TAO_Notify_Stubs_HAS_DLL) && (TAO_Notify_Stubs_HAS_DLL == 1) -# if defined (TAO_Notify_Stubs_BUILD_DLL) -# define TAO_Notify_Stubs_Export ACE_Proper_Export_Flag -# define TAO_Notify_Stubs_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define TAO_Notify_Stubs_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* TAO_Notify_Stubs_BUILD_DLL */ -# define TAO_Notify_Stubs_Export ACE_Proper_Import_Flag -# define TAO_Notify_Stubs_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define TAO_Notify_Stubs_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* TAO_Notify_Stubs_BUILD_DLL */ -#else /* TAO_Notify_Stubs_HAS_DLL == 1 */ -# define TAO_Notify_Stubs_Export -# define TAO_Notify_Stubs_SINGLETON_DECLARATION(T) -# define TAO_Notify_Stubs_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* TAO_Notify_Stubs_HAS_DLL == 1 */ - -// Set TAO_Notify_Stubs_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (TAO_Notify_Stubs_NTRACE) -# if (ACE_NTRACE == 1) -# define TAO_Notify_Stubs_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define TAO_Notify_Stubs_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !TAO_Notify_Stubs_NTRACE */ - -#if (TAO_Notify_Stubs_NTRACE == 1) -# define TAO_Notify_Stubs_TRACE(X) -#else /* (TAO_Notify_Stubs_NTRACE == 1) */ -# define TAO_Notify_Stubs_TRACE(X) ACE_TRACE_IMPL(X) -#endif /* (TAO_Notify_Stubs_NTRACE == 1) */ - -#endif /* TAO_Notify_Stubs_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/Notify/rt_notify_export.h b/TAO/orbsvcs/orbsvcs/Notify/rt_notify_export.h deleted file mode 100644 index 288a67cb67f..00000000000 --- a/TAO/orbsvcs/orbsvcs/Notify/rt_notify_export.h +++ /dev/null @@ -1,39 +0,0 @@ -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl -// ------------------------------ -#ifndef TAO_RT_NOTIFY_EXPORT_H -#define TAO_RT_NOTIFY_EXPORT_H - -#include "ace/config-all.h" - -#if defined (TAO_AS_STATIC_LIBS) -# if !defined (TAO_RT_NOTIFY_HAS_DLL) -# define TAO_RT_NOTIFY_HAS_DLL 0 -# endif /* ! TAO_RT_NOTIFY_HAS_DLL */ -#else -# if !defined (TAO_RT_NOTIFY_HAS_DLL) -# define TAO_RT_NOTIFY_HAS_DLL 1 -# endif /* ! TAO_RT_NOTIFY_HAS_DLL */ -#endif - -#if defined (TAO_RT_NOTIFY_HAS_DLL) && (TAO_RT_NOTIFY_HAS_DLL == 1) -# if defined (TAO_RT_NOTIFY_BUILD_DLL) -# define TAO_RT_Notify_Export ACE_Proper_Export_Flag -# define TAO_RT_NOTIFY_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define TAO_RT_NOTIFY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* TAO_RT_NOTIFY_BUILD_DLL */ -# define TAO_RT_Notify_Export ACE_Proper_Import_Flag -# define TAO_RT_NOTIFY_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define TAO_RT_NOTIFY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* TAO_RT_NOTIFY_BUILD_DLL */ -#else /* TAO_RT_NOTIFY_HAS_DLL == 1 */ -# define TAO_RT_Notify_Export -# define TAO_RT_NOTIFY_SINGLETON_DECLARATION(T) -# define TAO_RT_NOTIFY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* TAO_RT_NOTIFY_HAS_DLL == 1 */ - -#endif /* TAO_RT_NOTIFY_EXPORT_H */ - -// End of auto generated file. |