summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event_Service_Constants.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event_Service_Constants.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h b/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h
new file mode 100644
index 00000000000..d65f865139a
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h
@@ -0,0 +1,93 @@
+//
+// $Id$
+//
+// = DESCRIPTION
+// Keep constants required by both Event Service implementation and
+// the Scheduling Service implementation.
+//
+
+#if !defined (ACE_ES_CONSTANTS_H)
+#define ACE_ES_CONSTANTS_H
+
+#include "ace/Message_Block.h"
+#include "ace/Synch.h"
+
+const int ACE_ES_MAX_SUBSCRIPTIONS = 32;
+// This is the number of events a consumer can subscribe to.
+
+//const int ACE_ES_MAX_SUPPLIERS = 100;
+// Max number of suppliers that a channel can handle.
+
+const int ACE_ES_MAX_CONSUMERS_PER_SUPPLIER = 100;
+// Max number of consumers that one supplier can have subscribed to
+// one type of event (including source-only). This restriction is
+// very lightweight since subscription lists are dynamic. This
+// constant is only used for ACE_ES_Simple_Set in Event_Channel.* for
+// disconnecting consumers. Since these objects are allocated off the
+// stack, we can increase this number without requiring more heap
+// memory.
+
+// = Predefined event types. All application defined types should be
+// relative to ACE_ES_EVENT_UNDEFINED.
+const u_long ACE_ES_EVENT_ANY = 0;
+const u_long ACE_ES_EVENT_SHUTDOWN = 1;
+const u_long ACE_ES_EVENT_ACT = 2;
+const u_long ACE_ES_EVENT_NOTIFICATION = 3;
+const u_long ACE_ES_EVENT_TIMEOUT = 4;
+const u_long ACE_ES_EVENT_INTERVAL_TIMEOUT = 5;
+const u_long ACE_ES_EVENT_DEADLINE_TIMEOUT = 6;
+const u_long ACE_ES_GLOBAL_DESIGNATOR = 7;
+const u_long ACE_ES_CONJUNCTION_DESIGNATOR = 8;
+const u_long ACE_ES_DISJUNCTION_DESIGNATOR = 9;
+const u_long ACE_ES_EVENT_UNDEFINED = 16;
+
+// The max number of priorities provided by the target platform.
+// TODO: This should be defined in ACE (somehow) and only mapped here
+// to some variables (and even that is doubtful).
+const long ACE_Scheduler_MAX_PRIORITIES = 5;
+
+const u_long ACE_Scheduler_Rates[ACE_Scheduler_MAX_PRIORITIES] = {
+ 250000, 500000, 1000000, 2000000, 10000000 };
+
+// The minimum preemption priority.
+const long ACE_Scheduler_MIN_PREEMPTION_PRIORITY =
+ ACE_Scheduler_MAX_PRIORITIES - 1;
+// Max preemption priority.
+const long ACE_Scheduler_MAX_PREEMPTION_PRIORITY = 0;
+
+// This is the maximum sub priority.
+const u_long ACE_Scheduler_MAX_SUB_PRIORITY =
+ ACE_Message_Block::MB_USER - 1;
+
+// This is the minimum sub priority.
+const u_long ACE_Scheduler_MIN_SUB_PRIORITY =
+ ACE_Message_Block::MB_NORMAL;
+
+typedef ACE_Thread_Mutex ACE_ES_MUTEX;
+typedef ACE_Guard<ACE_ES_MUTEX> ACE_ES_GUARD;
+
+typedef ACE_RW_Thread_Mutex ACE_ES_RW_LOCK;
+typedef ACE_Write_Guard<ACE_ES_RW_LOCK> ACE_ES_WGUARD;
+typedef ACE_Read_Guard<ACE_ES_RW_LOCK> ACE_ES_RGUARD;
+
+// ************************************************************
+// Channel configuration parameters.
+
+// ACE_ES_DISPATCHING_MODULE determines what Dispatching Module is
+// used by the channel. ACE_ES_Dispatching_Base is a null dispatcher
+// that can be used to build an EFD.
+#define ACE_ES_DISPATCHING_MODULE ACE_ES_Priority_Dispatching
+//#define ACE_ES_DISPATCHING_MODULE ACE_ES_Dispatching_Base
+
+// This is the number of threads spawned for *each* priority queue in
+// the channel's Dispatching Module. This is used by the channel when
+// creating the dispatch module.
+const int THREADS_PER_DISPATCH_QUEUE = 1;
+
+// This is the chunk size of the cached allocator for
+// ACE_ES_Event_Container.
+const int ACE_ES_EVENT_CONTAINER_MEMORY_POOL = 1024;
+const int ACE_ES_EVENT_MEMORY_POOL = 1024;
+const int ACE_ES_DISPATCH_REQUEST_MEMORY_POOL = 1024;
+
+#endif /* ACE_ES_CONSTANTS_H */