summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h38
1 files changed, 37 insertions, 1 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
index cbd2d15ef7d..b4ae4e44869 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Dispatching.h
@@ -75,7 +75,7 @@ public:
// ****************************************************************
-class TAO_ORBSVCS_Export TAO_EC_Reactive_Dispatching : public TAO_EC_Dispatching
+class TAO_EC_Reactive_Dispatching : public TAO_EC_Dispatching
{
// = TITLE
// Dispatch using the caller thread.
@@ -102,6 +102,42 @@ public:
CORBA::Environment& env);
};
+// ****************************************************************
+
+#if 0
+#include "orbsvcs/RtecSchedulerC.h"
+// @@ Move to a separate file, otherwise we have to include the file
+// above everywhere
+class TAO_EC_Priority_Dispatching
+{
+ // = TITLE
+ // Priority based dispatching.
+ //
+ // = DESCRIPTION
+ // The events are processed using a different queue for each
+ // priority; a thread process each queue, each thread runs at a
+ // different OS priority.
+ //
+public:
+ TAO_EC_Priority_Dispatching (RtecScheduler::Scheduler_ptr
+ scheduler);
+ // The scheduler is used to find the range of priorities and similar
+ // info.
+
+ // = The EC_Dispatching methods.
+ virtual void activate (void);
+ virtual void shutdown (void);
+ virtual void push (TAO_EC_ProxyPushSupplier* proxy,
+ const RtecEventComm::EventSet& event,
+ const TAO_EC_QOS_Info& qos_info,
+ CORBA::Environment& env);
+
+private:
+ ACE_Thread_Manager thread_manager_;
+ // Use our own thread manager.
+};
+#endif /* 0 */
+
// @@ TODO
// We could implement other dispatching strategies, such as:
// - A single queue with a thread pool to process each event (how does