summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp57
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.h15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Command.cpp15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Command.h45
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Command.i15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp158
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h117
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i83
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp163
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h102
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i42
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp811
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h20
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i5
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h18
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i3
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.h21
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.i46
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Factory.h26
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp45
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.h15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp131
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h35
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i18
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp48
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i1
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp93
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.h274
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.i43
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.cpp184
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.h130
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.i19
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp312
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h363
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i118
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp93
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i6
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp93
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h15
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i7
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp183
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h105
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i41
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.h6
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp13
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h23
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp22
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Worker.cpp19
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Worker.h51
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Worker.i1
-rw-r--r--TAO/orbsvcs/orbsvcs/Makefile2276
59 files changed, 4665 insertions, 1927 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp
index 324aa050671..73fc5801f61 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp
@@ -10,7 +10,8 @@
#include "EC_ProxySupplier.h"
#include "EC_ObserverStrategy.h"
#include "EC_Null_Scheduling.h"
-#include "EC_ProxyPushSupplier_Set_T.h"
+#include "EC_Proxy_Collection.h"
+#include "EC_Concrete_Proxy_Set.h"
#include "EC_Reactive_Timeout_Generator.h"
#include "EC_Reactive_ConsumerControl.h"
#include "EC_Reactive_SupplierControl.h"
@@ -140,12 +141,6 @@ TAO_EC_Basic_Factory::destroy_observer_strategy (TAO_EC_ObserverStrategy *x)
delete x;
}
-TAO_EC_ProxyPushSupplier_Set*
-TAO_EC_Basic_Factory::create_proxy_push_supplier_set (TAO_EC_Event_Channel *)
-{
- return new TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH> ();
-}
-
TAO_EC_Scheduling_Strategy*
TAO_EC_Basic_Factory::create_scheduling_strategy (TAO_EC_Event_Channel*)
{
@@ -158,56 +153,56 @@ TAO_EC_Basic_Factory::destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy* x
delete x;
}
-void
-TAO_EC_Basic_Factory::destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set *x)
-{
- delete x;
-}
-
-ACE_Lock*
-TAO_EC_Basic_Factory::create_consumer_lock (void)
+TAO_EC_ProxyPushConsumer_Collection*
+TAO_EC_Basic_Factory::create_proxy_push_consumer_collection (TAO_EC_Event_Channel *)
{
- return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> ();
}
void
-TAO_EC_Basic_Factory::destroy_consumer_lock (ACE_Lock* x)
+TAO_EC_Basic_Factory::destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection *x)
{
delete x;
}
-ACE_Lock*
-TAO_EC_Basic_Factory::create_supplier_lock (void)
+TAO_EC_ProxyPushSupplier_Collection*
+TAO_EC_Basic_Factory::create_proxy_push_supplier_collection (TAO_EC_Event_Channel *)
{
- return new ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> ();
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> ();
}
void
-TAO_EC_Basic_Factory::destroy_supplier_lock (ACE_Lock* x)
+TAO_EC_Basic_Factory::destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection *x)
{
delete x;
}
ACE_Lock*
-TAO_EC_Basic_Factory::create_consumer_admin_lock (void)
+TAO_EC_Basic_Factory::create_consumer_lock (void)
{
return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
}
void
-TAO_EC_Basic_Factory::destroy_consumer_admin_lock (ACE_Lock* x)
+TAO_EC_Basic_Factory::destroy_consumer_lock (ACE_Lock* x)
{
delete x;
}
ACE_Lock*
-TAO_EC_Basic_Factory::create_supplier_admin_lock (void)
+TAO_EC_Basic_Factory::create_supplier_lock (void)
{
- return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
+ return new ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> ();
}
void
-TAO_EC_Basic_Factory::destroy_supplier_admin_lock (ACE_Lock* x)
+TAO_EC_Basic_Factory::destroy_supplier_lock (ACE_Lock* x)
{
delete x;
}
@@ -250,16 +245,6 @@ TAO_EC_Basic_Factory::destroy_supplier_control (TAO_EC_SupplierControl* x)
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH>;
-template class ACE_Node<ACE_Command_Base*>;
-template class ACE_Unbounded_Queue<ACE_Command_Base*>;
-template class ACE_Unbounded_Queue_Iterator<ACE_Command_Base*>;
-
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH>
-#pragma instantiate ACE_Node<ACE_Command_Base*>
-#pragma instantiate ACE_Unbounded_Queue<ACE_Command_Base*>
-#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Command_Base*>
-
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.h
index 23e716ad320..50eaa576ff0 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.h
@@ -94,21 +94,20 @@ public:
create_scheduling_strategy (TAO_EC_Event_Channel*);
virtual void
destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*);
- virtual TAO_EC_ProxyPushSupplier_Set*
- create_proxy_push_supplier_set (TAO_EC_Event_Channel*);
+ virtual TAO_EC_ProxyPushConsumer_Collection*
+ create_proxy_push_consumer_collection (TAO_EC_Event_Channel*);
virtual void
- destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set*);
+ destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*);
+ virtual TAO_EC_ProxyPushSupplier_Collection*
+ create_proxy_push_supplier_collection (TAO_EC_Event_Channel*);
+ virtual void
+ destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*);
virtual ACE_Lock* create_consumer_lock (void);
virtual void destroy_consumer_lock (ACE_Lock*);
virtual ACE_Lock* create_supplier_lock (void);
virtual void destroy_supplier_lock (ACE_Lock*);
- virtual ACE_Lock* create_consumer_admin_lock (void);
- virtual void destroy_consumer_admin_lock (ACE_Lock*);
- virtual ACE_Lock* create_supplier_admin_lock (void);
- virtual void destroy_supplier_admin_lock (ACE_Lock*);
-
virtual TAO_EC_ConsumerControl*
create_consumer_control (TAO_EC_Event_Channel*);
virtual void
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Command.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Command.cpp
index b0dff01c455..99a7d944840 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Command.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Command.cpp
@@ -25,6 +25,19 @@ TAO_EC_Connected_Command<Target,Object>::execute (void* arg)
// ****************************************************************
template<class Target, class Object> int
+TAO_EC_Reconnected_Command<Target,Object>::execute (void* arg)
+{
+ CORBA::Environment *env = &TAO_default_environment ();
+ if (arg != 0)
+ env = ACE_static_cast(CORBA::Environment*, arg);
+
+ this->target_->reconnected_i (this->object_, *env);
+ return 0;
+}
+
+// ****************************************************************
+
+template<class Target, class Object> int
TAO_EC_Disconnected_Command<Target,Object>::execute (void* arg)
{
CORBA::Environment *env = &TAO_default_environment ();
@@ -38,7 +51,7 @@ TAO_EC_Disconnected_Command<Target,Object>::execute (void* arg)
// ****************************************************************
template<class Target> int
-TAO_EC_Shutdown_Command_T<Target>::execute (void* arg)
+TAO_EC_Shutdown_Command<Target>::execute (void* arg)
{
CORBA::Environment *env = &TAO_default_environment ();
if (arg != 0)
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Command.h b/TAO/orbsvcs/orbsvcs/Event/EC_Command.h
index 24fe8431f62..7afeee9660f 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Command.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Command.h
@@ -73,6 +73,47 @@ private:
// ****************************************************************
template<class Target, class Object>
+class TAO_EC_Reconnected_Command : public ACE_Command_Base
+{
+ // = TITLE
+ // EC_Reconnected_Command
+ //
+ // = DESCRIPTION
+ // Implements a Command object that invokes the reconnected_i() method
+ // on the target, passing an argument of type Object.
+ //
+ // = MEMORY MANAGMENT
+ // It does not assume ownership of Object nor the Target
+ // arguments.
+ // Usually allocated from the heap or an allocator; but it is not
+ // self-managed.
+ //
+ // = LOCKING
+ // No provisions for locking, access must be serialized
+ // externally.
+ //
+ // = TODO
+ //
+public:
+ TAO_EC_Reconnected_Command (Target *target,
+ Object *object);
+ // constructor...
+
+ virtual int execute (void *arg);
+ // The callback method, if the argument is not nil it is interpreted
+ // as a CORBA::Environment.
+
+private:
+ Target *target_;
+ // The target
+
+ Object *object_;
+ // The argument
+};
+
+// ****************************************************************
+
+template<class Target, class Object>
class TAO_EC_Disconnected_Command : public ACE_Command_Base
{
// = TITLE
@@ -114,7 +155,7 @@ private:
// ****************************************************************
template<class Target>
-class TAO_EC_Shutdown_Command_T : public ACE_Command_Base
+class TAO_EC_Shutdown_Command : public ACE_Command_Base
{
// = TITLE
// EC_Shutdown_Command
@@ -136,7 +177,7 @@ class TAO_EC_Shutdown_Command_T : public ACE_Command_Base
// = TODO
//
public:
- TAO_EC_Shutdown_Command_T (Target *target);
+ TAO_EC_Shutdown_Command (Target *target);
// constructor...
virtual int execute (void *arg);
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Command.i b/TAO/orbsvcs/orbsvcs/Event/EC_Command.i
index 202c66c0e16..46f76b31f9b 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Command.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Command.i
@@ -12,6 +12,17 @@ TAO_EC_Connected_Command<Target,Object>::
// ****************************************************************
template<class Target, class Object>
+TAO_EC_Reconnected_Command<Target,Object>::
+ TAO_EC_Reconnected_Command (Target *target,
+ Object *object)
+ : target_ (target),
+ object_ (object)
+{
+}
+
+// ****************************************************************
+
+template<class Target, class Object>
TAO_EC_Disconnected_Command<Target,Object>::
TAO_EC_Disconnected_Command (Target *target,
Object *object)
@@ -23,8 +34,8 @@ TAO_EC_Disconnected_Command<Target,Object>::
// ****************************************************************
template<class Target>
-TAO_EC_Shutdown_Command_T<Target>::
- TAO_EC_Shutdown_Command_T (Target *target)
+TAO_EC_Shutdown_Command<Target>::
+ TAO_EC_Shutdown_Command (Target *target)
: target_ (target)
{
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp
new file mode 100644
index 00000000000..ce906d4fdc9
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.cpp
@@ -0,0 +1,158 @@
+// $Id$
+
+#ifndef TAO_EC_CONCRETE_PROXY_SET_CPP
+#define TAO_EC_CONCRETE_PROXY_SET_CPP
+
+#include "EC_Concrete_Proxy_Set.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Concrete_Proxy_Set.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Concrete_Proxy_Set, "$Id$")
+
+template<class PROXY>
+TAO_EC_List_Based_Proxy_Set<PROXY>::
+ TAO_EC_List_Based_Proxy_Set (void)
+{
+}
+
+template<class PROXY> void
+TAO_EC_List_Based_Proxy_Set<PROXY>::connected (PROXY *proxy,
+ CORBA::Environment &)
+{
+ int r = this->impl_.insert (proxy);
+ if (r == 0)
+ return;
+
+ if (r == 1)
+ {
+ // @@ Already there, throw some user exception..
+ }
+ if (r == -1)
+ {
+ // @@ Cannot insert, running out of memory? throw some other
+ // user exception
+ }
+}
+
+template<class PROXY> void
+TAO_EC_List_Based_Proxy_Set<PROXY>::reconnected (PROXY *proxy,
+ CORBA::Environment &)
+{
+ int r = this->impl_.insert (proxy);
+ if (r == 0 || r == 1) {
+ // Reference count is incremented by the callers to [re]connected.
+ // @@ Find out if the protocol could be simplified, and decoupling
+ // increased.
+ proxy->_decr_refcnt ();
+ return;
+ }
+
+ if (r == -1)
+ {
+ // @@ Cannot insert, running out of memory? throw some other
+ // user exception
+ }
+}
+
+template<class PROXY> void
+TAO_EC_List_Based_Proxy_Set<PROXY>::disconnected (PROXY *proxy,
+ CORBA::Environment &)
+{
+ int r = this->impl_.remove (proxy);
+ if (r != 0)
+ {
+ // @@ Cannot remove, throw some other
+ // user exception
+ return;
+ }
+ proxy->_decr_refcnt ();
+}
+
+template<class PROXY> void
+TAO_EC_List_Based_Proxy_Set<PROXY>::shutdown (CORBA::Environment &)
+{
+ Iterator end = this->impl_.end ();
+ for (Iterator i = this->impl_.begin (); i != end; ++i)
+ {
+ // Decrement reference count
+ (*i)->_decr_refcnt ();
+ }
+ this->impl_.reset ();
+}
+
+// ****************************************************************
+
+template<class PROXY>
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::
+ TAO_EC_RB_Tree_Based_Proxy_Set (void)
+{
+}
+
+template<class PROXY> void
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::connected (PROXY *proxy,
+ CORBA::Environment &)
+{
+ int r = this->impl_.bind (proxy, 1);
+ if (r == 0)
+ return;
+
+ if (r == 1)
+ {
+ // @@ Already there, throw some user exception..
+ }
+ if (r == -1)
+ {
+ // @@ Cannot insert, running out of memory? throw some other
+ // user exception
+ }
+}
+
+template<class PROXY> void
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::reconnected (PROXY *proxy,
+ CORBA::Environment &)
+{
+ int r = this->impl_.rebind (proxy, 1);
+ if (r != 0) {
+ // Reference count is incremented by the callers to [re]connected.
+ // @@ Find out if the protocol could be simplified, and decoupling
+ // increased.
+ proxy->_decr_refcnt ();
+ return;
+ }
+
+ if (r == 0)
+ {
+ // @@ Cannot insert, running out of memory? throw some other
+ // user exception
+ }
+}
+
+template<class PROXY> void
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::disconnected (PROXY *proxy,
+ CORBA::Environment &)
+{
+ int r = this->impl_.unbind (proxy);
+ if (r != 0)
+ {
+ // @@ Cannot remove, throw some other
+ // user exception
+ return;
+ }
+ proxy->_decr_refcnt ();
+}
+
+template<class PROXY> void
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::shutdown (CORBA::Environment &)
+{
+ Iterator end = this->impl_.end ();
+ for (Iterator i = this->impl_.begin (); i != end; ++i)
+ {
+ // Decrement reference count
+ (*i)->_decr_refcnt ();
+ }
+ this->impl_.clear ();
+}
+
+#endif /* TAO_EC_CONCRETE_PROXY_SET_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h b/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h
new file mode 100644
index 00000000000..ed11db914e8
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.h
@@ -0,0 +1,117 @@
+/* -*- C++ -*- */
+// $Id$
+//
+// ============================================================================
+//
+// = LIBRARY
+// ORBSVCS Real-time Event Channel
+//
+// = FILENAME
+// EC_Concrete_Proxy_Set
+//
+// = AUTHOR
+// Carlos O'Ryan (coryan@cs.wustl.edu)
+//
+// = CREDITS
+// http://www.cs.wustl.edu/~coryan/EC/index.html
+//
+// ============================================================================
+
+#ifndef TAO_EC_CONCRETE_PROXY_SET_H
+#define TAO_EC_CONCRETE_PROXY_SET_H
+
+#include "tao/corba.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Containers.h"
+#include "ace/RB_Tree.h"
+
+template<class PROXY>
+class TAO_EC_List_Based_Proxy_Set
+{
+public:
+ typedef ACE_Unbounded_Set<PROXY*> Implementation;
+ typedef ACE_Unbounded_Set_Iterator<PROXY*> Iterator;
+
+ TAO_EC_List_Based_Proxy_Set (void);
+
+ Iterator begin (void);
+ Iterator end (void);
+ size_t size (void) const;
+ void connected (PROXY *,
+ CORBA::Environment &);
+ void reconnected (PROXY *,
+ CORBA::Environment &);
+ void disconnected (PROXY *,
+ CORBA::Environment &);
+ void shutdown (CORBA::Environment &);
+
+private:
+ Implementation impl_;
+};
+
+// ****************************************************************
+
+template<class PROXY>
+class TAO_EC_RB_Tree_Based_Proxy_Set_Iterator
+{
+public:
+ typedef ACE_RB_Tree<PROXY*,int,ACE_Less_Than<PROXY*>,ACE_Null_Mutex> Collection;
+ typedef Collection::ITERATOR Implementation;
+
+ TAO_EC_RB_Tree_Based_Proxy_Set_Iterator (const Implementation &i);
+
+ int operator == (const TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> &rhs) const;
+ int operator != (const TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> &rhs) const;
+ TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>& operator++ (void);
+ TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> operator++ (int);
+ PROXY *operator *(void);
+
+private:
+ Implementation impl_;
+};
+
+// ****************************************************************
+
+template<class PROXY>
+class TAO_EC_RB_Tree_Based_Proxy_Set
+{
+public:
+ typedef ACE_RB_Tree<PROXY*,int,ACE_Less_Than<PROXY*>,ACE_Null_Mutex> Implementation;
+ typedef TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> Iterator;
+
+ TAO_EC_RB_Tree_Based_Proxy_Set (void);
+
+ Iterator begin (void);
+ Iterator end (void);
+ size_t size (void) const;
+ void connected (PROXY *,
+ CORBA::Environment &);
+ void reconnected (PROXY *,
+ CORBA::Environment &);
+ void disconnected (PROXY *,
+ CORBA::Environment &);
+ void shutdown (CORBA::Environment &);
+
+private:
+ Implementation impl_;
+};
+
+// ****************************************************************
+
+#if defined (__ACE_INLINE__)
+#include "EC_Concrete_Proxy_Set.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "EC_Concrete_Proxy_Set.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("EC_Concrete_Proxy_Set.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* TAO_EC_CONCRETE_PROXY_SET_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i b/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i
new file mode 100644
index 00000000000..91888df48a7
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Concrete_Proxy_Set.i
@@ -0,0 +1,83 @@
+// $Id$
+
+template<class PROXY> ACE_INLINE TAO_EC_List_Based_Proxy_Set<PROXY>::Iterator
+TAO_EC_List_Based_Proxy_Set<PROXY>::begin (void)
+{
+ return this->impl_.begin ();
+}
+
+template<class PROXY> ACE_INLINE TAO_EC_List_Based_Proxy_Set<PROXY>::Iterator
+TAO_EC_List_Based_Proxy_Set<PROXY>::end (void)
+{
+ return this->impl_.end ();
+}
+
+template<class PROXY> ACE_INLINE size_t
+TAO_EC_List_Based_Proxy_Set<PROXY>::size (void) const
+{
+ return this->impl_.size ();
+}
+
+// ****************************************************************
+
+template<class PROXY> ACE_INLINE
+TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>::
+ TAO_EC_RB_Tree_Based_Proxy_Set_Iterator (const Implementation &i)
+ : impl_ (i)
+{
+}
+
+template<class PROXY> ACE_INLINE int
+TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>::
+ operator == (const TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> &rhs) const
+{
+ return this->impl_ == rhs.impl_;
+}
+
+template<class PROXY> ACE_INLINE int
+TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>::
+ operator != (const TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> &rhs) const
+{
+ return this->impl_ != rhs.impl_;
+}
+
+template<class PROXY> ACE_INLINE TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>&
+TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>::operator++ (void)
+{
+ ++this->impl_;
+ return *this;
+}
+
+template<class PROXY> ACE_INLINE TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>
+TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>::operator++ (int)
+{
+ TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY> tmp = *this;
+ ++this->impl_;
+ return tmp;
+}
+
+template<class PROXY> ACE_INLINE PROXY*
+TAO_EC_RB_Tree_Based_Proxy_Set_Iterator<PROXY>::operator *(void)
+{
+ return (*this->impl_).key ();
+}
+
+// ****************************************************************
+
+template<class PROXY> ACE_INLINE TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::Iterator
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::begin (void)
+{
+ return Iterator (this->impl_.begin ());
+}
+
+template<class PROXY> ACE_INLINE TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::Iterator
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::end (void)
+{
+ return Iterator (this->impl_.end ());
+}
+
+template<class PROXY> ACE_INLINE size_t
+TAO_EC_RB_Tree_Based_Proxy_Set<PROXY>::size (void) const
+{
+ return this->impl_.current_size ();
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp
index b8b54f47aba..284845dfca1 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp
@@ -13,16 +13,20 @@
ACE_RCSID(Event, EC_ConsumerAdmin, "$Id$")
TAO_EC_ConsumerAdmin::TAO_EC_ConsumerAdmin (TAO_EC_Event_Channel *ec,
- TAO_EC_ProxyPushSupplier_Set* ss)
+ Collection *collection)
: event_channel_ (ec),
- supplier_set_ (ss)
+ collection_ (collection)
{
- if (this->supplier_set_ == 0)
+ if (this->collection_ == 0)
{
- this->supplier_set_ =
- this->event_channel_->create_proxy_push_supplier_set ();
- this->supplier_set_->busy_hwm (this->event_channel_->busy_hwm ());
- this->supplier_set_->max_write_delay (this->event_channel_->max_write_delay ());
+ this->collection_ =
+ this->event_channel_->create_proxy_push_supplier_collection ();
+
+ // @@
+ // @@ this->collection_->busy_hwm (this->event_channel_->busy_hwm ());
+ // @@ this->collection_->max_write_delay (
+ // @@ this->event_channel_->max_write_delay ()
+ // @@ );
}
this->default_POA_ =
this->event_channel_->consumer_poa ();
@@ -30,121 +34,65 @@ TAO_EC_ConsumerAdmin::TAO_EC_ConsumerAdmin (TAO_EC_Event_Channel *ec,
TAO_EC_ConsumerAdmin::~TAO_EC_ConsumerAdmin (void)
{
- this->event_channel_->destroy_proxy_push_supplier_set (this->supplier_set_);
- this->supplier_set_ = 0;
+ this->event_channel_->destroy_proxy_push_supplier_collection (this->collection_);
+ this->collection_ = 0;
}
void
TAO_EC_ConsumerAdmin::connected (TAO_EC_ProxyPushConsumer *consumer,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock,
- ace_mon, this->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
+ TAO_EC_Connect_Consumer worker (consumer);
- SupplierSetIterator end = this->end ();
- for (SupplierSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- (*i)->connected (consumer, ACE_TRY_ENV);
- ACE_CHECK;
- consumer->connected (*i, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
}
void
TAO_EC_ConsumerAdmin::reconnected (TAO_EC_ProxyPushConsumer *consumer,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock,
- ace_mon, this->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
+ TAO_EC_Reconnect_Consumer worker (consumer);
- SupplierSetIterator end = this->end ();
- for (SupplierSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- (*i)->reconnected (consumer, ACE_TRY_ENV);
- ACE_CHECK;
- consumer->reconnected (*i, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
}
void
TAO_EC_ConsumerAdmin::disconnected (TAO_EC_ProxyPushConsumer *consumer,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock,
- ace_mon, this->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
+ TAO_EC_Disconnect_Consumer worker (consumer);
- SupplierSetIterator end = this->end ();
- for (SupplierSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- (*i)->disconnected (consumer, ACE_TRY_ENV);
- ACE_CHECK;
- consumer->disconnected (*i, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
}
void
TAO_EC_ConsumerAdmin::connected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- this->supplier_set_->connected (supplier, ACE_TRY_ENV);
+ this->collection_->connected (supplier, ACE_TRY_ENV);
}
void
TAO_EC_ConsumerAdmin::reconnected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- this->supplier_set_->connected (supplier, ACE_TRY_ENV);
+ this->collection_->connected (supplier, ACE_TRY_ENV);
}
void
TAO_EC_ConsumerAdmin::disconnected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- this->supplier_set_->disconnected (supplier, ACE_TRY_ENV);
+ this->collection_->disconnected (supplier, ACE_TRY_ENV);
}
void
TAO_EC_ConsumerAdmin::shutdown (CORBA::Environment &ACE_TRY_ENV)
{
- {
- ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock,
- ace_mon, this->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- SupplierSetIterator end = this->end ();
- for (SupplierSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- ACE_TRY
- {
- (*i)->shutdown (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCHANY
- {
- /* ignore all exceptions */
- }
- ACE_ENDTRY;
- }
- }
- this->supplier_set_->shutdown (ACE_TRY_ENV);
+ TAO_EC_Shutdown_Supplier worker;
+
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
+ this->collection_->shutdown (ACE_TRY_ENV);
}
RtecEventChannelAdmin::ProxyPushSupplier_ptr
@@ -163,8 +111,67 @@ TAO_EC_ConsumerAdmin::_default_POA (CORBA::Environment&)
return PortableServer::POA::_duplicate (this->default_POA_.in ());
}
+// ****************************************************************
+
+void
+TAO_EC_Connect_Consumer::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ supplier->connected (this->consumer_, ACE_TRY_ENV);
+ ACE_CHECK;
+ this->consumer_->connected (supplier, ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+// ****************************************************************
+
+void
+TAO_EC_Reconnect_Consumer::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ supplier->reconnected (this->consumer_, ACE_TRY_ENV);
+ ACE_CHECK;
+ this->consumer_->reconnected (supplier, ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+// ****************************************************************
+
+void
+TAO_EC_Disconnect_Consumer::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ supplier->disconnected (this->consumer_, ACE_TRY_ENV);
+ ACE_CHECK;
+ this->consumer_->disconnected (supplier, ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+// ****************************************************************
+
+void
+TAO_EC_Shutdown_Supplier::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_TRY
+ {
+ supplier->shutdown (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ // Ignore exceptions
+ }
+ ACE_ENDTRY;
+}
+
+
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class TAO_EC_Worker<TAO_EC_ProxyPushSupplier>;
+
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h
index 6461e41aa22..ccf41f58432 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.h
@@ -24,14 +24,14 @@
#ifndef TAO_EC_CONSUMERADMIN_H
#define TAO_EC_CONSUMERADMIN_H
-#include "ace/Containers.h"
+#include "orbsvcs/RtecEventChannelAdminS.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "orbsvcs/RtecEventChannelAdminS.h"
-#include "EC_ProxyPushSupplier_Set.h"
+#include "EC_Proxy_Collection.h"
+#include "EC_Worker.h"
class TAO_EC_Event_Channel;
class TAO_EC_ProxyPushSupplier;
@@ -58,8 +58,9 @@ class TAO_ORBSVCS_Export TAO_EC_ConsumerAdmin : public POA_RtecEventChannelAdmin
// = TODO
//
public:
+ typedef TAO_EC_Proxy_Collection<TAO_EC_ProxyPushSupplier> Collection;
TAO_EC_ConsumerAdmin (TAO_EC_Event_Channel* event_channel,
- TAO_EC_ProxyPushSupplier_Set* supplier_set = 0);
+ Collection* collection = 0);
// constructor. If <supplier_set> is nil then it builds one using
// the <event_channel> argument.
// In any case it assumes ownership.
@@ -67,15 +68,9 @@ public:
virtual ~TAO_EC_ConsumerAdmin (void);
// destructor...
- typedef TAO_EC_ProxyPushSupplier_Set::SupplierSet SupplierSet;
- typedef TAO_EC_ProxyPushSupplier_Set::SupplierSetIterator SupplierSetIterator;
-
- SupplierSetIterator begin (void);
- SupplierSetIterator end (void);
- // Iterators over the set of ProxyPushSuppliers
-
- typedef TAO_EC_ProxyPushSupplier_Set::Busy_Lock Busy_Lock;
- Busy_Lock& busy_lock (void);
+ void for_each (TAO_EC_Worker<TAO_EC_ProxyPushSupplier> *worker,
+ CORBA::Environment &ACE_TRY_ENV);
+ // For each elements call <worker->work()>.
virtual void connected (TAO_EC_ProxyPushConsumer*,
CORBA::Environment&);
@@ -111,13 +106,90 @@ private:
TAO_EC_Event_Channel *event_channel_;
// The Event Channel we belong to
- TAO_EC_ProxyPushSupplier_Set* supplier_set_;
- // The implementation for the supplier set container.
+ Collection *collection_;
+ // The supplier container.
PortableServer::POA_var default_POA_;
// Store the default POA.
};
+// ****************************************************************
+
+class TAO_EC_Connect_Consumer : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+ // = TITLE
+ // TAO_EC_Connect_Consumer
+ //
+ // = DESCRIPTION
+ // Worker class to connect the ProxyPushConsumer objects with all
+ // the ProxyPushSupplier objects in the collection.
+ //
+public:
+ TAO_EC_Connect_Consumer (TAO_EC_ProxyPushConsumer *consumer);
+ // Constructor
+
+ void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ProxyPushConsumer *consumer_;
+};
+
+// ****************************************************************
+
+class TAO_EC_Reconnect_Consumer : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+ // = TITLE
+ // TAO_EC_Reconnect_Consumer
+ //
+ // = DESCRIPTION
+ // Worker class to reconnect the ProxyPushConsumer objects with all
+ // the ProxyPushSupplier objects in the collection.
+ //
+public:
+ TAO_EC_Reconnect_Consumer (TAO_EC_ProxyPushConsumer *consumer);
+ // Constructor
+
+ void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ProxyPushConsumer *consumer_;
+};
+
+// ****************************************************************
+
+class TAO_EC_Disconnect_Consumer : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+ // = TITLE
+ // TAO_EC_Disconnect_Consumer
+ //
+ // = DESCRIPTION
+ // Worker class to disconnect the ProxyPushConsumer objects with all
+ // the ProxyPushSupplier objects in the collection.
+ //
+public:
+ TAO_EC_Disconnect_Consumer (TAO_EC_ProxyPushConsumer *consumer);
+ // Constructor
+
+ void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ProxyPushConsumer *consumer_;
+};
+
+// ****************************************************************
+
+class TAO_EC_Shutdown_Supplier : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+public:
+ TAO_EC_Shutdown_Supplier (void);
+
+ void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+};
+
#if defined (__ACE_INLINE__)
#include "EC_ConsumerAdmin.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i
index ee065379a5e..33c51235be2 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.i
@@ -1,19 +1,43 @@
// $Id$
-ACE_INLINE TAO_EC_ConsumerAdmin::SupplierSetIterator
-TAO_EC_ConsumerAdmin::begin (void)
+ACE_INLINE void
+TAO_EC_ConsumerAdmin::
+ for_each (TAO_EC_Worker<TAO_EC_ProxyPushSupplier> *worker,
+ CORBA::Environment &ACE_TRY_ENV)
{
- return this->supplier_set_->begin ();
+ this->collection_->for_each (worker, ACE_TRY_ENV);
}
-ACE_INLINE TAO_EC_ConsumerAdmin::SupplierSetIterator
-TAO_EC_ConsumerAdmin::end (void)
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Connect_Consumer::
+ TAO_EC_Connect_Consumer (TAO_EC_ProxyPushConsumer *consumer)
+ : consumer_ (consumer)
+{
+}
+
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Reconnect_Consumer::
+ TAO_EC_Reconnect_Consumer (TAO_EC_ProxyPushConsumer *consumer)
+ : consumer_ (consumer)
{
- return this->supplier_set_->end ();
}
-ACE_INLINE TAO_EC_ConsumerAdmin::Busy_Lock&
-TAO_EC_ConsumerAdmin::busy_lock (void)
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Disconnect_Consumer::
+ TAO_EC_Disconnect_Consumer (TAO_EC_ProxyPushConsumer *consumer)
+ : consumer_ (consumer)
+{
+}
+
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Shutdown_Supplier::TAO_EC_Shutdown_Supplier (void)
{
- return this->supplier_set_->busy_lock ();
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp
index bfdb29483c7..ce34cdbd33a 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp
@@ -14,7 +14,8 @@
#include "EC_ObserverStrategy.h"
#include "EC_Null_Scheduling.h"
#include "EC_Priority_Scheduling.h"
-#include "EC_ProxyPushSupplier_Set_T.h"
+#include "EC_Proxy_Collection.h"
+#include "EC_Concrete_Proxy_Set.h"
#include "EC_Reactive_Timeout_Generator.h"
#include "EC_Event_Channel.h"
#include "EC_Reactive_ConsumerControl.h"
@@ -234,97 +235,95 @@ TAO_EC_Default_Factory::init (int argc, char* argv[])
}
}
- else if (ACE_OS::strcasecmp (arg, "-ECPushSupplierSet") == 0)
+ else if (ACE_OS::strcasecmp (arg, "-ECProxyPushConsumerCollection") == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
char* opt = arg_shifter.get_current ();
- if (ACE_OS::strcasecmp (opt, "immediate") == 0)
- {
- this->supplier_set_ = 0;
- }
- else if (ACE_OS::strcasecmp (opt, "delayed") == 0)
- {
- this->supplier_set_ = 1;
- }
- else if (ACE_OS::strcasecmp (opt, "immediate_st") == 0)
- {
- this->supplier_set_ = 2;
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "EC_Default_Factory - "
- "unsupported supplier set <%s>\n",
- opt));
- }
- arg_shifter.consume_arg ();
- }
- }
-
- else if (ACE_OS::strcasecmp (arg, "-ECProxyConsumerLock") == 0)
- {
- arg_shifter.consume_arg ();
-
- if (arg_shifter.is_parameter_next ())
- {
- char* opt = arg_shifter.get_current ();
- if (ACE_OS::strcasecmp (opt, "null") == 0)
- {
- this->consumer_lock_ = 0;
- }
- else if (ACE_OS::strcasecmp (opt, "thread") == 0)
- {
- this->consumer_lock_ = 1;
- }
- else if (ACE_OS::strcasecmp (opt, "recursive") == 0)
+ int collection_type = 0;
+ int synch_type = 0;
+ int iteration_type = 0;
+
+ char* aux;
+ for (char* arg = ACE_OS::strtok_r (opt, ":", &aux);
+ arg != 0;
+ arg = ACE_OS::strtok_r (0, ":", &aux))
{
- this->consumer_lock_ = 2;
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "EC_Default_Factory - "
- "unsupported consumer lock <%s>\n",
- opt));
+ if (ACE_OS::strcasecmp (arg, "mt") == 0)
+ synch_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "st") == 0)
+ synch_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "list") == 0)
+ collection_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "rb_tree") == 0)
+ collection_type = 1;
+ else if (ACE_OS::strcasecmp (arg, "immediate") == 0)
+ iteration_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "copy_on_read") == 0)
+ iteration_type = 1;
+ else if (ACE_OS::strcasecmp (arg, "copy_on_write") == 0)
+ iteration_type = 2;
+ else if (ACE_OS::strcasecmp (arg, "delayed") == 0)
+ iteration_type = 3;
+ else
+ ACE_ERROR ((LM_ERROR,
+ "EC_Default_Factory - "
+ "unknown collection modifier <%s>\n",
+ arg));
}
+ this->consumer_collection_ =
+ (synch_type << 8) |(collection_type << 4) | iteration_type;
arg_shifter.consume_arg ();
}
}
- else if (ACE_OS::strcasecmp (arg, "-ECProxySupplierLock") == 0)
+ else if (ACE_OS::strcasecmp (arg, "-ECProxyPushSupplierCollection") == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
char* opt = arg_shifter.get_current ();
- if (ACE_OS::strcasecmp (opt, "null") == 0)
- {
- this->supplier_lock_ = 0;
- }
- else if (ACE_OS::strcasecmp (opt, "thread") == 0)
+ int collection_type = 0;
+ int synch_type = 0;
+ int iteration_type = 0;
+
+ char* aux;
+ for (char* arg = ACE_OS::strtok_r (opt, ":", &aux);
+ arg != 0;
+ arg = ACE_OS::strtok_r (0, ":", &aux))
{
- this->supplier_lock_ = 1;
- }
- else if (ACE_OS::strcasecmp (opt, "recursive") == 0)
- {
- this->supplier_lock_ = 2;
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "EC_Default_Factory - "
- "unsupported supplier lock <%s>\n",
- opt));
+ if (ACE_OS::strcasecmp (arg, "mt") == 0)
+ synch_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "st") == 0)
+ synch_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "list") == 0)
+ collection_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "rb_tree") == 0)
+ collection_type = 1;
+ else if (ACE_OS::strcasecmp (arg, "immediate") == 0)
+ iteration_type = 0;
+ else if (ACE_OS::strcasecmp (arg, "copy_on_read") == 0)
+ iteration_type = 1;
+ else if (ACE_OS::strcasecmp (arg, "copy_on_write") == 0)
+ iteration_type = 2;
+ else if (ACE_OS::strcasecmp (arg, "delayed") == 0)
+ iteration_type = 3;
+ else
+ ACE_ERROR ((LM_ERROR,
+ "EC_Default_Factory - "
+ "unknown collection modifier <%s>\n",
+ arg));
}
+ this->supplier_collection_ =
+ (synch_type << 8) | (collection_type << 4) | iteration_type;
arg_shifter.consume_arg ();
}
}
- else if (ACE_OS::strcasecmp (arg, "-ECConsumerAdminLock") == 0)
+ else if (ACE_OS::strcasecmp (arg, "-ECProxyConsumerLock") == 0)
{
arg_shifter.consume_arg ();
@@ -333,28 +332,28 @@ TAO_EC_Default_Factory::init (int argc, char* argv[])
char* opt = arg_shifter.get_current ();
if (ACE_OS::strcasecmp (opt, "null") == 0)
{
- this->consumer_admin_lock_ = 0;
+ this->consumer_lock_ = 0;
}
else if (ACE_OS::strcasecmp (opt, "thread") == 0)
{
- this->consumer_admin_lock_ = 1;
+ this->consumer_lock_ = 1;
}
else if (ACE_OS::strcasecmp (opt, "recursive") == 0)
{
- this->consumer_admin_lock_ = 2;
+ this->consumer_lock_ = 2;
}
else
{
ACE_ERROR ((LM_ERROR,
"EC_Default_Factory - "
- "unsupported consumer admin lock <%s>\n",
+ "unsupported consumer lock <%s>\n",
opt));
}
arg_shifter.consume_arg ();
}
}
- else if (ACE_OS::strcasecmp (arg, "-ECSupplierAdminLock") == 0)
+ else if (ACE_OS::strcasecmp (arg, "-ECProxySupplierLock") == 0)
{
arg_shifter.consume_arg ();
@@ -363,15 +362,15 @@ TAO_EC_Default_Factory::init (int argc, char* argv[])
char* opt = arg_shifter.get_current ();
if (ACE_OS::strcasecmp (opt, "null") == 0)
{
- this->supplier_admin_lock_ = 0;
+ this->supplier_lock_ = 0;
}
else if (ACE_OS::strcasecmp (opt, "thread") == 0)
{
- this->supplier_admin_lock_ = 1;
+ this->supplier_lock_ = 1;
}
else if (ACE_OS::strcasecmp (opt, "recursive") == 0)
{
- this->supplier_admin_lock_ = 2;
+ this->supplier_lock_ = 2;
}
else
{
@@ -472,12 +471,36 @@ TAO_EC_Default_Factory::init (int argc, char* argv[])
}
}
+ else if (ACE_OS::strcasecmp (arg, "-ECPushSupplierSet") == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "EC_Default_Factory - "
+ "obsolete option <%s>, ignored\n", arg));
+ arg_shifter.consume_arg ();
+ }
+
+ else if (ACE_OS::strcasecmp (arg, "-ECConsumerAdminLock") == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "EC_Default_Factory - "
+ "obsolete option <%s>, ignored\n", arg));
+ arg_shifter.consume_arg ();
+ }
+
+ else if (ACE_OS::strcasecmp (arg, "-ECSupplierAdminLock") == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "EC_Default_Factory - "
+ "obsolete option <%s>, ignored\n", arg));
+ arg_shifter.consume_arg ();
+ }
+
else if (ACE_OS::strncmp (arg, "-EC", 3) == 0)
{
arg_shifter.consume_arg ();
ACE_ERROR ((LM_ERROR,
"EC_Default_Factory - "
- "unknowns option <%s>\n",
+ "unknown option <%s>\n",
arg));
}
}
@@ -662,92 +685,240 @@ TAO_EC_Default_Factory::destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*
delete x;
}
-TAO_EC_ProxyPushSupplier_Set*
-TAO_EC_Default_Factory::create_proxy_push_supplier_set (TAO_EC_Event_Channel *)
+TAO_EC_ProxyPushConsumer_Collection*
+TAO_EC_Default_Factory::create_proxy_push_consumer_collection (TAO_EC_Event_Channel *)
{
- if (this->supplier_set_ == 0)
- return new TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_SYNCH_MUTEX> ();
- else if (this->supplier_set_ == 1)
- return new TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH> ();
- else if (this->supplier_set_ == 2)
- return new TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_Null_Mutex> ();
- return 0;
-}
-
-void
-TAO_EC_Default_Factory::destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set *x)
-{
- delete x;
-}
+ if (this->consumer_collection_ == 0x000)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ else if (this->consumer_collection_ == 0x001)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ /*
+ else if (this->consumer_collection_ == 0x002)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ */
+ else if (this->consumer_collection_ == 0x003)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> ();
+ else if (this->consumer_collection_ == 0x010)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ else if (this->consumer_collection_ == 0x011)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ /*
+ else if (this->consumer_collection_ == 0x012)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ */
+ else if (this->consumer_collection_ == 0x013)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> ();
+ else if (this->consumer_collection_ == 0x100)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
+ else if (this->consumer_collection_ == 0x101)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
+ /*
+ else if (this->consumer_collection_ == 0x102)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
+ */
+ else if (this->consumer_collection_ == 0x103)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH> ();
+ else if (this->consumer_collection_ == 0x110)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
+ else if (this->consumer_collection_ == 0x111)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
+ /*
+ else if (this->consumer_collection_ == 0x112)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
+ */
+ else if (this->consumer_collection_ == 0x113)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH> ();
-ACE_Lock*
-TAO_EC_Default_Factory::create_consumer_lock (void)
-{
- if (this->consumer_lock_ == 0)
- return new ACE_Lock_Adapter<ACE_Null_Mutex>;
- else if (this->consumer_lock_ == 1)
- return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
- else if (this->consumer_lock_ == 2)
- return new ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> ();
return 0;
}
void
-TAO_EC_Default_Factory::destroy_consumer_lock (ACE_Lock* x)
+TAO_EC_Default_Factory::destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection *x)
{
delete x;
}
-ACE_Lock*
-TAO_EC_Default_Factory::create_supplier_lock (void)
+TAO_EC_ProxyPushSupplier_Collection*
+TAO_EC_Default_Factory::create_proxy_push_supplier_collection (TAO_EC_Event_Channel *)
{
- if (this->supplier_lock_ == 0)
- return new ACE_Lock_Adapter<ACE_Null_Mutex>;
- else if (this->supplier_lock_ == 1)
- return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
- else if (this->supplier_lock_ == 2)
- return new ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> ();
+ if (this->supplier_collection_ == 0x000)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ else if (this->supplier_collection_ == 0x001)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ /*
+ else if (this->supplier_collection_ == 0x002)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ */
+ else if (this->supplier_collection_ == 0x003)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> ();
+ else if (this->supplier_collection_ == 0x010)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ else if (this->supplier_collection_ == 0x011)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ /*
+ else if (this->supplier_collection_ == 0x012)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX> ();
+ */
+ else if (this->supplier_collection_ == 0x013)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> ();
+ else if (this->supplier_collection_ == 0x100)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
+ else if (this->supplier_collection_ == 0x101)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
+ /*
+ else if (this->supplier_collection_ == 0x102)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
+ */
+ else if (this->supplier_collection_ == 0x103)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH> ();
+ else if (this->supplier_collection_ == 0x110)
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
+ else if (this->supplier_collection_ == 0x111)
+ return new TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
+ /*
+ else if (this->supplier_collection_ == 0x112)
+ return new TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
+ */
+ else if (this->supplier_collection_ == 0x113)
+ return new TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH> ();
+
return 0;
}
void
-TAO_EC_Default_Factory::destroy_supplier_lock (ACE_Lock* x)
+TAO_EC_Default_Factory::destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection *x)
{
delete x;
}
ACE_Lock*
-TAO_EC_Default_Factory::create_consumer_admin_lock (void)
+TAO_EC_Default_Factory::create_consumer_lock (void)
{
- if (this->consumer_admin_lock_ == 0)
+ if (this->consumer_lock_ == 0)
return new ACE_Lock_Adapter<ACE_Null_Mutex>;
- else if (this->consumer_admin_lock_ == 1)
+ else if (this->consumer_lock_ == 1)
return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
- else if (this->consumer_admin_lock_ == 2)
+ else if (this->consumer_lock_ == 2)
return new ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> ();
return 0;
}
void
-TAO_EC_Default_Factory::destroy_consumer_admin_lock (ACE_Lock* x)
+TAO_EC_Default_Factory::destroy_consumer_lock (ACE_Lock* x)
{
delete x;
}
ACE_Lock*
-TAO_EC_Default_Factory::create_supplier_admin_lock (void)
+TAO_EC_Default_Factory::create_supplier_lock (void)
{
- if (this->supplier_admin_lock_ == 0)
+ if (this->supplier_lock_ == 0)
return new ACE_Lock_Adapter<ACE_Null_Mutex>;
- else if (this->supplier_admin_lock_ == 1)
+ else if (this->supplier_lock_ == 1)
return new ACE_Lock_Adapter<ACE_SYNCH_MUTEX> ();
- else if (this->supplier_admin_lock_ == 2)
+ else if (this->supplier_lock_ == 2)
return new ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> ();
return 0;
}
void
-TAO_EC_Default_Factory::destroy_supplier_admin_lock (ACE_Lock* x)
+TAO_EC_Default_Factory::destroy_supplier_lock (ACE_Lock* x)
{
delete x;
}
@@ -814,18 +985,404 @@ ACE_FACTORY_DEFINE (TAO_ORBSVCS, TAO_EC_Default_Factory)
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class ACE_Node<ACE_Command_Base*>;
+template class ACE_Unbounded_Queue<ACE_Command_Base*>;
+template class ACE_Unbounded_Queue_Iterator<ACE_Command_Base*>;
+
+template class TAO_EC_Proxy_Collection<TAO_EC_ProxyPushConsumer>;
+template class TAO_EC_Worker<TAO_EC_ProxyPushConsumer>;
+template class TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>;
+template class TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>;
+template class ACE_Unbounded_Set<TAO_EC_ProxyPushConsumer *>;
+template class ACE_Node<TAO_EC_ProxyPushConsumer *>;
+template class ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushConsumer *>;
+template class ACE_RB_Tree<TAO_EC_ProxyPushConsumer *, int, ACE_Less_Than<TAO_EC_ProxyPushConsumer *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Iterator<TAO_EC_ProxyPushConsumer *, int, ACE_Less_Than<TAO_EC_ProxyPushConsumer *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Reverse_Iterator<TAO_EC_ProxyPushConsumer *, int, ACE_Less_Than<TAO_EC_ProxyPushConsumer *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Iterator_Base<TAO_EC_ProxyPushConsumer *, int, ACE_Less_Than<TAO_EC_ProxyPushConsumer *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Node<TAO_EC_ProxyPushConsumer *, int>;
+
+template class TAO_EC_Proxy_Collection<TAO_EC_ProxyPushSupplier>;
+template class TAO_EC_Worker<TAO_EC_ProxyPushSupplier>;
+template class TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>;
+template class TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>;
+template class ACE_Unbounded_Set<TAO_EC_ProxyPushSupplier *>;
+template class ACE_Node<TAO_EC_ProxyPushSupplier *>;
+template class ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushSupplier *>;
+template class ACE_RB_Tree<TAO_EC_ProxyPushSupplier *, int, ACE_Less_Than<TAO_EC_ProxyPushSupplier *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Iterator<TAO_EC_ProxyPushSupplier *, int, ACE_Less_Than<TAO_EC_ProxyPushSupplier *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Iterator_Base<TAO_EC_ProxyPushSupplier *, int, ACE_Less_Than<TAO_EC_ProxyPushSupplier *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Reverse_Iterator<TAO_EC_ProxyPushSupplier *, int, ACE_Less_Than<TAO_EC_ProxyPushSupplier *>, ACE_Null_Mutex>;
+template class ACE_RB_Tree_Node<TAO_EC_ProxyPushSupplier *, int>;
+
#if defined (ACE_HAS_THREADS)
-template class TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_SYNCH_MUTEX>;
+//
+// To avoid duplicate instantiations of templates we must put the MT
+// versions on this #ifdef, otherwise the ACE_SYNCH* macros expand to
+// the ACE_NULL* versions, duplicating the non-MT versions below.
+// We *cannot* use explicit ACE_Synch classes because that will not
+// compile in platforms without threads.
+//
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> >;
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_SYNCH> >;
+
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> >;
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH_MUTEX>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_SYNCH> >;
#endif /* ACE_HAS_THREADS */
-template class TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_Null_Mutex>;
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH> >;
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushConsumer >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_NULL_SYNCH> >;
+
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH> >;
+template class TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex>;
+template class TAO_EC_Copy_On_Read<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex>;
+ /*
+template class TAO_EC_Copy_On_Write<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex>;
+ */
+template class TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>;
+template class TAO_EC_Busy_Lock_Adapter<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH> >;
+template class TAO_EC_Connected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Reconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Disconnected_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH>,TAO_EC_ProxyPushSupplier >;
+template class TAO_EC_Shutdown_Command<
+ TAO_EC_Delayed_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_RB_Tree_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_NULL_SYNCH> >;
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate ACE_Node<ACE_Command_Base*>
+#pragma instantiate ACE_Unbounded_Queue<ACE_Command_Base*>
+#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Command_Base*>
+#pragma instantiate TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>
+#pragma instantiate TAO_EC_RB_Tree_Proxy_Set<TAO_EC_ProxyPushConsumer>
+#pragma instantiate TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>
+#pragma instantiate TAO_EC_RB_Tree_Proxy_Set<TAO_EC_ProxyPushSupplier>
+
#if defined (ACE_HAS_THREADS)
-#pragma instantiate TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_SYNCH_MUTEX>
#endif /* ACE_HAS_THREADS */
-#pragma instantiate TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_Null_Mutex>
-
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h
index 45140d6e621..0e9ae6a5a82 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.h
@@ -103,21 +103,20 @@ public:
create_scheduling_strategy (TAO_EC_Event_Channel*);
virtual void
destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*);
- virtual TAO_EC_ProxyPushSupplier_Set*
- create_proxy_push_supplier_set (TAO_EC_Event_Channel*);
+ virtual TAO_EC_ProxyPushConsumer_Collection*
+ create_proxy_push_consumer_collection (TAO_EC_Event_Channel*);
virtual void
- destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set*);
+ destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*);
+ virtual TAO_EC_ProxyPushSupplier_Collection*
+ create_proxy_push_supplier_collection (TAO_EC_Event_Channel*);
+ virtual void
+ destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*);
virtual ACE_Lock* create_consumer_lock (void);
virtual void destroy_consumer_lock (ACE_Lock*);
virtual ACE_Lock* create_supplier_lock (void);
virtual void destroy_supplier_lock (ACE_Lock*);
- virtual ACE_Lock* create_consumer_admin_lock (void);
- virtual void destroy_consumer_admin_lock (ACE_Lock*);
- virtual ACE_Lock* create_supplier_admin_lock (void);
- virtual void destroy_supplier_admin_lock (ACE_Lock*);
-
virtual TAO_EC_ConsumerControl*
create_consumer_control (TAO_EC_Event_Channel*);
virtual void
@@ -134,11 +133,10 @@ private:
int timeout_;
int observer_;
int scheduling_;
- int supplier_set_;
+ int consumer_collection_;
+ int supplier_collection_;
int consumer_lock_;
int supplier_lock_;
- int consumer_admin_lock_;
- int supplier_admin_lock_;
// Several flags to control the kind of object created.
int dispatching_threads_;
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i
index aed3212d31a..7e80488bf44 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Default_Factory.i
@@ -8,11 +8,10 @@ TAO_EC_Default_Factory::TAO_EC_Default_Factory (void)
timeout_ (TAO_EC_DEFAULT_TIMEOUT),
observer_ (TAO_EC_DEFAULT_OBSERVER),
scheduling_ (TAO_EC_DEFAULT_SCHEDULING),
- supplier_set_ (TAO_EC_DEFAULT_SUPPLIER_SET),
+ consumer_collection_ (TAO_EC_DEFAULT_CONSUMER_COLLECTION),
+ supplier_collection_ (TAO_EC_DEFAULT_SUPPLIER_COLLECTION),
consumer_lock_ (TAO_EC_DEFAULT_CONSUMER_LOCK),
supplier_lock_ (TAO_EC_DEFAULT_SUPPLIER_LOCK),
- consumer_admin_lock_ (TAO_EC_DEFAULT_CONSUMER_ADMIN_LOCK),
- supplier_admin_lock_ (TAO_EC_DEFAULT_SUPPLIER_ADMIN_LOCK),
dispatching_threads_ (TAO_EC_DEFAULT_DISPATCHING_THREADS),
dispatching_threads_flags_ (TAO_EC_DEFAULT_DISPATCHING_THREADS_FLAGS),
dispatching_threads_priority_ (TAO_EC_DEFAULT_DISPATCHING_THREADS_PRIORITY),
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h b/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h
index fd41158d070..ed2872ecad8 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Defaults.h
@@ -87,9 +87,13 @@
# define TAO_EC_DEFAULT_SCHEDULING 0 /* null */
#endif /* TAO_EC_DEFAULT_SCHEDULING */
-#ifndef TAO_EC_DEFAULT_SUPPLIER_SET
-# define TAO_EC_DEFAULT_SUPPLIER_SET 1 /* delayed MT-safe */
-#endif /* TAO_EC_DEFAULT_SUPPLIER_SET */
+#ifndef TAO_EC_DEFAULT_CONSUMER_COLLECTION
+# define TAO_EC_DEFAULT_CONSUMER_COLLECTION 0x101 /* copy-on-read MT-safe */
+#endif /* TAO_EC_DEFAULT_CONSUMER_COLLECTION */
+
+#ifndef TAO_EC_DEFAULT_SUPPLIER_COLLECTION
+# define TAO_EC_DEFAULT_SUPPLIER_COLLECTION 0x101 /* copy-on-read MT-safe */
+#endif /* TAO_EC_DEFAULT_SUPPLIER_COLLECTION */
#ifndef TAO_EC_DEFAULT_CONSUMER_LOCK
# define TAO_EC_DEFAULT_CONSUMER_LOCK 1 /* thread */
@@ -99,14 +103,6 @@
# define TAO_EC_DEFAULT_SUPPLIER_LOCK 1 /* thread */
#endif /* TAO_EC_DEFAULT_SUPPLIER_LOCK */
-#ifndef TAO_EC_DEFAULT_CONSUMER_ADMIN_LOCK
-# define TAO_EC_DEFAULT_CONSUMER_ADMIN_LOCK 1 /* thread */
-#endif /* TAO_EC_DEFAULT_CONSUMER_ADMIN_LOCK */
-
-#ifndef TAO_EC_DEFAULT_SUPPLIER_ADMIN_LOCK
-# define TAO_EC_DEFAULT_SUPPLIER_ADMIN_LOCK 1 /* thread */
-#endif /* TAO_EC_DEFAULT_SUPPLIER_ADMIN_LOCK */
-
#ifndef TAO_EC_DEFAULT_DISPATCHING_THREADS
# define TAO_EC_DEFAULT_DISPATCHING_THREADS 1 /* */
#endif /* TAO_EC_DEFAULT_DISPATCHING_THREADS */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp
index ace322a364d..d8d00577691 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.cpp
@@ -83,7 +83,7 @@ TAO_EC_Dispatch_Command::~TAO_EC_Dispatch_Command (void)
// ****************************************************************
int
-TAO_EC_Shutdown_Command::execute (CORBA::Environment&)
+TAO_EC_Shutdown_Task_Command::execute (CORBA::Environment&)
{
return -1;
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h
index 3133fcdf1c4..a07b4684622 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.h
@@ -84,10 +84,10 @@ public:
// ****************************************************************
-class TAO_ORBSVCS_Export TAO_EC_Shutdown_Command : public TAO_EC_Dispatch_Command
+class TAO_ORBSVCS_Export TAO_EC_Shutdown_Task_Command : public TAO_EC_Dispatch_Command
{
public:
- TAO_EC_Shutdown_Command (ACE_Allocator *mb_allocator = 0);
+ TAO_EC_Shutdown_Task_Command (ACE_Allocator *mb_allocator = 0);
// Constructor
virtual int execute (CORBA::Environment&);
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i
index d7bd3d86dbc..1fc7da1701e 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching_Task.i
@@ -26,7 +26,8 @@ TAO_EC_Dispatch_Command::TAO_EC_Dispatch_Command (ACE_Data_Block *data_block,
// ****************************************************************
ACE_INLINE
-TAO_EC_Shutdown_Command::TAO_EC_Shutdown_Command (ACE_Allocator *mb_allocator)
+TAO_EC_Shutdown_Task_Command::
+ TAO_EC_Shutdown_Task_Command (ACE_Allocator *mb_allocator)
: TAO_EC_Dispatch_Command (mb_allocator)
{
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.h b/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.h
index f147d595397..1231331cb9c 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.h
@@ -158,9 +158,17 @@ public:
void destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer*);
// Create and destroy a ProxyPushConsumer
- TAO_EC_ProxyPushSupplier_Set* create_proxy_push_supplier_set (void);
- void destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set*);
- // Create and destroy a ProxyPushSupplier_Set
+ TAO_EC_ProxyPushSupplier_Collection*
+ create_proxy_push_supplier_collection (void);
+ void destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*);
+ // Create and destroy a the collections used to store
+ // ProxyPushSuppliers
+
+ TAO_EC_ProxyPushConsumer_Collection*
+ create_proxy_push_consumer_collection (void);
+ void destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*);
+ // Create and destroy a the collections used to store
+ // ProxyPushConsumers
PortableServer::POA_ptr supplier_poa (void);
PortableServer::POA_ptr consumer_poa (void);
@@ -173,13 +181,6 @@ public:
// Locking strategies for the ProxyPushConsumer and
// ProxyPushSupplier objects
- ACE_Lock* create_consumer_admin_lock (void);
- void destroy_consumer_admin_lock (ACE_Lock*);
- ACE_Lock* create_supplier_admin_lock (void);
- void destroy_supplier_admin_lock (ACE_Lock*);
- // Locking strategies for the ConsumerAdmin and SupplierAdmin
- // objects
-
virtual void connected (TAO_EC_ProxyPushConsumer*,
CORBA::Environment&);
virtual void reconnected (TAO_EC_ProxyPushConsumer*,
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.i b/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.i
index e401155157a..b06d45ecba1 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Event_Channel.i
@@ -75,16 +75,28 @@ TAO_EC_Event_Channel::create_proxy_push_consumer (void)
return this->factory_->create_proxy_push_consumer (this);
}
-ACE_INLINE TAO_EC_ProxyPushSupplier_Set*
-TAO_EC_Event_Channel::create_proxy_push_supplier_set (void)
+ACE_INLINE TAO_EC_ProxyPushConsumer_Collection*
+TAO_EC_Event_Channel::create_proxy_push_consumer_collection (void)
{
- return this->factory_->create_proxy_push_supplier_set (this);
+ return this->factory_->create_proxy_push_consumer_collection (this);
}
ACE_INLINE void
-TAO_EC_Event_Channel::destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set* x)
+TAO_EC_Event_Channel::destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection* x)
{
- this->factory_->destroy_proxy_push_supplier_set (x);
+ this->factory_->destroy_proxy_push_consumer_collection (x);
+}
+
+ACE_INLINE TAO_EC_ProxyPushSupplier_Collection*
+TAO_EC_Event_Channel::create_proxy_push_supplier_collection (void)
+{
+ return this->factory_->create_proxy_push_supplier_collection (this);
+}
+
+ACE_INLINE void
+TAO_EC_Event_Channel::destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection* x)
+{
+ this->factory_->destroy_proxy_push_supplier_collection (x);
}
ACE_INLINE void
@@ -129,30 +141,6 @@ TAO_EC_Event_Channel::destroy_supplier_lock (ACE_Lock* x)
this->factory_->destroy_supplier_lock (x);
}
-ACE_INLINE ACE_Lock*
-TAO_EC_Event_Channel::create_consumer_admin_lock (void)
-{
- return this->factory_->create_consumer_admin_lock ();
-}
-
-ACE_INLINE void
-TAO_EC_Event_Channel::destroy_consumer_admin_lock (ACE_Lock* x)
-{
- this->factory_->destroy_consumer_admin_lock (x);
-}
-
-ACE_INLINE ACE_Lock*
-TAO_EC_Event_Channel::create_supplier_admin_lock (void)
-{
- return this->factory_->create_supplier_admin_lock ();
-}
-
-ACE_INLINE void
-TAO_EC_Event_Channel::destroy_supplier_admin_lock (ACE_Lock* x)
-{
- this->factory_->destroy_supplier_admin_lock (x);
-}
-
ACE_INLINE int
TAO_EC_Event_Channel::consumer_reconnect (void) const
{
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Factory.h
index 5e4aba26c9f..8a999126614 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Factory.h
@@ -46,12 +46,15 @@ class TAO_EC_SupplierAdmin;
class TAO_EC_ProxyPushConsumer;
class TAO_EC_ProxyPushSupplier;
class TAO_EC_ObserverStrategy;
-class TAO_EC_ProxyPushSupplier_Set;
+template<class PROXY> class TAO_EC_Proxy_Collection;
class TAO_EC_Timeout_Generator;
class TAO_EC_Scheduling_Strategy;
class TAO_EC_ConsumerControl;
class TAO_EC_SupplierControl;
+typedef TAO_EC_Proxy_Collection<TAO_EC_ProxyPushConsumer> TAO_EC_ProxyPushConsumer_Collection;
+typedef TAO_EC_Proxy_Collection<TAO_EC_ProxyPushSupplier> TAO_EC_ProxyPushSupplier_Collection;
+
class TAO_ORBSVCS_Export TAO_EC_Factory : public ACE_Service_Object
{
// = TITLE
@@ -130,11 +133,17 @@ public:
destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*) = 0;
// Create and destroy the observer strategy.
- virtual TAO_EC_ProxyPushSupplier_Set*
- create_proxy_push_supplier_set (TAO_EC_Event_Channel*) = 0;
+ virtual TAO_EC_ProxyPushConsumer_Collection*
+ create_proxy_push_consumer_collection (TAO_EC_Event_Channel*) = 0;
+ virtual void
+ destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*) = 0;
+ // Create and destroy a collection of TAO_EC_ProxyPushConsumers
+
+ virtual TAO_EC_ProxyPushSupplier_Collection*
+ create_proxy_push_supplier_collection (TAO_EC_Event_Channel*) = 0;
virtual void
- destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set*) = 0;
- // Create and destroy a ProxyPushSupplier_Set
+ destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*) = 0;
+ // Create and destroy a collection of TAO_EC_ProxyPushSuppliers
virtual ACE_Lock* create_consumer_lock (void) = 0;
virtual void destroy_consumer_lock (ACE_Lock*) = 0;
@@ -143,13 +152,6 @@ public:
// Create and destroy the locking strategies for both
// ProxyPushConsumers and ProxyPushSuppliers
- virtual ACE_Lock* create_consumer_admin_lock (void) = 0;
- virtual void destroy_consumer_admin_lock (ACE_Lock*) = 0;
- virtual ACE_Lock* create_supplier_admin_lock (void) = 0;
- virtual void destroy_supplier_admin_lock (ACE_Lock*) = 0;
- // Create and destroy the locking strategies for both
- // ConsumerAdmin and SupplierAdmin classes.
-
virtual TAO_EC_ConsumerControl*
create_consumer_control (TAO_EC_Event_Channel*) = 0;
virtual void
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp
index 3984307b4d6..d6d9667f479 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_MT_Dispatching.cpp
@@ -58,7 +58,7 @@ TAO_EC_MT_Dispatching::shutdown (void)
for (int i = 0; i < this->nthreads_; ++i)
{
- this->task_.putq (new TAO_EC_Shutdown_Command);
+ this->task_.putq (new TAO_EC_Shutdown_Task_Command);
}
this->thread_manager_.wait ();
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp
index a8a6c00ee51..e168ef2773a 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.cpp
@@ -10,7 +10,8 @@
#include "EC_ProxySupplier.h"
#include "EC_ObserverStrategy.h"
#include "EC_Null_Scheduling.h"
-#include "EC_ProxyPushSupplier_Set_T.h"
+#include "EC_Proxy_Collection.h"
+#include "EC_Concrete_Proxy_Set.h"
#include "EC_Reactive_Timeout_Generator.h"
#include "EC_ConsumerControl.h"
#include "EC_SupplierControl.h"
@@ -150,62 +151,56 @@ TAO_EC_Null_Factory::destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy* x)
delete x;
}
-TAO_EC_ProxyPushSupplier_Set*
-TAO_EC_Null_Factory::create_proxy_push_supplier_set (TAO_EC_Event_Channel *)
+TAO_EC_ProxyPushConsumer_Collection*
+TAO_EC_Null_Factory::create_proxy_push_consumer_collection (TAO_EC_Event_Channel *)
{
- return new TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_Null_Mutex> ();
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushConsumer,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushConsumer>::Iterator,
+ ACE_Null_Mutex> ();
}
void
-TAO_EC_Null_Factory::destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set *x)
+TAO_EC_Null_Factory::destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection *x)
{
delete x;
}
-ACE_Lock*
-TAO_EC_Null_Factory::create_consumer_lock (void)
-{
- return new ACE_Lock_Adapter<ACE_Null_Mutex> ();
-}
-
-void
-TAO_EC_Null_Factory::destroy_consumer_lock (ACE_Lock* x)
-{
- delete x;
-}
-
-ACE_Lock*
-TAO_EC_Null_Factory::create_supplier_lock (void)
+TAO_EC_ProxyPushSupplier_Collection*
+TAO_EC_Null_Factory::create_proxy_push_supplier_collection (TAO_EC_Event_Channel *)
{
- return new ACE_Lock_Adapter<ACE_Null_Mutex> ();
+ return new TAO_EC_Immediate_Changes<TAO_EC_ProxyPushSupplier,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>,
+ TAO_EC_List_Based_Proxy_Set<TAO_EC_ProxyPushSupplier>::Iterator,
+ ACE_Null_Mutex> ();
}
void
-TAO_EC_Null_Factory::destroy_supplier_lock (ACE_Lock* x)
+TAO_EC_Null_Factory::destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection *x)
{
delete x;
}
ACE_Lock*
-TAO_EC_Null_Factory::create_consumer_admin_lock (void)
+TAO_EC_Null_Factory::create_consumer_lock (void)
{
return new ACE_Lock_Adapter<ACE_Null_Mutex> ();
}
void
-TAO_EC_Null_Factory::destroy_consumer_admin_lock (ACE_Lock* x)
+TAO_EC_Null_Factory::destroy_consumer_lock (ACE_Lock* x)
{
delete x;
}
ACE_Lock*
-TAO_EC_Null_Factory::create_supplier_admin_lock (void)
+TAO_EC_Null_Factory::create_supplier_lock (void)
{
return new ACE_Lock_Adapter<ACE_Null_Mutex> ();
}
void
-TAO_EC_Null_Factory::destroy_supplier_admin_lock (ACE_Lock* x)
+TAO_EC_Null_Factory::destroy_supplier_lock (ACE_Lock* x)
{
delete x;
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.h
index 371def0ace7..a38bffbd643 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Null_Factory.h
@@ -93,21 +93,20 @@ public:
create_scheduling_strategy (TAO_EC_Event_Channel*);
virtual void
destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*);
- virtual TAO_EC_ProxyPushSupplier_Set*
- create_proxy_push_supplier_set (TAO_EC_Event_Channel*);
+ virtual TAO_EC_ProxyPushConsumer_Collection*
+ create_proxy_push_consumer_collection (TAO_EC_Event_Channel*);
virtual void
- destroy_proxy_push_supplier_set (TAO_EC_ProxyPushSupplier_Set*);
+ destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*);
+ virtual TAO_EC_ProxyPushSupplier_Collection*
+ create_proxy_push_supplier_collection (TAO_EC_Event_Channel*);
+ virtual void
+ destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*);
virtual ACE_Lock* create_consumer_lock (void);
virtual void destroy_consumer_lock (ACE_Lock*);
virtual ACE_Lock* create_supplier_lock (void);
virtual void destroy_supplier_lock (ACE_Lock*);
- virtual ACE_Lock* create_consumer_admin_lock (void);
- virtual void destroy_consumer_admin_lock (ACE_Lock*);
- virtual ACE_Lock* create_supplier_admin_lock (void);
- virtual void destroy_supplier_admin_lock (ACE_Lock*);
-
virtual TAO_EC_ConsumerControl*
create_consumer_control (TAO_EC_Event_Channel*);
virtual void
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp
index 012486f7628..0b23e6bbb61 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp
@@ -314,53 +314,21 @@ TAO_EC_Basic_ObserverStrategy::fill_qos (
{
Headers headers;
- {
- ACE_GUARD_THROW_EX (TAO_EC_ConsumerAdmin::Busy_Lock,
- ace_mon, this->event_channel_->consumer_admin ()->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- TAO_EC_ConsumerAdmin::SupplierSetIterator end =
- this->event_channel_->consumer_admin ()->end ();
- for (TAO_EC_ConsumerAdmin::SupplierSetIterator i =
- this->event_channel_->consumer_admin ()->begin ();
- i != end;
- ++i)
- {
- TAO_EC_ProxyPushSupplier* supplier = *i;
-
- const RtecEventChannelAdmin::ConsumerQOS& sub =
- supplier->subscriptions ();
- if (sub.is_gateway)
- continue;
- for (CORBA::ULong j = 0; j < sub.dependencies.length (); ++j)
- {
- const RtecEventComm::Event& event =
- sub.dependencies[j].event;
- RtecEventComm::EventType type = event.header.type;
-
- if (0 < type && type < ACE_ES_EVENT_UNDEFINED)
- continue;
- headers.insert (event.header, 1);
- }
- }
- }
- CORBA::ULong count = 1;
- HeadersIterator i (headers);
- for (i.first (); !i.is_done (); i.next ())
- {
- count++;
- }
+ TAO_EC_Accumulate_Supplier_Headers worker (headers);
+ this->event_channel_->consumer_admin ()->for_each (&worker, ACE_TRY_ENV);
+ ACE_CHECK;
RtecEventChannelAdmin::DependencySet& dep = qos.dependencies;
- dep.length (count);
+ dep.length (headers.current_size () + 1);
dep[0].event.header.type = ACE_ES_DISJUNCTION_DESIGNATOR;
dep[0].event.header.source = 0;
dep[0].event.header.creation_time = ORBSVCS_Time::zero ();
dep[0].rt_info = 0;
- count = 1;
+
+ CORBA::ULong count = 1;
+ HeadersIterator i (headers);
for (i.first (); !i.is_done (); i.next ())
{
qos.dependencies[count++].event.header = *i.key ();
@@ -370,50 +338,71 @@ TAO_EC_Basic_ObserverStrategy::fill_qos (
void
TAO_EC_Basic_ObserverStrategy::fill_qos (
RtecEventChannelAdmin::SupplierQOS &qos,
- CORBA::Environment &)
+ CORBA::Environment &ACE_TRY_ENV)
{
Headers headers;
- {
- // @@ TODO locking in the consumer admin?
- TAO_EC_SupplierAdmin::ConsumerSetIterator end =
- this->event_channel_->supplier_admin ()->end ();
- for (TAO_EC_SupplierAdmin::ConsumerSetIterator i =
- this->event_channel_->supplier_admin ()->begin ();
- i != end;
- ++i)
- {
- TAO_EC_ProxyPushConsumer* consumer = *i;
- const RtecEventChannelAdmin::SupplierQOS& pub =
- consumer->publications ();
- if (pub.is_gateway)
- continue;
- for (CORBA::ULong j = 0; j < pub.publications.length (); ++j)
- {
- const RtecEventComm::Event& event =
- pub.publications[j].event;
- RtecEventComm::EventType type = event.header.type;
-
- if (0 < type && type < ACE_ES_EVENT_UNDEFINED)
- continue;
- headers.insert (event.header, 1);
- }
- }
- }
+ TAO_EC_Accumulate_Consumer_Headers worker (headers);
+ this->event_channel_->supplier_admin ()->for_each (&worker,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ qos.publications.length (headers.current_size ());
+
CORBA::ULong count = 0;
HeadersIterator i (headers);
for (i.first (); !i.is_done (); i.next ())
{
- count++;
+ qos.publications[count++].event.header = *i.key ();
}
- qos.publications.length (count);
- count = 0;
- for (i.first (); !i.is_done (); i.next ())
+}
+
+// ****************************************************************
+
+void
+TAO_EC_Accumulate_Supplier_Headers::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &)
+{
+ const RtecEventChannelAdmin::ConsumerQOS& sub =
+ supplier->subscriptions ();
+ if (sub.is_gateway)
+ return;
+ for (CORBA::ULong j = 0; j < sub.dependencies.length (); ++j)
{
- qos.publications[count++].event.header = *i.key ();
+ const RtecEventComm::Event& event =
+ sub.dependencies[j].event;
+ RtecEventComm::EventType type = event.header.type;
+
+ if (0 < type && type < ACE_ES_EVENT_UNDEFINED)
+ continue;
+ this->headers_.insert (event.header, 1);
}
}
+// ****************************************************************
+
+void
+TAO_EC_Accumulate_Consumer_Headers::work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &)
+{
+ const RtecEventChannelAdmin::SupplierQOS& pub =
+ consumer->publications ();
+ if (pub.is_gateway)
+ return;
+ for (CORBA::ULong j = 0; j < pub.publications.length (); ++j)
+ {
+ const RtecEventComm::Event& event =
+ pub.publications[j].event;
+ RtecEventComm::EventType type = event.header.type;
+
+ if (0 < type && type < ACE_ES_EVENT_UNDEFINED)
+ continue;
+ this->headers_.insert (event.header, 1);
+ }
+}
+
+// ****************************************************************
+
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Map_Manager<RtecEventChannelAdmin::Observer_Handle,TAO_EC_Basic_ObserverStrategy::Observer_Entry,ACE_Null_Mutex>;
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h
index d3b6b792e83..9ab3ed7b0d2 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h
@@ -25,13 +25,14 @@
#ifndef TAO_EC_OBSERVERSTRATEGY_H
#define TAO_EC_OBSERVERSTRATEGY_H
-#include "ace/Map_Manager.h"
+#include "EC_Worker.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/RB_Tree.h"
+#include "ace/Map_Manager.h"
#include "orbsvcs/RtecEventChannelAdminC.h"
class ACE_Lock;
@@ -246,6 +247,38 @@ protected:
typedef ACE_RB_Tree_Iterator<RtecEventComm::EventHeader,int,Header_Compare,ACE_Null_Mutex> HeadersIterator;
};
+// ****************************************************************
+
+class TAO_EC_Accumulate_Supplier_Headers : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+public:
+ TAO_EC_Accumulate_Supplier_Headers (TAO_EC_Basic_ObserverStrategy::Headers &headers);
+ // Constructor
+
+ virtual void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_Basic_ObserverStrategy::Headers &headers_;
+};
+
+// ****************************************************************
+
+class TAO_EC_Accumulate_Consumer_Headers : public TAO_EC_Worker<TAO_EC_ProxyPushConsumer>
+{
+public:
+ TAO_EC_Accumulate_Consumer_Headers (TAO_EC_Basic_ObserverStrategy::Headers &headers);
+ // Constructor
+
+ virtual void work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_Basic_ObserverStrategy::Headers &headers_;
+};
+
+
+
#if defined (__ACE_INLINE__)
#include "EC_ObserverStrategy.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i
index 07836b8e4d1..b426368911e 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.i
@@ -45,3 +45,21 @@ TAO_EC_Basic_ObserverStrategy::
handle_generator_ (1)
{
}
+
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Accumulate_Supplier_Headers::
+ TAO_EC_Accumulate_Supplier_Headers (TAO_EC_Basic_ObserverStrategy::Headers &h)
+ : headers_ (h)
+{
+}
+
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Accumulate_Consumer_Headers::
+ TAO_EC_Accumulate_Consumer_Headers (TAO_EC_Basic_ObserverStrategy::Headers &h)
+ : headers_ (h)
+{
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp
index 3fbd578021f..8cf9e21d8de 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.cpp
@@ -2,10 +2,10 @@
#include "EC_Per_Supplier_Filter.h"
#include "EC_Event_Channel.h"
-#include "EC_ProxyPushSupplier_Set.h"
#include "EC_ProxySupplier.h"
#include "EC_ProxyConsumer.h"
#include "EC_Scheduling_Strategy.h"
+#include "EC_Proxy_Collection.h"
#include "EC_QOS_Info.h"
#include "orbsvcs/Event_Service_Constants.h"
@@ -21,16 +21,19 @@ TAO_EC_Per_Supplier_Filter::
consumer_ (0),
refcnt_ (1)
{
- this->supplier_set_ =
- this->event_channel_->create_proxy_push_supplier_set ();
- this->supplier_set_->busy_hwm (this->event_channel_->busy_hwm ());
- this->supplier_set_->max_write_delay (this->event_channel_->max_write_delay ());
+ this->collection_ =
+ this->event_channel_->create_proxy_push_supplier_collection ();
+ // @@
+ // @@ this->collection_->busy_hwm (this->event_channel_->busy_hwm ());
+ // @@ this->collection_->max_write_delay (
+ // @@ this->event_channel_->max_write_delay ()
+ // @@ );
}
TAO_EC_Per_Supplier_Filter::~TAO_EC_Per_Supplier_Filter (void)
{
- this->event_channel_->destroy_proxy_push_supplier_set (this->supplier_set_);
- this->supplier_set_ = 0;
+ this->event_channel_->destroy_proxy_push_supplier_collection (this->collection_);
+ this->collection_ = 0;
}
void
@@ -89,7 +92,7 @@ TAO_EC_Per_Supplier_Filter::connected (TAO_EC_ProxyPushSupplier* supplier,
if (supplier->can_match (event.header))
{
// ACE_DEBUG ((LM_DEBUG, " matched %x\n", supplier));
- this->supplier_set_->connected (supplier, ACE_TRY_ENV);
+ this->collection_->connected (supplier, ACE_TRY_ENV);
return;
}
}
@@ -118,24 +121,24 @@ TAO_EC_Per_Supplier_Filter::reconnected (TAO_EC_ProxyPushSupplier* supplier,
if (supplier->can_match (event.header))
{
// ACE_DEBUG ((LM_DEBUG, " matched %x\n", supplier));
- this->supplier_set_->connected (supplier, ACE_TRY_ENV);
+ this->collection_->connected (supplier, ACE_TRY_ENV);
return;
}
}
- this->supplier_set_->disconnected (supplier, ACE_TRY_ENV);
+ this->collection_->disconnected (supplier, ACE_TRY_ENV);
}
void
TAO_EC_Per_Supplier_Filter::disconnected (TAO_EC_ProxyPushSupplier* supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- this->supplier_set_->disconnected (supplier, ACE_TRY_ENV);
+ this->collection_->disconnected (supplier, ACE_TRY_ENV);
}
void
TAO_EC_Per_Supplier_Filter::shutdown (CORBA::Environment &ACE_TRY_ENV)
{
- this->supplier_set_->shutdown (ACE_TRY_ENV);
+ this->collection_->shutdown (ACE_TRY_ENV);
}
void
@@ -170,29 +173,14 @@ TAO_EC_Per_Supplier_Filter::push (const RtecEventComm::EventSet& event,
}
// We don't use the consumer_ field anymore, just the
- // supplier_set_, and that one is safe until we reach the
+ // collection_, and that one is safe until we reach the
// destructor. However, the caller has to increase the
// reference count before calling us, i.e. we won't be destroyed
// until push() returns.
- ACE_GUARD_THROW_EX (TAO_EC_ProxyPushSupplier_Set::Busy_Lock,
- ace_mon, this->supplier_set_->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
+ TAO_EC_Filter_Worker worker (single_event, event_info);
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
ACE_CHECK;
-
- TAO_EC_ProxyPushSupplier_Set::SupplierSetIterator end =
- this->supplier_set_->end ();
-
- for (TAO_EC_ProxyPushSupplier_Set::SupplierSetIterator i =
- this->supplier_set_->begin ();
- i != end;
- ++i)
- {
- TAO_EC_QOS_Info qos_info = event_info;
-
- (*i)->filter (single_event, qos_info, ACE_TRY_ENV);
- ACE_CHECK;
- }
}
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h
index 289d16a9969..09cf807346c 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.h
@@ -32,7 +32,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-class TAO_EC_ProxyPushSupplier_Set;
+template<class PROXY> class TAO_EC_Proxy_Collection;
class TAO_ORBSVCS_Export TAO_EC_Per_Supplier_Filter : public TAO_EC_Supplier_Filter
{
@@ -76,9 +76,9 @@ private:
TAO_EC_ProxyPushConsumer* consumer_;
// The proxy for the supplier we are bound to.
- TAO_EC_ProxyPushSupplier_Set* supplier_set_;
- // Keep the list of proxies for the consumers that may be interested
- // in our events.
+ TAO_EC_Proxy_Collection<TAO_EC_ProxyPushSupplier>* collection_;
+ // Keep the collection of proxies for the consumers that may be
+ // interested in our events.
CORBA::ULong refcnt_;
// Reference counting
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i
index f1fc6e2687b..5a13d548d35 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Per_Supplier_Filter.i
@@ -6,4 +6,3 @@ TAO_EC_Per_Supplier_Filter_Builder (TAO_EC_Event_Channel* ec)
: event_channel_ (ec)
{
}
-
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp
index 96911d289e7..e7439ea9286 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Priority_Dispatching.cpp
@@ -94,7 +94,7 @@ TAO_EC_Priority_Dispatching::shutdown (void)
return;
for (int i = 0; i < this->ntasks_; ++i)
- this->tasks_[i]->putq (new TAO_EC_Shutdown_Command);
+ this->tasks_[i]->putq (new TAO_EC_Shutdown_Task_Command);
this->thread_manager_.wait ();
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp
deleted file mode 100644
index 7aaf611aff4..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// $Id$
-
-#include "EC_ProxyPushSupplier_Set.h"
-#include "EC_Defaults.h"
-#include "EC_ProxySupplier.h"
-#include "EC_Command.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "EC_ProxyPushSupplier_Set.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(Event, EC_ProxyPushSupplier_Set, "$Id$")
-
-TAO_EC_ProxyPushSupplier_Set::TAO_EC_ProxyPushSupplier_Set (void)
- : busy_lock_ (this),
- busy_hwm_ (TAO_EC_DEFAULT_BUSY_HWM),
- max_write_delay_ (TAO_EC_DEFAULT_MAX_WRITE_DELAY)
-{
-}
-
-TAO_EC_ProxyPushSupplier_Set::~TAO_EC_ProxyPushSupplier_Set (void)
-{
-}
-
-void
-TAO_EC_ProxyPushSupplier_Set::connected_i (
- TAO_EC_ProxyPushSupplier *supplier,
- CORBA::Environment &ACE_TRY_ENV)
-{
- int r = this->all_suppliers_.insert (supplier);
- if (r == 0)
- return;
- if (r == 1)
- {
- // The supplier was already on the list, must decrement reference
- // count
- supplier->_decr_refcnt ();
- return;
- }
- // @@ We should throw a user exception
- ACE_THROW (CORBA::NO_MEMORY ());
-}
-
-void
-TAO_EC_ProxyPushSupplier_Set::disconnected_i (
- TAO_EC_ProxyPushSupplier *supplier,
- CORBA::Environment &)
-{
- if (this->all_suppliers_.remove (supplier) != 0)
- return;// @@ rasise something?
- supplier->_decr_refcnt ();
-}
-
-void
-TAO_EC_ProxyPushSupplier_Set::shutdown_i (
- CORBA::Environment &)
-{
- SupplierSetIterator end = this->end ();
- for (SupplierSetIterator i = this->begin (); i != end; ++i)
- {
- (*i)->_decr_refcnt ();
- }
- this->all_suppliers_.reset ();
-}
-
-void
-TAO_EC_ProxyPushSupplier_Set::execute_delayed_operations (void)
-{
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Node<TAO_EC_ProxyPushSupplier*>;
-template class ACE_Unbounded_Set<TAO_EC_ProxyPushSupplier*>;
-template class ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushSupplier*>;
-template class ACE_Guard<TAO_EC_Busy_Lock_Adapter<TAO_EC_ProxyPushSupplier_Set> >;
-template class TAO_EC_Busy_Lock_Adapter<TAO_EC_ProxyPushSupplier_Set>;
-template class TAO_EC_Connected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier>;
-template class TAO_EC_Disconnected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier>;
-template class TAO_EC_Shutdown_Command_T<TAO_EC_ProxyPushSupplier_Set>;
-
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Node<TAO_EC_ProxyPushSupplier*>
-#pragma instantiate ACE_Unbounded_Set<TAO_EC_ProxyPushSupplier*>
-#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushSupplier*>
-#pragma instantiate TAO_EC_Busy_Lock_Adapter<TAO_EC_ProxyPushSupplier_Set>
-#pragma instantiate ACE_Guard<TAO_EC_Busy_Lock_Adapter<TAO_EC_ProxyPushSupplier_Set> >
-#pragma instantiate TAO_EC_Connected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier>
-#pragma instantiate TAO_EC_Disconnected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier>
-#pragma instantiate TAO_EC_Shutdown_Command_T<TAO_EC_ProxyPushSupplier_Set>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.h b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.h
deleted file mode 100644
index 3e3cb741687..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// ORBSVCS Real-time Event Channel
-//
-// = FILENAME
-// EC_ProxyPushSupplier_Set
-//
-// = AUTHOR
-// Carlos O'Ryan (coryan@cs.wustl.edu)
-//
-// = CREDITS
-// Based on previous work by Tim Harrison (harrison@cs.wustl.edu)
-// and other members of the DOC group.
-// More details can be found in:
-// http://www.cs.wustl.edu/~schmidt/oopsla.ps.gz
-// http://www.cs.wustl.edu/~schmidt/JSAC-98.ps.gz
-//
-// ============================================================================
-
-#ifndef TAO_EC_PROXYPUSHSUPPLIER_SET_H
-#define TAO_EC_PROXYPUSHSUPPLIER_SET_H
-
-#include "orbsvcs/orbsvcs_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Containers.h"
-#include "tao/corba.h"
-#include "EC_Busy_Lock.h"
-#if defined(__GNUC__) && __GNUC__ == 2 && __GNUC_MINOR__ < 8
-// g++ 2.7.2 is broken and cannot handle forward declaration of
-// templates in this case.
-// I could just include this file for all compilers, but I want to
-// minimize compile-time dependencies *and* document this problem so
-// we can fix it as g++ 2.7.2 is phased out.
-#include "EC_Command.h"
-#endif /* __GNUC__ */
-
-class TAO_EC_ProxyPushSupplier;
-template<class Target,class Object> class TAO_EC_Connected_Command;
-template<class Target,class Object> class TAO_EC_Disconnected_Command;
-template<class Target> class TAO_EC_Shutdown_Command_T;
-
-class TAO_ORBSVCS_Export TAO_EC_ProxyPushSupplier_Set
-{
- // = TITLE
- // ProxyPushSupplier_Set
- //
- // = DESCRIPTION
- // Many components in the Event Channel need to keep a collection
- // of ProxyPushSuppliers; this collections must be able to cope
- // with several concurrency issues:
- // + Some threads may need to iterate over the collection and
- // invoke a method on each element. Locking the collection
- // while this is done is not feasible in all cases: under some
- // configurations the same thread that is iterating over the
- // collection may need to make changes.
- // + A recursive lock does not solve the concurrency problems
- // correctly because in the common case we don't want to stop
- // other threads from doing the same iteration, and changes to
- // the collection could be very uncommon wrt dispatching over
- // the set of ProxyPushSuppliers.
- // + Using a reader-write lock with upgrades does not solve the
- // problem either: upgrading the lock can fail and still
- // invalidates the iterators that the thread has.
- // + Copying the collection to iterate over it is a good solution
- // for non-real-time systems, but again the copying could be
- // non-deterministic, and is expensive since most iterations
- // will not result in changes.
- //
- // This class encapsulates a protocol to solve this concurrency
- // issues (and other minor ones). The first solution is to delay
- // changes by putting them on an "operation queue", the operations
- // are stored as command objects in this queue and executed once
- // the system is quiescent (i.e. no threads are iterating over the
- // collection).
- // This solves the major problems, but there are other issues to
- // be addressed:
- // + How do we ensure that the operations are eventually executed?
- // + How do we simplify the execution of the locking protocol for
- // clients of this class?
- // + How do we minimize overhead for single threaded execution?
- // + How do we minimize the overhead for the cases where the
- // threads dispatching events don't post changes to the
- // collection?
- //
- // = VARIANTS
- //
- // We identify several sources of variation:
- //
- // + Immediate changes without delay (only locking). This is only
- // useful in configurations where a separate thread dispatches
- // the events, and thus, can only be used with real locks.
- // The busy()/idle() methods use a read acquire/release, the
- // connected()/disconnected() methods use a write
- // acquire/release. We can either use RW or regular mutexes.
- // IMPLEMENTATION: a derived class with strategized locking
- // (ACE_Lock? or templates?).
- //
- // + Copying data for iteration:
- // Can use a regular mutex (as in the previous case), or even a
- // null lock.
- // @@ Must stablish if there is a simple way to encapsulate this
- // in the Set class, as opposed to the clients of the class.
- // @@ The implementation is essentially the same as above, but
- // the clients must make the copy.
- // IMPLEMENTATION: As above.
- //
- // + Delayed operations:
- // Only makes sense if the thread dispatching is the same thread
- // where the upcalls run.
- // Can require regular locks or null locks (for ST
- // implementations); notice that this will require templates
- // to parametrize the mutexes and condition variables.
- // There are two main variations:
- //
- // - An upcall can result in new dispatches: in this case we
- // have to keep track of a the list of current threads using
- // a Set, to avoid dead-locks.
- // IMPLEMENTATION: the design is not complete, probably
- // similar to the next one.
- //
- // - Otherwise we just need to control the concurrency using the
- // algorithm described below.
- // IMPLEMENTATION: a derived parametric class (the arguments
- // are the types of locks).
- //
- // = DELAYED OPERATIONS AND CONCURRENCY
- //
- // The algorithm proposed so far is:
- // - If a thread is using the set then it increases the busy
- // count, this is done by calling the busy() method. Once the
- // thread has stopped using the collection the idle() method is
- // invoked and the busy count is decreased.
- // A helper class (Busy_Lock) is used to hide this protocol
- // behind the familiar GUARD idiom.
- // - If the busy count reaches the busy_hwm then the thread must
- // wait until the count reaches 0 again.
- // This can be used to control the maximum concurrency in the
- // EC, matching it (for example) with the number of
- // processors. Setting the concurrency to a high value (say one
- // million) allows for an arbitrary number of threads to execute
- // concurrently.
- // - If a modification is posted to the collection we need to
- // execute it at some point.
- // Just using the busy_hwm would not work, the HWM may not be
- // reached ever, so another form of control is needed.
- // Instead we use another counter, that keeps track of how many
- // threads have used the set since the modification was
- // posted. If this number of threads reaches max_write_delay then
- // we don't allow any more threads to go in, eventually the
- // thread count reaches 0 and we can proceed with the operations.
- //
- // - There is one aspect of concurrency that can be problematic: if
- // thread pushes events as part of an upcall then the same thread
- // could be counted twice, we need to keep track of the threads
- // that are dispatching events and not increase (or decrease) the
- // reference count when a thread iterates twice over the same
- // set.
- //
- // = MEMORY MANAGMENT
- // It assumes ownership of the ProxyPushSuppliers added to the
- // collection: simply by increasing their reference count.
- //
- // = LOCKING
- // Locking is provided by derived classes.
- //
- // = TODO
- //
-public:
- TAO_EC_ProxyPushSupplier_Set (void);
- // Constructor.
-
- virtual ~TAO_EC_ProxyPushSupplier_Set (void);
- // Destructor.
-
- typedef ACE_Unbounded_Set<TAO_EC_ProxyPushSupplier*> SupplierSet;
- typedef ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushSupplier*> SupplierSetIterator;
- // The actual implementation of the collection, notice that only
- // iteration is exposed, methods to insert and remove objects are
- // hidden behind proper interfaces.
-
- SupplierSetIterator begin (void);
- SupplierSetIterator end (void);
- // Iterators over the set of ProxyPushSuppliers
- // Remember that all clients of this class must call busy() before
- // starting an iteration and call idle() once the iteration is
- // finished. Otherwise the iterators may be invalidated by other
- // threads.
- // A helper object (the busy_lock) is provided to simplify this task
- // and make it exception safe.
-
- typedef TAO_EC_Busy_Lock_Adapter<TAO_EC_ProxyPushSupplier_Set> Busy_Lock;
- Busy_Lock& busy_lock (void);
- // This object is an adapter to the busy/idle protocol.
-
- void busy_hwm (CORBA::ULong hwm);
- CORBA::ULong busy_hwm (void) const;
- void max_write_delay (CORBA::ULong hwm);
- CORBA::ULong max_write_delay (void) const;
- // This two attributes control the maximum number of concurrent
- // readers allowed in the set (busy_hwm) and the maximum number of
- // threads that can proceed after there is a modification posted.
-
- virtual int busy (void) = 0;
- virtual int idle (void) = 0;
- // The implementation of this methods is provided by derived
- // classes, that provide appropiate locking.
-
- virtual void connected (TAO_EC_ProxyPushSupplier *,
- CORBA::Environment & = TAO_default_environment ()) = 0;
- virtual void disconnected (TAO_EC_ProxyPushSupplier *,
- CORBA::Environment & = TAO_default_environment ()) = 0;
- // Used to inform the EC that a Supplier has connected or
- // disconnected from it.
-
- virtual void shutdown (CORBA::Environment & = TAO_default_environment ()) = 0;
- // The EC is shutting down, release all our resources.
-
-protected:
- virtual void connected_i (TAO_EC_ProxyPushSupplier* supplier,
- CORBA::Environment &env = TAO_default_environment ());
- // The implementation of connected(), without locking. It does not
- // increase the reference count on the supplier
-
- virtual void disconnected_i (TAO_EC_ProxyPushSupplier* supplier,
- CORBA::Environment &env = TAO_default_environment ());
- // The implementation of disconnected(), without locking. It
- // decreases the reference count on the supplier if the operation is
- // successful.
-
- virtual void shutdown_i (CORBA::Environment &env = TAO_default_environment ());
- // Implement the shutdown method, assuming the right locks are
- // acquired by the base class.
-
- typedef TAO_EC_Connected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier> Connected_Command;
- typedef TAO_EC_Disconnected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier> Disconnected_Command;
- typedef TAO_EC_Shutdown_Command_T<TAO_EC_ProxyPushSupplier_Set> Shutdown_Command;
-
- friend class TAO_EC_Connected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier>;
- friend class TAO_EC_Disconnected_Command<TAO_EC_ProxyPushSupplier_Set,TAO_EC_ProxyPushSupplier>;
- friend class TAO_EC_Shutdown_Command_T<TAO_EC_ProxyPushSupplier_Set>;
- // This classes call the connected_i(), disconnected_i() and
- // shutdown_i() methods, that's ok because they do while this class
- // is holding its lock.
-
- virtual void execute_delayed_operations (void);
- // Derived classes that implement delayed disconnects and connects
- // must override this method.
-
-protected:
- SupplierSet all_suppliers_;
- // The collection of ProxyPushSupplier objects.
-
- TAO_EC_Busy_Lock_Adapter<TAO_EC_ProxyPushSupplier_Set> busy_lock_;
- // The busy lock object
-
-private:
- CORBA::ULong busy_hwm_;
- CORBA::ULong max_write_delay_;
- // Control variables for the concurrency policies.
-};
-
-#if defined (__ACE_INLINE__)
-#include "EC_ProxyPushSupplier_Set.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* TAO_EC_PROXYPUSHSUPPLIER_SET_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.i b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.i
deleted file mode 100644
index dda5992d8a4..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set.i
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-ACE_INLINE TAO_EC_ProxyPushSupplier_Set::SupplierSetIterator
-TAO_EC_ProxyPushSupplier_Set::begin (void)
-{
- return this->all_suppliers_.begin ();
-}
-
-ACE_INLINE TAO_EC_ProxyPushSupplier_Set::SupplierSetIterator
-TAO_EC_ProxyPushSupplier_Set::end (void)
-{
- return this->all_suppliers_.end ();
-}
-
-ACE_INLINE void
-TAO_EC_ProxyPushSupplier_Set::busy_hwm (CORBA::ULong hwm)
-{
- this->busy_hwm_ = hwm;
-}
-
-ACE_INLINE CORBA::ULong
-TAO_EC_ProxyPushSupplier_Set::busy_hwm (void) const
-{
- return this->busy_hwm_;
-}
-
-ACE_INLINE void
-TAO_EC_ProxyPushSupplier_Set::max_write_delay (CORBA::ULong mwd)
-{
- this->max_write_delay_ = mwd;
-}
-
-ACE_INLINE CORBA::ULong
-TAO_EC_ProxyPushSupplier_Set::max_write_delay (void) const
-{
- return this->max_write_delay_;
-}
-
-ACE_INLINE TAO_EC_ProxyPushSupplier_Set::Busy_Lock&
-TAO_EC_ProxyPushSupplier_Set::busy_lock (void)
-{
- return this->busy_lock_;
-}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.cpp
deleted file mode 100644
index b4b03f2b9d0..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// $Id$
-
-#ifndef TAO_EC_PROXYPUSHSUPPLIER_SET_T_CPP
-#define TAO_EC_PROXYPUSHSUPPLIER_SET_T_CPP
-
-#include "EC_ProxyPushSupplier_Set_T.h"
-#include "EC_Command.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "EC_ProxyPushSupplier_Set_T.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(Event, EC_ProxyPushSupplier_Set_T, "$Id$")
-
-template<class ACE_LOCK>int
-TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_LOCK>::busy (void)
-{
- return this->lock_.acquire_read ();
-}
-
-template<class ACE_LOCK> int
-TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_LOCK>::idle (void)
-{
- return this->lock_.release ();
-}
-
-template<class ACE_LOCK> void
-TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_LOCK>::connected (
- TAO_EC_ProxyPushSupplier* supplier,
- CORBA::Environment& ACE_TRY_ENV)
-{
- ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- supplier->_incr_refcnt ();
- this->connected_i (supplier, ACE_TRY_ENV);
-}
-
-template<class ACE_LOCK> void
-TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_LOCK>::disconnected (
- TAO_EC_ProxyPushSupplier* supplier,
- CORBA::Environment& ACE_TRY_ENV)
-{
- ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- this->disconnected_i (supplier, ACE_TRY_ENV);
-}
-
-template<class ACE_LOCK> void
-TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_LOCK>::shutdown (
- CORBA::Environment& ACE_TRY_ENV)
-{
- ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
- this->shutdown_i (ACE_TRY_ENV);
-}
-
-// ****************************************************************
-
-template<ACE_SYNCH_DECL>int
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::busy (void)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- while (this->busy_count_ >= this->busy_hwm ()
- || this->write_delay_ >= this->max_write_delay ())
- this->busy_cond_.wait ();
- this->busy_count_++;
-
- return 0;
-}
-
-template<ACE_SYNCH_DECL> int
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::idle (void)
-{
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
-
- this->busy_count_--;
- if (this->busy_count_ == 0)
- {
- this->write_delay_ = 0;
- this->execute_delayed_operations ();
- this->busy_cond_.broadcast ();
- }
- return 0;
-}
-
-template<ACE_SYNCH_DECL> void
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::connected (
- TAO_EC_ProxyPushSupplier* supplier,
- CORBA::Environment& ACE_TRY_ENV)
-{
- ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- if (this->busy_count_ == 0)
- {
- // We can add the object immediately
- supplier->_incr_refcnt ();
- this->connected_i (supplier, ACE_TRY_ENV);
- }
- else
- {
- supplier->_incr_refcnt ();
- ACE_Command_Base* command;
- ACE_NEW (command,
- TAO_EC_ProxyPushSupplier_Set::Connected_Command (this,
- supplier));
- this->command_queue_.enqueue_tail (command);
- this->write_delay_++;
- }
-}
-
-template<ACE_SYNCH_DECL> void
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::disconnected (
- TAO_EC_ProxyPushSupplier* supplier,
- CORBA::Environment& ACE_TRY_ENV)
-{
- ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- if (this->busy_count_ == 0)
- {
- // We can remove the object immediately
- this->disconnected_i (supplier, ACE_TRY_ENV);
- }
- else
- {
- ACE_Command_Base* command;
- ACE_NEW (command,
- TAO_EC_ProxyPushSupplier_Set::Disconnected_Command (this,
- supplier));
-
- this->command_queue_.enqueue_tail (command);
- this->write_delay_++;
- }
-}
-
-template<ACE_SYNCH_DECL> void
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::shutdown (
- CORBA::Environment& ACE_TRY_ENV)
-{
- ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- if (this->busy_count_ == 0)
- {
- // We can remove the object immediately
- this->shutdown_i (ACE_TRY_ENV);
- }
- else
- {
- ACE_Command_Base* command;
- ACE_NEW (command,
- TAO_EC_ProxyPushSupplier_Set::Shutdown_Command (this));
-
- this->command_queue_.enqueue_tail (command);
- this->write_delay_++;
- }
-}
-
-template<ACE_SYNCH_DECL> void
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::execute_delayed_operations (void)
-{
- // LOCKING: the lock is taken by the idle() function
- while (!this->command_queue_.is_empty ())
- {
- ACE_Command_Base* command;
- this->command_queue_.dequeue_head (command);
-
- command->execute ();
-
- delete command;
- }
-}
-
-#endif /* TAO_EC_PROXYPUSHSUPPLIER_SET_T_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.h b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.h
deleted file mode 100644
index 6da089b3396..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// ============================================================================
-//
-// = LIBRARY
-// ORBSVCS Real-time Event Channel
-//
-// = FILENAME
-// EC_ProxyPushSupplier_Set_T
-//
-// = AUTHOR
-// Carlos O'Ryan (coryan@cs.wustl.edu)
-//
-// = CREDITS
-// Based on previous work by Tim Harrison (harrison@cs.wustl.edu)
-// and other members of the DOC group.
-// More details can be found in:
-// http://www.cs.wustl.edu/~schmidt/oopsla.ps.gz
-// http://www.cs.wustl.edu/~schmidt/JSAC-98.ps.gz
-//
-// ============================================================================
-
-#ifndef TAO_EC_PROXYPUSHSUPPLIER_SET_T_H
-#define TAO_EC_PROXYPUSHSUPPLIER_SET_T_H
-
-#include "EC_ProxyPushSupplier_Set.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-template<class ACE_LOCK>
-class TAO_EC_ProxyPushSupplier_Set_Immediate : public TAO_EC_ProxyPushSupplier_Set
-{
- // = TITLE
- // ProxyPushSupplier_Set_Immediate
- //
- // = DESCRIPTION
- // A concrete implementation of EC_ProxyPushSupplier_Set that
- // propagate changes to the set immediately.
- //
- // = LOCKING
- // Uses parametric types to provide locking.
- //
- // = TODO
- //
-public:
- TAO_EC_ProxyPushSupplier_Set_Immediate (void);
- // Constructor.
-
- // = Read the descriptions in EC_ProxyPushSupplier_Set
- virtual int busy (void);
- virtual int idle (void);
- virtual void connected (TAO_EC_ProxyPushSupplier*,
- CORBA::Environment&);
- virtual void disconnected (TAO_EC_ProxyPushSupplier*,
- CORBA::Environment&);
- virtual void shutdown (CORBA::Environment&);
-
-private:
- ACE_LOCK lock_;
- // The lock.
-};
-
-// ****************************************************************
-
-template<ACE_SYNCH_DECL>
-class TAO_EC_ProxyPushSupplier_Set_Delayed : public TAO_EC_ProxyPushSupplier_Set
-{
- // = TITLE
- // ProxyPushSupplier_Set_Delayed
- //
- // = DESCRIPTION
- // A concrete implementation of EC_ProxyPushSupplier_Set that
- // delays changes to the set until no threads are using the set.
- //
- // = LOCKING
- // Uses parametric types to provide locking.
- //
- // = TODO
- //
-public:
- TAO_EC_ProxyPushSupplier_Set_Delayed (void);
- // Constructor.
-
- // = Read the descriptions in EC_ProxyPushSupplier_Set
- virtual int busy (void);
- virtual int idle (void);
- virtual void connected (TAO_EC_ProxyPushSupplier*,
- CORBA::Environment&);
- virtual void disconnected (TAO_EC_ProxyPushSupplier*,
- CORBA::Environment&);
- virtual void shutdown (CORBA::Environment&);
-
-protected:
- virtual void execute_delayed_operations (void);
-
-private:
- ACE_SYNCH_MUTEX_T lock_;
- // The lock.
-
- ACE_SYNCH_CONDITION_T busy_cond_;
- // A condition variable to wait while the object is too busy.
-
- CORBA::ULong busy_count_;
- // Keep track of the number of threads using the set
-
- CORBA::ULong write_delay_;
- // Keep track of the number of threads that have used the set since
- // the last change was posted.
-
- ACE_Unbounded_Queue<ACE_Command_Base*> command_queue_;
- // The commands that carry the delayed operations are enqueued
- // here.
-};
-
-#if defined (__ACE_INLINE__)
-#include "EC_ProxyPushSupplier_Set_T.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "EC_ProxyPushSupplier_Set_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("EC_ProxyPushSupplier_Set_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* TAO_EC_PROXYPUSHSUPPLIER_SET_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.i b/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.i
deleted file mode 100644
index f65b57d2cc7..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_ProxyPushSupplier_Set_T.i
+++ /dev/null
@@ -1,19 +0,0 @@
-// $Id$
-
-template<class ACE_LOCK> ACE_INLINE
-TAO_EC_ProxyPushSupplier_Set_Immediate<ACE_LOCK>::
- TAO_EC_ProxyPushSupplier_Set_Immediate (void)
-{
-}
-
-// ****************************************************************
-
-template<ACE_SYNCH_DECL> ACE_INLINE
-TAO_EC_ProxyPushSupplier_Set_Delayed<ACE_SYNCH_USE>::
- TAO_EC_ProxyPushSupplier_Set_Delayed (void)
- : busy_cond_ (lock_),
- busy_count_ (0),
- write_delay_ (0)
-{
-}
-
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp
new file mode 100644
index 00000000000..791f55c8fe6
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.cpp
@@ -0,0 +1,312 @@
+// $Id$
+
+#ifndef TAO_EC_PROXY_COLLECTION_CPP
+#define TAO_EC_PROXY_COLLECTION_CPP
+
+#include "EC_Proxy_Collection.h"
+#include "EC_Command.h"
+#include "EC_Worker.h"
+#include "EC_Defaults.h"
+#include "orbsvcs/RtecEventChannelAdminC.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Proxy_Collection.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Proxy_Collection, "$Id$")
+
+// ****************************************************************
+
+template<class PROXY>
+TAO_EC_Proxy_Collection<PROXY>::~TAO_EC_Proxy_Collection (void)
+{
+}
+
+// ****************************************************************
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+TAO_EC_Immediate_Changes<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ TAO_EC_Immediate_Changes (void)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+TAO_EC_Immediate_Changes<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ TAO_EC_Immediate_Changes (const COLLECTION &collection)
+ : collection_ (collection)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK> void
+TAO_EC_Immediate_Changes<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
+
+ ITERATOR end = this->collection_.end ();
+ for (ITERATOR i = this->collection_.begin (); i != end; ++i)
+ {
+ worker->work ((*i), ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+}
+
+// ****************************************************************
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL>
+TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>::
+ TAO_EC_Delayed_Changes (void)
+ : lock_ (this),
+ busy_cond_ (busy_lock_),
+ busy_count_ (0),
+ write_delay_count_ (0),
+ busy_hwm_ (TAO_EC_DEFAULT_BUSY_HWM),
+ max_write_delay_ (TAO_EC_DEFAULT_MAX_WRITE_DELAY)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL>
+TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>::
+ TAO_EC_Delayed_Changes (const COLLECTION &collection)
+ : collection_ (collection),
+ lock_ (this),
+ busy_cond_ (busy_lock_),
+ busy_count_ (0),
+ write_delay_count_ (0),
+ busy_hwm_ (TAO_EC_DEFAULT_BUSY_HWM),
+ max_write_delay_ (TAO_EC_DEFAULT_MAX_WRITE_DELAY)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>::
+ for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (Busy_Lock, ace_mon, this->lock_);
+
+ ITERATOR end = this->collection_.end ();
+ for (ITERATOR i = this->collection_.begin (); i != end; ++i)
+ {
+ worker->work (*i, ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL> int
+TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>::
+ busy (void)
+{
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->busy_lock_, -1);
+
+ while (this->busy_count_ >= this->busy_hwm_
+ || this->write_delay_count_ >= this->max_write_delay_)
+ this->busy_cond_.wait ();
+ this->busy_count_++;
+
+ return 0;
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL> int
+TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>::
+ idle (void)
+{
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->busy_lock_, -1);
+
+ this->busy_count_--;
+ if (this->busy_count_ == 0)
+ {
+ this->write_delay_count_ = 0;
+ this->execute_delayed_operations ();
+ this->busy_cond_.broadcast ();
+ }
+ return 0;
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL> int
+TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>::
+ execute_delayed_operations (void)
+{
+ while (!this->command_queue_.is_empty ())
+ {
+ ACE_Command_Base* command;
+ this->command_queue_.dequeue_head (command);
+
+ command->execute ();
+
+ delete command;
+ }
+ return 0;
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->busy_lock_,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
+ ACE_CHECK;
+
+ proxy->_incr_refcnt ();
+ if (this->busy_count_ == 0)
+ {
+ // We can add the object immediately
+ this->connected_i (proxy, ACE_TRY_ENV);
+ }
+ else
+ {
+ ACE_Command_Base* command;
+ ACE_NEW (command,
+ Connected_Command (this,
+ proxy));
+ this->command_queue_.enqueue_tail (command);
+ this->write_delay_count_++;
+ }
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->busy_lock_,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
+ ACE_CHECK;
+
+ proxy->_incr_refcnt ();
+ if (this->busy_count_ == 0)
+ {
+ // We can reconnect the object immediately
+ this->reconnected_i (proxy, ACE_TRY_ENV);
+ }
+ else
+ {
+ ACE_Command_Base* command;
+ ACE_NEW (command,
+ Reconnected_Command (this,
+ proxy));
+ this->command_queue_.enqueue_tail (command);
+ this->write_delay_count_++;
+ }
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->busy_lock_,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
+ ACE_CHECK;
+
+ if (this->busy_count_ == 0)
+ {
+ // We can remove the object immediately
+ this->disconnected_i (proxy, ACE_TRY_ENV);
+ }
+ else
+ {
+ ACE_Command_Base* command;
+ ACE_NEW (command,
+ Disconnected_Command (this,
+ proxy));
+ this->command_queue_.enqueue_tail (command);
+ this->write_delay_count_++;
+ }
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ shutdown (CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD_THROW_EX (ACE_SYNCH_MUTEX_T, ace_mon, this->busy_lock_,
+ RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
+ ACE_CHECK;
+
+ if (this->busy_count_ == 0)
+ {
+ // We can shutdown the object immediately
+ this->shutdown_i (ACE_TRY_ENV);
+ }
+ else
+ {
+ ACE_Command_Base* command;
+ ACE_NEW (command,
+ Shutdown_Command (this));
+ this->command_queue_.enqueue_tail (command);
+ this->write_delay_count_++;
+ }
+}
+
+// ****************************************************************
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+TAO_EC_Copy_On_Read<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ TAO_EC_Copy_On_Read (void)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+TAO_EC_Copy_On_Read<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ TAO_EC_Copy_On_Read (const COLLECTION &collection)
+ : collection_ (collection)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK> void
+TAO_EC_Copy_On_Read<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ // @@ Use an allocator for this memory...
+ PROXY **proxies = 0;
+ size_t size = 0;
+ ACE_TRY
+ {
+ {
+ ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
+
+ size = this->collection_.size ();
+ ACE_NEW (proxies, PROXY*[size]);
+ PROXY **j = proxies;
+
+ for (; j != proxies + size; ++j)
+ *j = 0;
+
+ j = proxies;
+ ITERATOR end = this->collection_.end ();
+ for (ITERATOR i = this->collection_.begin (); i != end; ++i)
+ {
+ *j = *i;
+ (*j)->_incr_refcnt ();
+ ++j;
+ }
+ }
+
+ for (PROXY **j = proxies; j != proxies + size; ++j)
+ {
+ worker->work (*j, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ (*j)->_decr_refcnt ();
+ }
+ delete[] proxies;
+ }
+ ACE_CATCHANY
+ {
+ for (PROXY **j = proxies; j != proxies + size; ++j)
+ {
+ if (*j != 0)
+ (*j)->_decr_refcnt ();
+ }
+ delete[] proxies;
+
+ ACE_RETHROW;
+ }
+ ACE_ENDTRY;
+}
+
+// ****************************************************************
+
+#endif /* TAO_EC_PROXY_COLLECTION_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h b/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h
new file mode 100644
index 00000000000..2aaa4496426
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.h
@@ -0,0 +1,363 @@
+/* -*- C++ -*- */
+// $Id$
+//
+// ============================================================================
+//
+// = LIBRARY
+// ORBSVCS Real-time Event Channel
+//
+// = FILENAME
+// EC_Proxy_Collection
+//
+// = AUTHOR
+// Carlos O'Ryan (coryan@cs.wustl.edu)
+//
+// = CREDITS
+// http://www.cs.wustl.edu/~coryan/EC/index.html
+//
+// ============================================================================
+
+#ifndef TAO_EC_PROXY_COLLECTION_H
+#define TAO_EC_PROXY_COLLECTION_H
+
+#include "EC_Busy_Lock.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/corba.h"
+#include "ace/Containers.h"
+
+template<class Target> class TAO_EC_Worker;
+
+template<class PROXY>
+class TAO_EC_Proxy_Collection
+{
+ // = TITLE
+ // EC_Proxy_Collection
+ //
+ // = DESCRIPTION
+ // Many components in the Event Channel need to keep a collection
+ // of proxies; these collections must be able to cope with several
+ // concurrency issues:
+ // + Some threads may need to iterate over the collection and
+ // invoke a method on each element. Locking the collection
+ // while this is done is not feasible in all cases: under some
+ // configurations the same thread that is iterating over the
+ // collection may need to make changes to the set.
+ // + A recursive lock does not solve the concurrency problems
+ // because recursive changes to the collection still invalidate
+ // the iterators.
+ //
+ // There are several solutions to this problem (see the VARIANTS)
+ // section, and there is no single one that works bests in all
+ // cases. As usual, we wish the strategize the protocol used to
+ // serialize iterations and changes to the collection. This class
+ // encapsulates that protocol.
+ //
+ // The reasons are too long to enumerate here, but the Iterator
+ // pattern is not appropriate in this case. We use Function
+ // Objects (aka Worker) to perform a client-defined task on each
+ // member.
+ //
+ // Regular member functions are used to insert, remove and update
+ // members of the collection and to shutdown (i.e. perform final
+ // cleanup operations).
+ //
+ // The class must also collaborate with other components of the
+ // EC to efficiently and safely perform memory managment of the
+ // members in the collection.
+ //
+ // = VARIANTS
+ //
+ // We identify several sources of variation:
+ //
+ // + Immediate_Changes: in this variant the iteration in performed
+ // while holding some kind of synchronization primitive, such as a
+ // thread mutex, a recursive mutex, a RW lock, etc.
+ // This is only useful in configurations where a separate thread
+ // dispatches the events, and thus, can only be used with real
+ // locks.
+ //
+ // + Copy_On_Read: before performing the iteration the collection
+ // is duplicated into a temporary array. Thus no locks are held
+ // during the iteration. This is a very expensive approach, but
+ // useful in many cases.
+ // The kind of lock is also strategized in this case.
+ //
+ // + Copy_On_Write: this is very similar to the previous approach,
+ // but the collection is only duplicated when a change is required
+ // while some thread is performing an iteration. The iteration
+ // continues over the original copy, while the changes are
+ // performed in the duplicate. The new copy of the collection is
+ // used for any suibsequent operations, the original is discarded
+ // when the last thread using it completes its work.
+ // This approach optimizes for the case where no changes are
+ // is duplicated into a temporary array. Thus no locks are held
+ // during the iteration. This is a very expensive approach, but
+ // useful in many cases.
+ // The kind of lock is also strategized in this case.
+ //
+ // + Delayed_Changes: before starting the iteration a counter is
+ // incremented, this counter is used to keep track of the number
+ // of threads concurrently using the collection.
+ // If a thread wants to perform a change to the collection it must
+ // first verify that there are no threads iterating over it. If
+ // there are any threads then the thread queues the modification
+ // for later execution, using the Command pattern.
+ // The kind of lock is strategized, as this approach is used in
+ // single threaded configurations.
+ // There are two main variations:
+ // - An upcall can result in new dispatches: in this case we
+ // have to keep track of a the list of current threads using
+ // a Set, to avoid dead-locks.
+ // IMPLEMENTATION: the design is not complete, probably
+ // similar to the next one.
+ // - Otherwise we just need to control the concurrency using the
+ // algorithm described below.
+ //
+ //
+ // = MEMORY MANAGMENT
+ // It assumes ownership of the proxies added to the collection,
+ // it increases the reference count.
+ //
+ // = LOCKING
+ // Locking is provided by derived classes.
+ //
+ // = TODO
+ //
+public:
+ virtual ~TAO_EC_Proxy_Collection (void);
+ // destructor
+
+ virtual void for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV) = 0;
+ // Iterate over the collection and invoke worker->work() for each
+ // member of the collection.
+ // This encapsulates
+
+ virtual void connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV) = 0;
+ // Insert a new element into the collection. The collection assumes
+ // ownership of the element.
+
+ virtual void reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV) = 0;
+ // Insert an element into the collection. No errors can be raised
+ // if the element is already present.
+ // The collection assumes ownership, i.e. must invoke
+ // <proxy->_decr_refcnt()> if the element is already present in the
+ // collection.
+
+ virtual void disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV) = 0;
+ // Remove an element from the collection.
+
+ virtual void shutdown (CORBA::Environment &ACE_TRY_ENV) = 0;
+ // The EC is shutting down, must release all the elements.
+};
+
+// ****************************************************************
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+class TAO_EC_Immediate_Changes : public TAO_EC_Proxy_Collection<PROXY>
+{
+ // = TITLE
+ // TAO_EC_Immediate_Changes
+ //
+ // = DESCRIPTION
+ // Implement the Immediate_
+public:
+ TAO_EC_Immediate_Changes (void);
+ TAO_EC_Immediate_Changes (const COLLECTION &collection);
+
+ // = The TAO_EC_Proxy methods
+ virtual void for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void shutdown (CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ COLLECTION collection_;
+
+ ACE_LOCK lock_;
+};
+
+// ****************************************************************
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+class TAO_EC_Copy_On_Read : public TAO_EC_Proxy_Collection<PROXY>
+{
+ // = TITLE
+ // TAO_EC_Copy_On_Read
+ //
+ // = DESCRIPTION
+ // Implement the Copy_On_Read protocol
+ // The class is parametric on the kind of collection and locking
+ // mechanism used.
+ //
+ // = TODO
+ // Ensure that the collection and lock types can be
+ // ACE_Lock_Adapter and ACE_Proxy_Set so they can be dynamically
+ // modified.
+ //
+public:
+ TAO_EC_Copy_On_Read (void);
+ TAO_EC_Copy_On_Read (const COLLECTION &collection);
+ // Constructors
+
+ // = The TAO_EC_Proxy methods
+ virtual void for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void shutdown (CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ COLLECTION collection_;
+
+ ACE_LOCK lock_;
+};
+
+// ****************************************************************
+
+template<class Target,class Object> class TAO_EC_Connected_Command;
+template<class Target,class Object> class TAO_EC_Disconnected_Command;
+template<class Target,class Object> class TAO_EC_Reconnected_Command;
+template<class Target> class TAO_EC_Shutdown_Command;
+
+template<class PROXY, class COLLECTION, class ITERATOR, ACE_SYNCH_DECL>
+class TAO_EC_Delayed_Changes : public TAO_EC_Proxy_Collection<PROXY>
+{
+ // = TITLE
+ // TAO_EC_Delayed_Operations
+ //
+ // = DESCRIPTION
+ // This class implements the Delayed Operations protocol to solve
+ // the concurrency challenges outlined in the documentation of
+ // TAO_EC_Proxy_Collection.
+ // In short the class delays changes by putting them on an
+ // "operation queue", the operations are stored as command objects
+ // in this queue and executed once the system is quiescent
+ // (i.e. no threads are iterating over the collection).
+ //
+ // The algorithm implemented so far is:
+ // - If a thread is using the set then it increases the busy
+ // count, this is done by calling the busy() method. Once the
+ // thread has stopped using the collection the idle() method is
+ // invoked and the busy count is decreased.
+ // A helper class (Busy_Lock) is used to hide this protocol
+ // behind the familiar GUARD idiom.
+ // - If the busy count reaches the busy_hwm then the thread must
+ // wait until the count reaches 0 again.
+ // This can be used to control the maximum concurrency in the
+ // EC, matching it (for example) with the number of
+ // processors. Setting the concurrency to a high value (say one
+ // million) allows for an arbitrary number of threads to execute
+ // concurrently.
+ // - If a modification is posted to the collection we need to
+ // execute it at some point.
+ // Just using the busy_hwm would not work, the HWM may not be
+ // reached ever, so another form of control is needed.
+ // Instead we use another counter, that keeps track of how many
+ // threads have used the set since the modification was
+ // posted. If this number of threads reaches max_write_delay then
+ // we don't allow any more threads to go in, eventually the
+ // thread count reaches 0 and we can proceed with the operations.
+ //
+ // - There is one aspect of concurrency that can be problematic: if
+ // thread pushes events as part of an upcall then the same thread
+ // could be counted twice, we need to keep track of the threads
+ // that are dispatching events and not increase (or decrease) the
+ // reference count when a thread iterates twice over the same
+ // set.
+ //
+ // This solves the major problems, but there are other issues to
+ // be addressed:
+ // + How do we ensure that the operations are eventually executed?
+ // + How do we simplify the execution of the locking protocol for
+ // clients of this class?
+ // + How do we minimize overhead for single threaded execution?
+ // + How do we minimize the overhead for the cases where the
+ // threads dispatching events don't post changes to the
+ // collection?
+ //
+public:
+ TAO_EC_Delayed_Changes (void);
+ TAO_EC_Delayed_Changes (const COLLECTION &collection);
+
+ int busy (void);
+ int idle (void);
+ int execute_delayed_operations (void);
+
+ void connected_i (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ void reconnected_i (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ void disconnected_i (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ void shutdown_i (CORBA::Environment &ACE_TRY_ENV);
+
+ typedef TAO_EC_Connected_Command<TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>,PROXY> Connected_Command;
+ typedef TAO_EC_Reconnected_Command<TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>,PROXY> Reconnected_Command;
+ typedef TAO_EC_Disconnected_Command<TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE>,PROXY> Disconnected_Command;
+ typedef TAO_EC_Shutdown_Command<TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE> > Shutdown_Command;
+
+ // = The TAO_EC_Proxy methods
+ virtual void for_each (TAO_EC_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV);
+ virtual void shutdown (CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ COLLECTION collection_;
+
+ typedef TAO_EC_Busy_Lock_Adapter<TAO_EC_Delayed_Changes<PROXY,COLLECTION,ITERATOR,ACE_SYNCH_USE> > Busy_Lock;
+
+ Busy_Lock lock_;
+
+ ACE_SYNCH_MUTEX_T busy_lock_;
+
+ ACE_SYNCH_CONDITION_T busy_cond_;
+
+ CORBA::ULong busy_count_;
+
+ CORBA::ULong write_delay_count_;
+
+ CORBA::ULong busy_hwm_;
+ CORBA::ULong max_write_delay_;
+ // Control variables for the concurrency policies.
+
+ ACE_Unbounded_Queue<ACE_Command_Base*> command_queue_;
+};
+
+// ****************************************************************
+
+#if defined (__ACE_INLINE__)
+#include "EC_Proxy_Collection.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "EC_Proxy_Collection.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("EC_Proxy_Collection.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* TAO_EC_PROXY_COLLECTION_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i b/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i
new file mode 100644
index 00000000000..0ba01af2bd3
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Proxy_Collection.i
@@ -0,0 +1,118 @@
+// $Id$
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Immediate_Changes<PROXY,C,I,L>::
+ connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ proxy->_incr_refcnt ();
+ this->collection_.connected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Immediate_Changes<PROXY,C,I,L>::
+ reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ proxy->_incr_refcnt ();
+ this->collection_.reconnected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Immediate_Changes<PROXY,C,I,L>::
+ disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ this->collection_.disconnected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Immediate_Changes<PROXY,C,I,L>::
+ shutdown (CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ this->collection_.shutdown (ACE_TRY_ENV);
+}
+
+// ****************************************************************
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ connected_i (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ this->collection_.connected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ reconnected_i (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ this->collection_.reconnected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ disconnected_i (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ this->collection_.disconnected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I,ACE_SYNCH_DECL> void
+TAO_EC_Delayed_Changes<PROXY,C,I,ACE_SYNCH_USE>::
+ shutdown_i (CORBA::Environment &ACE_TRY_ENV)
+{
+ this->collection_.shutdown (ACE_TRY_ENV);
+}
+
+// ****************************************************************
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Copy_On_Read<PROXY,C,I,L>::
+ connected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ proxy->_incr_refcnt ();
+ this->collection_.connected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Copy_On_Read<PROXY,C,I,L>::
+ reconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ proxy->_incr_refcnt ();
+ this->collection_.reconnected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Copy_On_Read<PROXY,C,I,L>::
+ disconnected (PROXY *proxy,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ this->collection_.disconnected (proxy, ACE_TRY_ENV);
+}
+
+template<class PROXY, class C, class I, class L> void
+TAO_EC_Copy_On_Read<PROXY,C,I,L>::
+ shutdown (CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (L, ace_mon, this->lock_);
+
+ this->collection_.shutdown (ACE_TRY_ENV);
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp
index cf08b13cfba..1952164eb4c 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp
@@ -5,7 +5,7 @@
#include "EC_ConsumerAdmin.h"
#include "EC_ProxySupplier.h"
-#if ! defined (__ACE_INdLINE__)
+#if ! defined (__ACE_INLINE__)
#include "EC_Reactive_ConsumerControl.i"
#endif /* __ACE_INLINE__ */
@@ -32,54 +32,10 @@ void
TAO_EC_Reactive_ConsumerControl::query_consumers (
CORBA::Environment &ACE_TRY_ENV)
{
- TAO_EC_ConsumerAdmin *consumer_admin =
- this->event_channel_->consumer_admin ();
-
- TAO_EC_ConsumerAdmin::Busy_Lock &lock =
- consumer_admin->busy_lock ();
-
- ACE_GUARD (TAO_EC_ConsumerAdmin::Busy_Lock, ace_mon, lock);
-
- TAO_EC_ConsumerAdmin::SupplierSetIterator end =
- consumer_admin->end ();
- for (TAO_EC_ConsumerAdmin::SupplierSetIterator i =
- consumer_admin->begin ();
- i != end;
- ++i)
- {
- TAO_EC_ProxyPushSupplier *proxy = *i;
- ACE_TRY
- {
- CORBA::Boolean disconnected;
- CORBA::Boolean non_existent =
- proxy->consumer_non_existent (disconnected,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
- if (non_existent && !disconnected)
- {
- this->consumer_not_exist (proxy, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- }
- ACE_CATCH (CORBA::OBJECT_NOT_EXIST, ex)
- {
- this->consumer_not_exist (proxy, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCH (CORBA::TRANSIENT, transient)
- {
- // This is TAO's minor code for a failed connection, we may
- // want to be more lenient in the future..
- // if (transient.minor () == 0x54410085)
- this->consumer_not_exist (proxy, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCHANY
- {
- // Ignore all exceptions
- }
- ACE_ENDTRY;
- }
+ TAO_EC_Ping_Consumer worker (this);
+ this->event_channel_->consumer_admin ()->for_each (&worker,
+ ACE_TRY_ENV);
+ ACE_CHECK;
}
void
@@ -241,6 +197,45 @@ TAO_EC_ConsumerControl_Adapter::handle_timeout (
return 0;
}
+// ****************************************************************
+
+void
+TAO_EC_Ping_Consumer::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_TRY
+ {
+ CORBA::Boolean disconnected;
+ CORBA::Boolean non_existent =
+ supplier->consumer_non_existent (disconnected,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ if (non_existent && !disconnected)
+ {
+ this->control_->consumer_not_exist (supplier, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ }
+ ACE_CATCH (CORBA::OBJECT_NOT_EXIST, ex)
+ {
+ this->control_->consumer_not_exist (supplier, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (CORBA::TRANSIENT, transient)
+ {
+ // This is TAO's minor code for a failed connection, we may
+ // want to be more lenient in the future..
+ // if (transient.minor () == 0x54410085)
+ this->control_->consumer_not_exist (supplier, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ // Ignore all exceptions
+ }
+ ACE_ENDTRY;
+}
+
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h
index 8345c9a947b..2f84c8e7945 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.h
@@ -21,6 +21,7 @@
#define TAO_EC_REACTIVE_CONSUMERCONTROL_H
#include "EC_ConsumerControl.h"
+#include "EC_Worker.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -121,6 +122,20 @@ private:
// The ORB reactor
};
+// ****************************************************************
+
+class TAO_EC_Ping_Consumer : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+public:
+ TAO_EC_Ping_Consumer (TAO_EC_ConsumerControl *control);
+
+ virtual void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ConsumerControl *control_;
+};
+
#if defined (__ACE_INLINE__)
#include "EC_Reactive_ConsumerControl.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i
index cfa1da318d3..08e2174e57d 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.i
@@ -1 +1,7 @@
// $Id$
+
+ACE_INLINE
+TAO_EC_Ping_Consumer::TAO_EC_Ping_Consumer (TAO_EC_ConsumerControl *control)
+ : control_ (control)
+{
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp
index 330586aad7e..8e6f94564df 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp
@@ -5,7 +5,7 @@
#include "EC_SupplierAdmin.h"
#include "EC_ProxyConsumer.h"
-#if ! defined (__ACE_INdLINE__)
+#if ! defined (__ACE_INLINE__)
#include "EC_Reactive_SupplierControl.i"
#endif /* __ACE_INLINE__ */
@@ -32,54 +32,10 @@ void
TAO_EC_Reactive_SupplierControl::query_suppliers (
CORBA::Environment &ACE_TRY_ENV)
{
- TAO_EC_SupplierAdmin *supplier_admin =
- this->event_channel_->supplier_admin ();
-
- TAO_EC_SupplierAdmin::Busy_Lock &lock =
- supplier_admin->busy_lock ();
-
- ACE_GUARD (TAO_EC_SupplierAdmin::Busy_Lock, ace_mon, lock);
-
- TAO_EC_SupplierAdmin::ConsumerSetIterator end =
- supplier_admin->end ();
- for (TAO_EC_SupplierAdmin::ConsumerSetIterator i =
- supplier_admin->begin ();
- i != end;
- ++i)
- {
- TAO_EC_ProxyPushConsumer *proxy = *i;
- ACE_TRY
- {
- CORBA::Boolean disconnected;
- CORBA::Boolean non_existent =
- proxy->supplier_non_existent (disconnected,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
- if (non_existent && !disconnected)
- {
- this->supplier_not_exist (proxy, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- }
- ACE_CATCH (CORBA::OBJECT_NOT_EXIST, ex)
- {
- this->supplier_not_exist (proxy, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCH (CORBA::TRANSIENT, transient)
- {
- // This is TAO's minor code for a failed connection, we may
- // want to be more lenient in the future..
- // if (transient.minor () == 0x54410085)
- this->supplier_not_exist (proxy, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCHANY
- {
- // Ignore all exceptions
- }
- ACE_ENDTRY;
- }
+ TAO_EC_Ping_Supplier worker (this);
+ this->event_channel_->supplier_admin ()->for_each (&worker,
+ ACE_TRY_ENV);
+ ACE_CHECK;
}
void
@@ -239,6 +195,45 @@ TAO_EC_SupplierControl_Adapter::handle_timeout (
return 0;
}
+// ****************************************************************
+
+void
+TAO_EC_Ping_Supplier::work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_TRY
+ {
+ CORBA::Boolean disconnected;
+ CORBA::Boolean non_existent =
+ consumer->supplier_non_existent (disconnected,
+ ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ if (non_existent && !disconnected)
+ {
+ this->control_->supplier_not_exist (consumer, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ }
+ ACE_CATCH (CORBA::OBJECT_NOT_EXIST, ex)
+ {
+ this->control_->supplier_not_exist (consumer, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (CORBA::TRANSIENT, transient)
+ {
+ // This is TAO's minor code for a failed connection, we may
+ // want to be more lenient in the future..
+ // if (transient.minor () == 0x54410085)
+ this->control_->supplier_not_exist (consumer, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ // Ignore all exceptions
+ }
+ ACE_ENDTRY;
+}
+
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h
index 2015211af4e..9c8c82851c8 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.h
@@ -21,6 +21,7 @@
#define TAO_EC_REACTIVE_SUPPLIERCONTROL_H
#include "EC_SupplierControl.h"
+#include "EC_Worker.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -121,6 +122,20 @@ private:
// The ORB reactor
};
+// ****************************************************************
+
+class TAO_EC_Ping_Supplier : public TAO_EC_Worker<TAO_EC_ProxyPushConsumer>
+{
+public:
+ TAO_EC_Ping_Supplier (TAO_EC_SupplierControl *control);
+
+ virtual void work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_SupplierControl *control_;
+};
+
#if defined (__ACE_INLINE__)
#include "EC_Reactive_SupplierControl.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i
index cfa1da318d3..0bd62d884aa 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.i
@@ -1 +1,8 @@
// $Id$
+
+ACE_INLINE
+TAO_EC_Ping_Supplier::TAO_EC_Ping_Supplier (TAO_EC_SupplierControl *control)
+ : control_ (control)
+{
+}
+
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp
index 54cd37539ca..f69f6e8cbc5 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp
@@ -14,22 +14,23 @@ ACE_RCSID(Event, EC_SupplierAdmin, "$Id$")
TAO_EC_SupplierAdmin::TAO_EC_SupplierAdmin (TAO_EC_Event_Channel *ec)
: event_channel_ (ec)
{
+ this->collection_ =
+ this->event_channel_->create_proxy_push_consumer_collection ();
+
+ // @@
+ // @@ this->collection_->busy_hwm (this->event_channel_->busy_hwm ());
+ // @@ this->collection_->max_write_delay (
+ // @@ this->event_channel_->max_write_delay ()
+ // @@ );
+
this->default_POA_ =
this->event_channel_->supplier_poa ();
-
- // @@ We must consider using the techniques in the ConsumerAdmin
- // also, i.e. not using locks but delaying operations that modify
- // the set. I don't see much use for them right now, since there
- // is no potential for dead-lock when dispatching events and/or
- // adding multiple suppliers and consumers, but we could avoid
- // some priority inversions.
- this->lock_ =
- this->event_channel_->create_supplier_admin_lock ();
}
TAO_EC_SupplierAdmin::~TAO_EC_SupplierAdmin (void)
{
- this->event_channel_->destroy_supplier_admin_lock (this->lock_);
+ this->event_channel_->destroy_proxy_push_consumer_collection (this->collection_);
+ this->collection_ = 0;
}
PortableServer::POA_ptr
@@ -42,130 +43,54 @@ void
TAO_EC_SupplierAdmin::connected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- ConsumerSetIterator end = this->end ();
- for (ConsumerSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- (*i)->connected (supplier, ACE_TRY_ENV);
- ACE_CHECK;
- supplier->connected (*i, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ TAO_EC_Connect_Supplier worker (supplier);
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
}
void
TAO_EC_SupplierAdmin::reconnected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- ConsumerSetIterator end = this->end ();
- for (ConsumerSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- (*i)->reconnected (supplier, ACE_TRY_ENV);
- ACE_CHECK;
- supplier->reconnected (*i, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ TAO_EC_Reconnect_Supplier worker (supplier);
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
}
void
TAO_EC_SupplierAdmin::disconnected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- ConsumerSetIterator end = this->end ();
- for (ConsumerSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- (*i)->disconnected (supplier, ACE_TRY_ENV);
- ACE_CHECK;
- supplier->disconnected (*i, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ TAO_EC_Disconnect_Supplier worker (supplier);
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
}
void
TAO_EC_SupplierAdmin::connected (TAO_EC_ProxyPushConsumer *consumer,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- if (this->all_consumers_.insert (consumer) != 0)
- ACE_THROW (CORBA::NO_MEMORY ());
+ this->collection_->connected (consumer, ACE_TRY_ENV);
}
void
TAO_EC_SupplierAdmin::reconnected (TAO_EC_ProxyPushConsumer *consumer,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- if (this->all_consumers_.insert (consumer) == -1)
- ACE_THROW (CORBA::NO_MEMORY ());
+ this->collection_->reconnected (consumer, ACE_TRY_ENV);
}
void
TAO_EC_SupplierAdmin::disconnected (TAO_EC_ProxyPushConsumer *consumer,
CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- if (this->all_consumers_.remove (consumer) != 0)
- ACE_THROW (RtecEventChannelAdmin::EventChannel::SUBSCRIPTION_ERROR ());
+ this->collection_->disconnected (consumer, ACE_TRY_ENV);
}
void
TAO_EC_SupplierAdmin::shutdown (CORBA::Environment &ACE_TRY_ENV)
{
- ACE_GUARD_THROW_EX (
- ACE_Lock, ace_mon, *this->lock_,
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
+ TAO_EC_Shutdown_Consumer worker;
- ConsumerSetIterator end = this->end ();
- for (ConsumerSetIterator i = this->begin ();
- i != end;
- ++i)
- {
- ACE_TRY
- {
- (*i)->shutdown (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- (*i)->_decr_refcnt ();
- }
- ACE_CATCHANY
- {
- /* ignore all exceptions */
- }
- ACE_ENDTRY;
- }
- this->all_consumers_.reset ();
+ this->collection_->for_each (&worker, ACE_TRY_ENV);
+ this->collection_->shutdown (ACE_TRY_ENV);
}
RtecEventChannelAdmin::ProxyPushConsumer_ptr
@@ -178,16 +103,62 @@ TAO_EC_SupplierAdmin::obtain_push_consumer (CORBA::Environment &ACE_TRY_ENV)
return consumer->_this (ACE_TRY_ENV);
}
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+// ****************************************************************
-template class ACE_Node<TAO_EC_ProxyPushConsumer*>;
-template class ACE_Unbounded_Set<TAO_EC_ProxyPushConsumer*>;
-template class ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushConsumer*>;
+void
+TAO_EC_Connect_Supplier::work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ consumer->connected (this->supplier_, ACE_TRY_ENV);
+ ACE_CHECK;
+ this->supplier_->connected (consumer, ACE_TRY_ENV);
+ ACE_CHECK;
+}
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+// ****************************************************************
+
+void
+TAO_EC_Reconnect_Supplier::work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ consumer->reconnected (this->supplier_, ACE_TRY_ENV);
+ ACE_CHECK;
+ this->supplier_->reconnected (consumer, ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+// ****************************************************************
+
+void
+TAO_EC_Disconnect_Supplier::work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ consumer->disconnected (this->supplier_, ACE_TRY_ENV);
+ ACE_CHECK;
+ this->supplier_->disconnected (consumer, ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+// ****************************************************************
+
+void
+TAO_EC_Shutdown_Consumer::work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_TRY
+ {
+ consumer->shutdown (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ // Ignore exceptions
+ }
+ ACE_ENDTRY;
+}
-#pragma instantiate ACE_Node<TAO_EC_ProxyPushConsumer*>
-#pragma instantiate ACE_Unbounded_Set<TAO_EC_ProxyPushConsumer*>
-#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushConsumer*>
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h
index c95e659cef4..87457a00510 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.h
@@ -26,12 +26,14 @@
#define TAO_EC_SUPPLIERADMIN_H
#include "orbsvcs/RtecEventChannelAdminS.h"
-#include "orbsvcs/Event/EC_Filter.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "EC_Proxy_Collection.h"
+#include "EC_Worker.h"
+
class TAO_EC_Event_Channel;
class TAO_EC_ProxyPushSupplier;
class TAO_EC_ProxyPushConsumer;
@@ -63,8 +65,9 @@ public:
virtual ~TAO_EC_SupplierAdmin (void);
// destructor...
- virtual PortableServer::POA_ptr _default_POA (CORBA::Environment& env);
- // Override the ServantBase method.
+ void for_each (TAO_EC_Worker<TAO_EC_ProxyPushConsumer> *worker,
+ CORBA::Environment &ACE_TRY_ENV);
+ // For each elements call <worker->work()>.
virtual void connected (TAO_EC_ProxyPushConsumer*,
CORBA::Environment&);
@@ -93,29 +96,97 @@ public:
obtain_push_consumer (CORBA::Environment &)
ACE_THROW_SPEC ((CORBA::SystemException));
- typedef ACE_Unbounded_Set<TAO_EC_ProxyPushConsumer*> ConsumerSet;
- typedef ACE_Unbounded_Set_Iterator<TAO_EC_ProxyPushConsumer*> ConsumerSetIterator;
-
- ConsumerSetIterator begin (void);
- ConsumerSetIterator end (void);
- // Iterators over the set of ProxyPushConsumers
-
- typedef ACE_Lock Busy_Lock;
- Busy_Lock &busy_lock (void);
- // Get the lock
+ // = The PortableServer::ServantBase methods
+ virtual PortableServer::POA_ptr _default_POA (CORBA::Environment& env);
private:
TAO_EC_Event_Channel *event_channel_;
// The Event Channel we belong to
+ typedef TAO_EC_Proxy_Collection<TAO_EC_ProxyPushConsumer> Collection;
+
+ Collection *collection_;
+ // The consumer container
+
PortableServer::POA_var default_POA_;
// Store the default POA.
+};
+
+// ****************************************************************
+
+class TAO_EC_Connect_Supplier : public TAO_EC_Worker<TAO_EC_ProxyPushConsumer>
+{
+ // = TITLE
+ // TAO_EC_Connect_Supplier
+ //
+ // = DESCRIPTION
+ // Worker class to connect the ProxyPushConsumer objects with all
+ // the ProxyPushConsumer objects in the collection.
+ //
+public:
+ TAO_EC_Connect_Supplier (TAO_EC_ProxyPushSupplier *supplier);
+ // Constructor
+
+ void work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ProxyPushSupplier *supplier_;
+};
+
+// ****************************************************************
- ACE_Lock* lock_;
- // The locking strategy
+class TAO_EC_Reconnect_Supplier : public TAO_EC_Worker<TAO_EC_ProxyPushConsumer>
+{
+ // = TITLE
+ // TAO_EC_Reconnect_Supplier
+ //
+ // = DESCRIPTION
+ // Worker class to reconnect the ProxyPushConsumer objects with all
+ // the ProxyPushConsumer objects in the collection.
+ //
+public:
+ TAO_EC_Reconnect_Supplier (TAO_EC_ProxyPushSupplier *supplier);
+ // Constructor
+
+ void work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ProxyPushSupplier *supplier_;
+};
+
+// ****************************************************************
+
+class TAO_EC_Disconnect_Supplier : public TAO_EC_Worker<TAO_EC_ProxyPushConsumer>
+{
+ // = TITLE
+ // TAO_EC_Disconnect_Supplier
+ //
+ // = DESCRIPTION
+ // Worker class to disconnect the ProxyPushConsumer objects with all
+ // the ProxyPushConsumer objects in the collection.
+ //
+public:
+ TAO_EC_Disconnect_Supplier (TAO_EC_ProxyPushSupplier *supplier);
+ // Constructor
+
+ void work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ TAO_EC_ProxyPushSupplier *supplier_;
+};
+
+// ****************************************************************
+
+class TAO_EC_Shutdown_Consumer : public TAO_EC_Worker<TAO_EC_ProxyPushConsumer>
+{
+public:
+ TAO_EC_Shutdown_Consumer (void);
- ConsumerSet all_consumers_;
- // The set of consumers...
+ void work (TAO_EC_ProxyPushConsumer *consumer,
+ CORBA::Environment &ACE_TRY_ENV);
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i
index 191470f85d9..5377f943532 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierAdmin.i
@@ -1,20 +1,43 @@
// $Id$
-ACE_INLINE TAO_EC_SupplierAdmin::ConsumerSetIterator
-TAO_EC_SupplierAdmin::begin (void)
+ACE_INLINE void
+TAO_EC_SupplierAdmin::
+ for_each (TAO_EC_Worker<TAO_EC_ProxyPushConsumer> *worker,
+ CORBA::Environment &ACE_TRY_ENV)
{
- return this->all_consumers_.begin ();
+ this->collection_->for_each (worker, ACE_TRY_ENV);
}
-ACE_INLINE TAO_EC_SupplierAdmin::ConsumerSetIterator
-TAO_EC_SupplierAdmin::end (void)
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Connect_Supplier::
+ TAO_EC_Connect_Supplier (TAO_EC_ProxyPushSupplier *supplier)
+ : supplier_ (supplier)
{
- return this->all_consumers_.end ();
}
-ACE_INLINE TAO_EC_SupplierAdmin::Busy_Lock&
-TAO_EC_SupplierAdmin::busy_lock (void)
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Reconnect_Supplier::
+ TAO_EC_Reconnect_Supplier (TAO_EC_ProxyPushSupplier *supplier)
+ : supplier_ (supplier)
{
- return *this->lock_;
}
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Disconnect_Supplier::
+ TAO_EC_Disconnect_Supplier (TAO_EC_ProxyPushSupplier *supplier)
+ : supplier_ (supplier)
+{
+}
+
+// ****************************************************************
+
+ACE_INLINE
+TAO_EC_Shutdown_Consumer::TAO_EC_Shutdown_Consumer (void)
+{
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp
index 37f0ffc0098..53c3e2ddd6e 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.cpp
@@ -28,6 +28,12 @@ TAO_EC_SupplierControl::shutdown (void)
return 0;
}
+void
+TAO_EC_SupplierControl::supplier_not_exist (TAO_EC_ProxyPushConsumer *,
+ CORBA::Environment &)
+{
+}
+
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.h b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.h
index 8a3353041e3..d7a358e6200 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_SupplierControl.h
@@ -58,6 +58,12 @@ public:
virtual int shutdown (void);
// Activate any internal threads or timers used to poll the state of
// the suppliers
+
+ virtual void supplier_not_exist (TAO_EC_ProxyPushConsumer *proxy,
+ CORBA::Environment &);
+ // Invoked by helper classes when they detect that a supplier does
+ // not exists (i.e. _non_existent() returns true and/or the
+ // CORBA::OBJECT_NOT_EXIST exception has been raised).
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp
index 22c4bc8409b..01d4c7ae1be 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.cpp
@@ -1,6 +1,8 @@
// $Id$
#include "EC_Supplier_Filter.h"
+#include "EC_ProxySupplier.h"
+#include "EC_QOS_Info.h"
#if ! defined (__ACE_INLINE__)
#include "EC_Supplier_Filter.i"
@@ -11,3 +13,14 @@ ACE_RCSID(Event, EC_Supplier_Filter, "$Id$")
TAO_EC_Supplier_Filter::~TAO_EC_Supplier_Filter (void)
{
}
+
+// ****************************************************************
+
+void
+TAO_EC_Filter_Worker::work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ TAO_EC_QOS_Info qos_info = this->event_info_;
+
+ supplier->filter (this->event_, qos_info, ACE_TRY_ENV);
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h b/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h
index abcd4f4385e..11a8b91dac8 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.h
@@ -30,6 +30,7 @@
#define TAO_EC_SUPPLIER_FILTER_H
#include "orbsvcs/RtecEventCommC.h"
+#include "EC_Worker.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -38,6 +39,7 @@
class TAO_EC_ProxyPushSupplier;
class TAO_EC_ProxyPushConsumer;
class TAO_EC_Event_Channel;
+class TAO_EC_QOS_Info;
class TAO_ORBSVCS_Export TAO_EC_Supplier_Filter
{
@@ -96,7 +98,7 @@ public:
// information can simply ignore the message.
virtual void connected (TAO_EC_ProxyPushSupplier *supplier,
- CORBA::Environment &env) = 0;
+ CORBA::Environment &env) = 0;
virtual void reconnected (TAO_EC_ProxyPushSupplier *supplier,
CORBA::Environment &env) = 0;
virtual void disconnected (TAO_EC_ProxyPushSupplier *supplier,
@@ -118,6 +120,25 @@ public:
// provided by the user.
};
+// ****************************************************************
+
+class TAO_EC_Filter_Worker : public TAO_EC_Worker<TAO_EC_ProxyPushSupplier>
+{
+public:
+ TAO_EC_Filter_Worker (RtecEventComm::EventSet &event,
+ const TAO_EC_QOS_Info &event_info);
+
+ virtual void work (TAO_EC_ProxyPushSupplier *supplier,
+ CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ RtecEventComm::EventSet &event_;
+ // The event we push on each case, use a reference to avoid copies.
+
+ const TAO_EC_QOS_Info &event_info_;
+ // The QoS info propagated on each event.
+};
+
#if defined (__ACE_INLINE__)
#include "EC_Supplier_Filter.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i b/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i
index cfa1da318d3..4e4eae7779b 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Supplier_Filter.i
@@ -1 +1,9 @@
// $Id$
+
+ACE_INLINE
+TAO_EC_Filter_Worker::TAO_EC_Filter_Worker (RtecEventComm::EventSet &event,
+ const TAO_EC_QOS_Info &event_info)
+ : event_ (event),
+ event_info_ (event_info)
+{
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp
index a3a78c4dd26..e5ebc52546e 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Trivial_Supplier_Filter.cpp
@@ -67,25 +67,11 @@ TAO_EC_Trivial_Supplier_Filter::push (const RtecEventComm::EventSet& event,
ACE_const_cast(RtecEventComm::Event*, &e);
RtecEventComm::EventSet single_event (1, 1, buffer, 0);
- ACE_GUARD_THROW_EX (
- TAO_EC_ConsumerAdmin::Busy_Lock,
- ace_mon, consumer_admin->busy_lock (),
- RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR ());
- ACE_CHECK;
-
- TAO_EC_ConsumerAdmin::SupplierSetIterator end =
- consumer_admin->end ();
+ TAO_EC_QOS_Info qos_info;
- for (TAO_EC_ConsumerAdmin::SupplierSetIterator i =
- consumer_admin->begin ();
- i != end;
- ++i)
- {
- TAO_EC_QOS_Info qos_info;
-
- (*i)->filter (single_event, qos_info, ACE_TRY_ENV);
- ACE_CHECK;
- }
+ TAO_EC_Filter_Worker worker (single_event, qos_info);
+ consumer_admin->for_each (&worker, ACE_TRY_ENV);
+ ACE_CHECK;
}
}
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Worker.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Worker.cpp
new file mode 100644
index 00000000000..a2d34aae38d
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Worker.cpp
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef TAO_EC_WORKER_CPP
+#define TAO_EC_WORKER_CPP
+
+#include "EC_Worker.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "EC_Worker.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Event, EC_Worker, "$Id$")
+
+template<class TARGET>
+TAO_EC_Worker<TARGET>::~TAO_EC_Worker (void)
+{
+}
+
+#endif /* TAO_EC_WORKER_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Worker.h b/TAO/orbsvcs/orbsvcs/Event/EC_Worker.h
new file mode 100644
index 00000000000..a763b6de99c
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Worker.h
@@ -0,0 +1,51 @@
+/* -*- C++ -*- */
+// $Id$
+//
+// ============================================================================
+//
+// = LIBRARY
+// ORBSVCS Real-time Event Channel
+//
+// = FILENAME
+// EC_Worker
+//
+// = AUTHOR
+// Carlos O'Ryan (coryan@cs.wustl.edu)
+//
+// = CREDITS
+// http://www.cs.wustl.edu/~coryan/EC/index.html
+//
+// ============================================================================
+
+#ifndef TAO_EC_WORKER_H
+#define TAO_EC_WORKER_H
+
+#include "tao/corba.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+template<class TARGET>
+class TAO_EC_Worker
+{
+public:
+ virtual ~TAO_EC_Worker (void);
+
+ virtual void work (TARGET *target,
+ CORBA::Environment &ACE_TRY_ENV) = 0;
+};
+
+#if defined (__ACE_INLINE__)
+#include "EC_Worker.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "EC_Worker.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("EC_Worker.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* TAO_EC_WORKER_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Worker.i b/TAO/orbsvcs/orbsvcs/Event/EC_Worker.i
new file mode 100644
index 00000000000..cfa1da318d3
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Worker.i
@@ -0,0 +1 @@
+// $Id$
diff --git a/TAO/orbsvcs/orbsvcs/Makefile b/TAO/orbsvcs/orbsvcs/Makefile
index 49ad09e46be..6077e74161d 100644
--- a/TAO/orbsvcs/orbsvcs/Makefile
+++ b/TAO/orbsvcs/orbsvcs/Makefile
@@ -101,7 +101,6 @@ ifneq (,$(findstring Event2,$(TAO_ORBSVCS)))
Event/EC_Basic_Factory \
Event/EC_Default_Factory \
Event/EC_ObserverStrategy \
- Event/EC_ProxyPushSupplier_Set \
Event/EC_Per_Supplier_Filter \
Event/EC_Timeout_Filter \
Event/EC_Timeout_Generator \
@@ -4594,6 +4593,282 @@ ORBSVCS_COMPONENTS:
CosPropertyServiceS_T.i CosPropertyServiceS_T.cpp \
CosPropertyServiceS.i
+.obj/CosConcurrencyControlS.o .obj/CosConcurrencyControlS.so .shobj/CosConcurrencyControlS.o .shobj/CosConcurrencyControlS.so: CosConcurrencyControlS.cpp \
+ CosConcurrencyControlS.h CosConcurrencyControlC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/ImplRepoC.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/ImplRepoC.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ orbsvcs_export.h CosConcurrencyControlC.i CosConcurrencyControlS_T.h \
+ CosConcurrencyControlS_T.i CosConcurrencyControlS_T.cpp \
+ CosConcurrencyControlS.i
+
.obj/CosNamingS.o .obj/CosNamingS.so .shobj/CosNamingS.o .shobj/CosNamingS.so: CosNamingS.cpp CosNamingS.h CosNamingC.h \
$(TAO_ROOT)/tao/corba.h \
$(ACE_ROOT)/ace/OS.h \
@@ -10377,6 +10652,280 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/tao/BoundsC.i \
orbsvcs_export.h CosPropertyServiceC.i
+.obj/CosConcurrencyControlC.o .obj/CosConcurrencyControlC.so .shobj/CosConcurrencyControlC.o .shobj/CosConcurrencyControlC.so: CosConcurrencyControlC.cpp \
+ CosConcurrencyControlC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/ImplRepoC.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/ImplRepoC.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ orbsvcs_export.h CosConcurrencyControlC.i
+
.obj/CosNamingC.o .obj/CosNamingC.so .shobj/CosNamingC.o .shobj/CosNamingC.so: CosNamingC.cpp CosNamingC.h \
$(TAO_ROOT)/tao/corba.h \
$(ACE_ROOT)/ace/OS.h \
@@ -12339,15 +12888,14 @@ ORBSVCS_COMPONENTS:
Event/EC_Event_Channel.i Event/EC_Default_Factory.h \
Event/EC_Default_Factory.i Event/EC_Dispatching.h \
Event/EC_Dispatching.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
- Event/EC_SupplierAdmin.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
Event/EC_SupplierAdmin.i Event/EC_Timeout_Generator.h \
- Event/EC_Timeout_Filter.h Event/EC_Filter.h Event/EC_QOS_Info.h \
- Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
+ Event/EC_Timeout_Filter.h Event/EC_Filter.h Event/EC_Filter.i \
+ Event/EC_QOS_Info.h Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
Event/EC_Timeout_Generator.i Event/EC_ObserverStrategy.h \
$(ACE_ROOT)/ace/RB_Tree.h \
$(ACE_ROOT)/ace/RB_Tree.i \
@@ -12358,7 +12906,17 @@ ORBSVCS_COMPONENTS:
.obj/EC_ConsumerAdmin.o .obj/EC_ConsumerAdmin.so .shobj/EC_ConsumerAdmin.o .shobj/EC_ConsumerAdmin.so: Event/EC_ConsumerAdmin.cpp \
Event/EC_ConsumerAdmin.h \
- $(ACE_ROOT)/ace/Containers.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
+ $(TAO_ROOT)/tao/TimeBaseS.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
$(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/inc_user_config.h \
$(ACE_ROOT)/ace/Min_Max.h \
@@ -12371,14 +12929,9 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/Log_Record.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/ACE.h \
$(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
$(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/Malloc.i \
$(ACE_ROOT)/ace/Malloc_T.h \
$(ACE_ROOT)/ace/Synch.h \
@@ -12402,20 +12955,15 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/Malloc_T.cpp \
$(ACE_ROOT)/ace/Memory_Pool.h \
$(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
$(ACE_ROOT)/ace/Signal.i \
$(ACE_ROOT)/ace/Mem_Map.h \
$(ACE_ROOT)/ace/Mem_Map.i \
$(ACE_ROOT)/ace/Memory_Pool.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/Message_Block.h \
$(ACE_ROOT)/ace/Message_Block.i \
$(ACE_ROOT)/ace/Message_Block_T.h \
$(ACE_ROOT)/ace/Message_Block_T.i \
@@ -12669,16 +13217,17 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_Defaults.h Event/EC_ConsumerAdmin.i \
Event/EC_ProxySupplier.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
Event/EC_ProxySupplier.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i Event/EC_Event_Channel.h Event/EC_Factory.h \
- Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i \
- Event/EC_Command.h Event/EC_Command.i Event/EC_Command.cpp
+ Event/EC_Factory.i Event/EC_Event_Channel.i
.obj/EC_SupplierAdmin.o .obj/EC_SupplierAdmin.so .shobj/EC_SupplierAdmin.o .shobj/EC_SupplierAdmin.so: Event/EC_SupplierAdmin.cpp \
Event/EC_SupplierAdmin.h \
@@ -12993,12 +13542,17 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_Defaults.h Event/EC_SupplierAdmin.i \
+ Event/EC_ProxyConsumer.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_SupplierAdmin.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i Event/EC_ProxySupplier.h \
Event/EC_ProxySupplier.i Event/EC_Event_Channel.h Event/EC_Factory.h \
- Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i
+ Event/EC_Factory.i Event/EC_Event_Channel.i
.obj/EC_ProxyConsumer.o .obj/EC_ProxyConsumer.so .shobj/EC_ProxyConsumer.o .shobj/EC_ProxyConsumer.so: Event/EC_ProxyConsumer.cpp \
Event/EC_ProxyConsumer.h \
@@ -13317,7 +13871,8 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
Event/EC_ProxyConsumer.i Event/EC_Event_Channel.h Event/EC_Factory.h \
Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i \
- Event/EC_Supplier_Filter.h Event/EC_Supplier_Filter.i \
+ Event/EC_Supplier_Filter.h Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_Supplier_Filter.i \
Event/EC_Supplier_Filter_Builder.h Event/EC_Supplier_Filter_Builder.i
.obj/EC_ProxySupplier.o .obj/EC_ProxySupplier.so .shobj/EC_ProxySupplier.o .shobj/EC_ProxySupplier.so: Event/EC_ProxySupplier.cpp \
@@ -13921,7 +14476,45 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- Event/EC_Supplier_Filter.i
+ Event/EC_Worker.h Event/EC_Worker.i Event/EC_Worker.cpp \
+ Event/EC_Supplier_Filter.i Event/EC_ProxySupplier.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
+ $(TAO_ROOT)/tao/TimeBaseS.h \
+ $(TAO_ROOT)/tao/TimeBaseS_T.h \
+ $(TAO_ROOT)/tao/TimeBaseS_T.i \
+ $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
+ $(TAO_ROOT)/tao/TimeBaseS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
+ Event/EC_ProxySupplier.i Event/EC_QOS_Info.h Event/EC_QOS_Info.i
.obj/EC_Supplier_Filter_Builder.o .obj/EC_Supplier_Filter_Builder.so .shobj/EC_Supplier_Filter_Builder.o .shobj/EC_Supplier_Filter_Builder.so: Event/EC_Supplier_Filter_Builder.cpp \
Event/EC_Supplier_Filter_Builder.h \
@@ -14487,6 +15080,7 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
+ Event/EC_Worker.h Event/EC_Worker.i Event/EC_Worker.cpp \
Event/EC_Supplier_Filter.i Event/EC_Supplier_Filter_Builder.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
@@ -14526,9 +15120,10 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
Event/EC_Event_Channel.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_ConsumerAdmin.i \
Event/EC_ProxySupplier.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
@@ -16254,7 +16849,8 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
Event/EC_Filter_Builder.i Event/EC_Trivial_Supplier_Filter.h \
- Event/EC_Supplier_Filter.h Event/EC_Supplier_Filter.i \
+ Event/EC_Supplier_Filter.h Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_Supplier_Filter.i \
Event/EC_Supplier_Filter_Builder.h Event/EC_Supplier_Filter_Builder.i \
Event/EC_Trivial_Supplier_Filter.i Event/EC_ConsumerAdmin.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
@@ -16287,13 +16883,14 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
- Event/EC_SupplierAdmin.h \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_Defaults.h Event/EC_ConsumerAdmin.i \
+ Event/EC_SupplierAdmin.h Event/EC_SupplierAdmin.i \
+ Event/EC_ProxyConsumer.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_SupplierAdmin.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i Event/EC_ProxySupplier.h \
Event/EC_ProxySupplier.i Event/EC_ObserverStrategy.h \
$(ACE_ROOT)/ace/RB_Tree.h \
@@ -16301,10 +16898,8 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/RB_Tree.cpp \
Event/EC_ObserverStrategy.i Event/EC_Null_Scheduling.h \
Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
- Event/EC_Null_Scheduling.i Event/EC_ProxyPushSupplier_Set_T.h \
- Event/EC_ProxyPushSupplier_Set_T.i \
- Event/EC_ProxyPushSupplier_Set_T.cpp Event/EC_Command.h \
- Event/EC_Command.i Event/EC_Command.cpp \
+ Event/EC_Null_Scheduling.i Event/EC_Concrete_Proxy_Set.h \
+ Event/EC_Concrete_Proxy_Set.i Event/EC_Concrete_Proxy_Set.cpp \
Event/EC_Reactive_Timeout_Generator.h Event/EC_Timeout_Generator.h \
Event/EC_Timeout_Filter.h Event/EC_Filter.h Event/EC_QOS_Info.h \
Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
@@ -18018,6 +18613,7 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
Event/EC_Filter_Builder.i Event/EC_Basic_Filter_Builder.i \
Event/EC_Trivial_Supplier_Filter.h Event/EC_Supplier_Filter.h \
+ Event/EC_Worker.h Event/EC_Worker.i Event/EC_Worker.cpp \
Event/EC_Supplier_Filter.i Event/EC_Supplier_Filter_Builder.h \
Event/EC_Supplier_Filter_Builder.i Event/EC_Trivial_Supplier_Filter.i \
Event/EC_ConsumerAdmin.h \
@@ -18051,13 +18647,14 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
- Event/EC_SupplierAdmin.h \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_Defaults.h Event/EC_ConsumerAdmin.i \
+ Event/EC_SupplierAdmin.h Event/EC_SupplierAdmin.i \
+ Event/EC_ProxyConsumer.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_SupplierAdmin.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i Event/EC_ProxySupplier.h \
Event/EC_ProxySupplier.i Event/EC_ObserverStrategy.h \
$(ACE_ROOT)/ace/RB_Tree.h \
@@ -18065,10 +18662,8 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/RB_Tree.cpp \
Event/EC_ObserverStrategy.i Event/EC_Null_Scheduling.h \
Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
- Event/EC_Null_Scheduling.i Event/EC_ProxyPushSupplier_Set_T.h \
- Event/EC_ProxyPushSupplier_Set_T.i \
- Event/EC_ProxyPushSupplier_Set_T.cpp Event/EC_Command.h \
- Event/EC_Command.i Event/EC_Command.cpp \
+ Event/EC_Null_Scheduling.i Event/EC_Concrete_Proxy_Set.h \
+ Event/EC_Concrete_Proxy_Set.i Event/EC_Concrete_Proxy_Set.cpp \
Event/EC_Reactive_Timeout_Generator.h Event/EC_Timeout_Generator.h \
Event/EC_Timeout_Filter.h Event/EC_Filter.h Event/EC_QOS_Info.h \
Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
@@ -18412,13 +19007,14 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
- Event/EC_SupplierAdmin.h \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
+ Event/EC_SupplierAdmin.i Event/EC_ProxyConsumer.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_SupplierAdmin.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i Event/EC_ProxySupplier.h \
Event/EC_ProxySupplier.i Event/EC_Trivial_Supplier_Filter.h \
Event/EC_Supplier_Filter.h Event/EC_Supplier_Filter.i \
@@ -18431,10 +19027,8 @@ ORBSVCS_COMPONENTS:
Event/EC_ObserverStrategy.i Event/EC_Null_Scheduling.h \
Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
Event/EC_Null_Scheduling.i Event/EC_Priority_Scheduling.h \
- Event/EC_Priority_Scheduling.i Event/EC_ProxyPushSupplier_Set_T.h \
- Event/EC_ProxyPushSupplier_Set_T.i \
- Event/EC_ProxyPushSupplier_Set_T.cpp Event/EC_Command.h \
- Event/EC_Command.i Event/EC_Command.cpp \
+ Event/EC_Priority_Scheduling.i Event/EC_Concrete_Proxy_Set.h \
+ Event/EC_Concrete_Proxy_Set.i Event/EC_Concrete_Proxy_Set.cpp \
Event/EC_Reactive_Timeout_Generator.h Event/EC_Timeout_Generator.h \
Event/EC_Timeout_Filter.h Event/EC_Filter.h Event/EC_QOS_Info.h \
Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
@@ -18449,8 +19043,8 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/Sched_Params.i
.obj/EC_ObserverStrategy.o .obj/EC_ObserverStrategy.so .shobj/EC_ObserverStrategy.o .shobj/EC_ObserverStrategy.so: Event/EC_ObserverStrategy.cpp \
- Event/EC_ObserverStrategy.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
+ Event/EC_ObserverStrategy.h Event/EC_Worker.h \
+ $(TAO_ROOT)/tao/corba.h \
$(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/inc_user_config.h \
$(ACE_ROOT)/ace/Min_Max.h \
@@ -18463,349 +19057,13 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/Log_Record.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
$(TAO_ROOT)/tao/corbafwd.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/IOR_LookupTable.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/varout.h \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/varout.i \
- $(TAO_ROOT)/tao/varout.cpp \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/IORManipulation.h \
- $(TAO_ROOT)/tao/IORS.h \
- $(TAO_ROOT)/tao/IORC.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/IORC.i \
- $(TAO_ROOT)/tao/Servant_Base.h \
- $(TAO_ROOT)/tao/POAC.h \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/POAC.i \
- $(TAO_ROOT)/tao/Servant_Base.i \
- $(TAO_ROOT)/tao/IORS.i \
- $(TAO_ROOT)/tao/Interceptor.h \
- $(TAO_ROOT)/tao/InterceptorS.h \
- $(TAO_ROOT)/tao/InterceptorC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/InterceptorC.i \
- $(TAO_ROOT)/tao/Interceptor.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/Request.h \
- $(TAO_ROOT)/tao/Context.h \
- $(TAO_ROOT)/tao/Context.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/Request.i \
- $(TAO_ROOT)/tao/Server_Request.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/GIOP.h \
- $(TAO_ROOT)/tao/GIOP.i \
- $(TAO_ROOT)/tao/Server_Request.i \
- $(TAO_ROOT)/tao/Marshal.h \
- $(TAO_ROOT)/tao/Marshal.i \
- $(TAO_ROOT)/tao/singletons.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(TAO_ROOT)/tao/POA.h \
- $(TAO_ROOT)/tao/Object_Adapter.h \
- $(TAO_ROOT)/tao/Key_Adapters.h \
- $(ACE_ROOT)/ace/Map.h \
- $(ACE_ROOT)/ace/Map.i \
- $(ACE_ROOT)/ace/Map_T.h \
- $(ACE_ROOT)/ace/Pair.h \
- $(ACE_ROOT)/ace/Pair.i \
- $(ACE_ROOT)/ace/Pair_T.h \
- $(ACE_ROOT)/ace/Pair_T.i \
- $(ACE_ROOT)/ace/Pair_T.cpp \
- $(ACE_ROOT)/ace/Active_Map_Manager.h \
- $(ACE_ROOT)/ace/Active_Map_Manager.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Map_T.i \
- $(ACE_ROOT)/ace/Map_T.cpp \
- $(TAO_ROOT)/tao/Key_Adapters.i \
- $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
- $(TAO_ROOT)/tao/poa_macros.h \
- $(TAO_ROOT)/tao/POAS.h \
- $(TAO_ROOT)/tao/POA_CORBA.h \
- $(TAO_ROOT)/tao/DynAnyC.h \
- $(TAO_ROOT)/tao/DynAnyC.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/POAS.i \
- $(TAO_ROOT)/tao/Active_Object_Map.h \
- $(TAO_ROOT)/tao/Active_Object_Map.i \
- $(TAO_ROOT)/tao/Object_Adapter.i \
- $(TAO_ROOT)/tao/POAManager.h \
- $(TAO_ROOT)/tao/POAManager.i \
- $(TAO_ROOT)/tao/ImplRepoC.h \
- $(TAO_ROOT)/tao/Operation_Table.h \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp \
- $(TAO_ROOT)/tao/Invocation.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.i \
- $(TAO_ROOT)/tao/TAOC.h \
- $(TAO_ROOT)/tao/TAOC.i \
- $(TAO_ROOT)/tao/Invocation.i \
- $(TAO_ROOT)/tao/ImplRepoC.i \
- $(TAO_ROOT)/tao/POA.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
- $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
- $(TAO_ROOT)/tao/DynAny_i.h \
- $(TAO_ROOT)/tao/Union.h \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/InterfaceC.h \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
- Event/EC_ObserverStrategy.i Event/EC_Event_Channel.h \
- Event/EC_Factory.h Event/EC_Factory.i Event/EC_Defaults.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ProxySupplier.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/EC_ProxyConsumer.h \
- Event/EC_ProxyConsumer.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
- Event/EC_SupplierAdmin.h Event/EC_SupplierAdmin.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp
-
-.obj/EC_ProxyPushSupplier_Set.o .obj/EC_ProxyPushSupplier_Set.so .shobj/EC_ProxyPushSupplier_Set.o .shobj/EC_ProxyPushSupplier_Set.so: Event/EC_ProxyPushSupplier_Set.cpp \
- Event/EC_ProxyPushSupplier_Set.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
$(ACE_ROOT)/ace/ACE.h \
$(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
$(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/Malloc.i \
$(ACE_ROOT)/ace/Malloc_T.h \
$(ACE_ROOT)/ace/Synch.h \
@@ -18829,14 +19087,15 @@ ORBSVCS_COMPONENTS:
$(ACE_ROOT)/ace/Malloc_T.cpp \
$(ACE_ROOT)/ace/Memory_Pool.h \
$(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
$(ACE_ROOT)/ace/Signal.i \
$(ACE_ROOT)/ace/Mem_Map.h \
$(ACE_ROOT)/ace/Mem_Map.i \
$(ACE_ROOT)/ace/Memory_Pool.i \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/Message_Block.h \
$(ACE_ROOT)/ace/Message_Block.i \
$(ACE_ROOT)/ace/Message_Block_T.h \
$(ACE_ROOT)/ace/Message_Block_T.i \
@@ -19055,9 +19314,23 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/tao/InterfaceC.h \
$(TAO_ROOT)/tao/BoundsC.h \
$(TAO_ROOT)/tao/BoundsC.i \
- Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_Defaults.h \
- Event/EC_ProxySupplier.h \
+ Event/EC_Worker.i Event/EC_Worker.cpp \
+ $(ACE_ROOT)/ace/RB_Tree.h \
+ $(ACE_ROOT)/ace/RB_Tree.i \
+ $(ACE_ROOT)/ace/RB_Tree.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
+ Event/EC_ObserverStrategy.i Event/EC_Event_Channel.h \
+ Event/EC_Factory.h Event/EC_Factory.i Event/EC_Defaults.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
@@ -19066,42 +19339,44 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/tao/TimeBaseS_T.i \
$(TAO_ROOT)/tao/TimeBaseS_T.cpp \
$(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
+ Event/EC_Event_Channel.i Event/EC_ProxySupplier.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/EC_Command.h Event/EC_Command.i \
- Event/EC_Command.cpp
+ Event/EC_ProxySupplier.i Event/EC_ProxyConsumer.h \
+ Event/EC_ProxyConsumer.i Event/EC_ConsumerAdmin.h \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_ConsumerAdmin.i \
+ Event/EC_SupplierAdmin.h Event/EC_SupplierAdmin.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp
.obj/EC_Per_Supplier_Filter.o .obj/EC_Per_Supplier_Filter.so .shobj/EC_Per_Supplier_Filter.o .shobj/EC_Per_Supplier_Filter.so: Event/EC_Per_Supplier_Filter.cpp \
Event/EC_Per_Supplier_Filter.h Event/EC_Supplier_Filter.h \
@@ -19382,6 +19657,7 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
+ Event/EC_Worker.h Event/EC_Worker.i Event/EC_Worker.cpp \
Event/EC_Supplier_Filter.i Event/EC_Supplier_Filter_Builder.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
@@ -19420,15 +19696,16 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ProxyPushSupplier_Set.h \
- Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ProxySupplier.h \
+ Event/EC_Event_Channel.i Event/EC_ProxySupplier.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
Event/EC_ProxySupplier.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i Event/EC_Scheduling_Strategy.h \
- Event/EC_Scheduling_Strategy.i Event/EC_QOS_Info.h \
- Event/EC_QOS_Info.i \
+ Event/EC_Scheduling_Strategy.i Event/EC_Proxy_Collection.h \
+ Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
+ Event/EC_Proxy_Collection.i Event/EC_Proxy_Collection.cpp \
+ Event/EC_Command.h Event/EC_Command.i Event/EC_Command.cpp \
+ Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i
@@ -23615,7 +23892,8 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/tao/InterfaceC.h \
$(TAO_ROOT)/tao/BoundsC.h \
$(TAO_ROOT)/tao/BoundsC.i \
- Event/EC_ConsumerControl.i Event/EC_Reactive_ConsumerControl.i \
+ Event/EC_ConsumerControl.i Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_Reactive_ConsumerControl.i \
Event/EC_Event_Channel.h Event/EC_Factory.h Event/EC_Factory.i \
Event/EC_Defaults.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
@@ -23659,9 +23937,10 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
Event/EC_Event_Channel.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxyPushSupplier_Set.h Event/EC_Busy_Lock.h \
- Event/EC_Busy_Lock.i Event/EC_Busy_Lock.cpp \
- Event/EC_ProxyPushSupplier_Set.i Event/EC_ConsumerAdmin.i \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_ConsumerAdmin.i \
Event/EC_ProxySupplier.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
@@ -23940,7 +24219,8 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/tao/InterfaceC.h \
$(TAO_ROOT)/tao/BoundsC.h \
$(TAO_ROOT)/tao/BoundsC.i \
- Event/EC_SupplierControl.i Event/EC_Reactive_SupplierControl.i \
+ Event/EC_SupplierControl.i Event/EC_Worker.h Event/EC_Worker.i \
+ Event/EC_Worker.cpp Event/EC_Reactive_SupplierControl.i \
Event/EC_Event_Channel.h Event/EC_Factory.h Event/EC_Factory.i \
Event/EC_Defaults.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
@@ -23984,9 +24264,13 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
Event/EC_Event_Channel.i Event/EC_SupplierAdmin.h \
+ Event/EC_Proxy_Collection.h Event/EC_Busy_Lock.h Event/EC_Busy_Lock.i \
+ Event/EC_Busy_Lock.cpp Event/EC_Proxy_Collection.i \
+ Event/EC_Proxy_Collection.cpp Event/EC_Command.h Event/EC_Command.i \
+ Event/EC_Command.cpp Event/EC_SupplierAdmin.i \
+ Event/EC_ProxyConsumer.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Filter.i \
- Event/EC_SupplierAdmin.i Event/EC_ProxyConsumer.h \
Event/EC_ProxyConsumer.i
.obj/ConsumerAdmin_i.o .obj/ConsumerAdmin_i.so .shobj/ConsumerAdmin_i.o .shobj/ConsumerAdmin_i.so: CosEvent/ConsumerAdmin_i.cpp \
@@ -38882,6 +39166,1128 @@ ORBSVCS_COMPONENTS:
$(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i
+.obj/CC_Lock.o .obj/CC_Lock.so .shobj/CC_Lock.o .shobj/CC_Lock.so: Concurrency/CC_Lock.cpp Concurrency/CC_Lock.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/ImplRepoC.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/ImplRepoC.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i
+
+.obj/CC_LockSet.o .obj/CC_LockSet.so .shobj/CC_LockSet.o .shobj/CC_LockSet.so: Concurrency/CC_LockSet.cpp Concurrency/CC_LockSet.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Token.h \
+ $(ACE_ROOT)/ace/Token.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/ImplRepoC.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/ImplRepoC.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS.i
+
+.obj/CC_LockSetFactory.o .obj/CC_LockSetFactory.so .shobj/CC_LockSetFactory.o .shobj/CC_LockSetFactory.so: Concurrency/CC_LockSetFactory.cpp \
+ Concurrency/CC_LockSetFactory.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/ImplRepoC.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/ImplRepoC.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS.i \
+ Concurrency/CC_LockSet.h \
+ $(ACE_ROOT)/ace/Token.h \
+ $(ACE_ROOT)/ace/Token.i
+
+.obj/Concurrency_Utils.o .obj/Concurrency_Utils.so .shobj/Concurrency_Utils.o .shobj/Concurrency_Utils.so: Concurrency/Concurrency_Utils.cpp \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/inc_user_config.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/varout.i \
+ $(TAO_ROOT)/tao/varout.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/IORS.h \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/POAC.h \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/POAC.i \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/IORS.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorS.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/GIOP.h \
+ $(TAO_ROOT)/tao/GIOP.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/Marshal.h \
+ $(TAO_ROOT)/tao/Marshal.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map.i \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair.i \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/POAS.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/POAS.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/ImplRepoC.h \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/ImplRepoC.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/Union.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \
+ Concurrency/Concurrency_Utils.h Concurrency/CC_LockSetFactory.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlS.i
+
.obj/Time_Utilities.o .obj/Time_Utilities.so .shobj/Time_Utilities.o .shobj/Time_Utilities.so: Time_Utilities.cpp \
$(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
$(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \