summaryrefslogtreecommitdiff
path: root/TAO/tao/default_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/default_server.cpp')
-rw-r--r--TAO/tao/default_server.cpp220
1 files changed, 88 insertions, 132 deletions
diff --git a/TAO/tao/default_server.cpp b/TAO/tao/default_server.cpp
index cfe7d69302b..78117acf68e 100644
--- a/TAO/tao/default_server.cpp
+++ b/TAO/tao/default_server.cpp
@@ -13,6 +13,7 @@ TAO_Default_Server_Strategy_Factory::TAO_Default_Server_Strategy_Factory (void)
: activate_server_connections_ (0),
thread_flags_ (THR_BOUND),
poa_lock_type_ (TAO_THREAD_LOCK),
+ poa_mgr_lock_type_ (TAO_THREAD_LOCK),
event_loop_lock_type_ (TAO_NULL_LOCK),
cached_connector_lock_type_ (TAO_THREAD_LOCK)
{
@@ -55,17 +56,36 @@ TAO_Default_Server_Strategy_Factory::server_connection_thread_count (void)
}
ACE_Lock *
+TAO_Default_Server_Strategy_Factory::create_servant_lock (void)
+{
+ ACE_Lock *the_lock = 0;
+
+#if defined (ACE_HAS_THREADS)
+ if (this->activate_server_connections ())
+ ACE_NEW_RETURN (the_lock,
+ ACE_Lock_Adapter<ACE_Recursive_Thread_Mutex> (),
+ 0);
+ else
+#endif /* ACE_HAS_THREADS */
+ ACE_NEW_RETURN (the_lock,
+ ACE_Lock_Adapter<ACE_Null_Mutex> (),
+ 0);
+
+ return the_lock;
+}
+
+ACE_Lock *
TAO_Default_Server_Strategy_Factory::create_event_loop_lock (void)
{
ACE_Lock *the_lock = 0;
if (this->event_loop_lock_type_ == TAO_NULL_LOCK)
ACE_NEW_RETURN (the_lock,
- ACE_Lock_Adapter<ACE_SYNCH_NULL_MUTEX>,
+ ACE_Lock_Adapter<ACE_SYNCH_NULL_MUTEX> (),
0);
else
ACE_NEW_RETURN (the_lock,
- ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX>,
+ ACE_Lock_Adapter<ACE_SYNCH_RECURSIVE_MUTEX> (),
0);
return the_lock;
@@ -78,11 +98,11 @@ TAO_Default_Server_Strategy_Factory::create_cached_connector_lock (void)
if (this->cached_connector_lock_type_ == TAO_NULL_LOCK)
ACE_NEW_RETURN (the_lock,
- ACE_Lock_Adapter<ACE_SYNCH_NULL_MUTEX>,
+ ACE_Lock_Adapter<ACE_SYNCH_NULL_MUTEX> (),
0);
else
ACE_NEW_RETURN (the_lock,
- ACE_Lock_Adapter<ACE_SYNCH_MUTEX>,
+ ACE_Lock_Adapter<ACE_SYNCH_MUTEX> (),
0);
return the_lock;
@@ -90,9 +110,7 @@ TAO_Default_Server_Strategy_Factory::create_cached_connector_lock (void)
// Evil macros b/c I'm lazy!
#define TAO_BEGINCHECK if (0)
-#define TAO_CHECKANDSET(sym) \
- else if (ACE_OS::strcmp (flag, #sym) == 0) \
- ACE_SET_BITS (this->thread_flags_, sym)
+#define TAO_CHECKANDSET(sym) else if (ACE_OS::strcmp (flag, #sym) == 0) ACE_SET_BITS (this->thread_flags_, sym)
#define TAO_ENDCHECK
void
@@ -100,13 +118,9 @@ TAO_Default_Server_Strategy_Factory::tokenize (char *flag_string)
{
char *lasts = 0;
- for (char *flag = ACE_OS::strtok_r (flag_string,
- "|",
- &lasts);
+ for (char *flag = ACE_OS::strtok_r (flag_string, "|", &lasts);
flag != 0;
- flag = ACE_OS::strtok_r (0,
- "|",
- &lasts))
+ flag = ACE_OS::strtok_r (0, "|", &lasts))
{
TAO_BEGINCHECK;
TAO_CHECKANDSET (THR_DETACHED);
@@ -127,7 +141,7 @@ TAO_Default_Server_Strategy_Factory::init (int argc, char *argv[])
}
int
-TAO_Default_Server_Strategy_Factory::open (TAO_ORB_Core *orb_core)
+TAO_Default_Server_Strategy_Factory::open (TAO_ORB_Core* orb_core)
{
return 0;
}
@@ -140,238 +154,180 @@ TAO_Default_Server_Strategy_Factory::parse_args (int argc, char *argv[])
int curarg;
for (curarg = 0; curarg < argc && argv[curarg]; curarg++)
- if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBConcurrency") == 0)
+ if (ACE_OS::strcmp (argv[curarg], "-ORBconcurrency") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "reactive") == 0)
+ if (ACE_OS::strcasecmp (name, "reactive") == 0)
this->activate_server_connections_ = 0;
- else if (ACE_OS::strcasecmp (name,
- "thread-per-connection") == 0)
+ else if (ACE_OS::strcasecmp (name, "thread-per-connection") == 0)
this->activate_server_connections_ = 1;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBTableSize") == 0
- || ACE_OS::strcasecmp (argv[curarg],
- "-ORBActiveObjectMapSize") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBtablesize") == 0 ||
+ ACE_OS::strcmp (argv[curarg], "-ORBactiveobjectmapsize") == 0)
{
curarg++;
if (curarg < argc)
- this->active_object_map_creation_parameters_.active_object_map_size_ =
- ACE_OS::strtoul (argv[curarg],
- 0,
- 10);
+ this->active_object_map_creation_parameters_.active_object_map_size_ = ACE_OS::strtoul (argv[curarg], 0, 10);
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBPOAMapSize") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBpoamapsize") == 0)
{
curarg++;
if (curarg < argc)
- this->active_object_map_creation_parameters_.poa_map_size_ =
- ACE_OS::strtoul (argv[curarg],
- 0,
- 10);
+ this->active_object_map_creation_parameters_.poa_map_size_ = ACE_OS::strtoul (argv[curarg], 0, 10);
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBActiveHintInIds") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBactivehintinids") == 0)
{
curarg++;
if (curarg < argc)
{
char *value = argv[curarg];
- this->active_object_map_creation_parameters_.use_active_hint_in_ids_ =
- ACE_OS::atoi (value);
+ this->active_object_map_creation_parameters_.use_active_hint_in_ids_ = ACE_OS::atoi (value);
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBActiveHintInPOANames") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBactivehintinpoanames") == 0)
{
curarg++;
if (curarg < argc)
{
char *value = argv[curarg];
- this->active_object_map_creation_parameters_.use_active_hint_in_poa_names_ =
- ACE_OS::atoi (value);
+ this->active_object_map_creation_parameters_.use_active_hint_in_poa_names_ = ACE_OS::atoi (value);
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBAllowReactivationOfSystemids") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBallowreactivationofsystemids") == 0)
{
curarg++;
if (curarg < argc)
{
char *value = argv[curarg];
- this->active_object_map_creation_parameters_.allow_reactivation_of_system_ids_ =
- ACE_OS::atoi (value);
+ this->active_object_map_creation_parameters_.allow_reactivation_of_system_ids_ = ACE_OS::atoi (value);
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBUseridPolicyDemuxStrategy") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBuseridpolicydemuxstrategy") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- // Active demux not supported with user id policy.
- if (ACE_OS::strcasecmp (name,
- "dynamic") == 0)
- this->active_object_map_creation_parameters_.object_lookup_strategy_for_user_id_policy_ =
- TAO_DYNAMIC_HASH;
- else if (ACE_OS::strcasecmp (name,
- "linear") == 0)
- this->active_object_map_creation_parameters_.object_lookup_strategy_for_user_id_policy_ =
- TAO_LINEAR;
+ // Active demux not supported with user id policy
+ if (ACE_OS::strcasecmp (name, "dynamic") == 0)
+ this->active_object_map_creation_parameters_.object_lookup_strategy_for_user_id_policy_ = TAO_DYNAMIC_HASH;
+ else if (ACE_OS::strcasecmp (name, "linear") == 0)
+ this->active_object_map_creation_parameters_.object_lookup_strategy_for_user_id_policy_ = TAO_LINEAR;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBSystemidPolicyDemuxStrategy") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBsystemidpolicydemuxstrategy") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "dynamic") == 0)
- this->active_object_map_creation_parameters_.object_lookup_strategy_for_system_id_policy_ =
- TAO_DYNAMIC_HASH;
- else if (ACE_OS::strcasecmp (name,
- "linear") == 0)
- this->active_object_map_creation_parameters_.object_lookup_strategy_for_system_id_policy_ =
- TAO_LINEAR;
- else if (ACE_OS::strcasecmp (name,
- "active") == 0)
- this->active_object_map_creation_parameters_.object_lookup_strategy_for_system_id_policy_ =
- TAO_ACTIVE_DEMUX;
+ if (ACE_OS::strcasecmp (name, "dynamic") == 0)
+ this->active_object_map_creation_parameters_.object_lookup_strategy_for_system_id_policy_ = TAO_DYNAMIC_HASH;
+ else if (ACE_OS::strcasecmp (name, "linear") == 0)
+ this->active_object_map_creation_parameters_.object_lookup_strategy_for_system_id_policy_ = TAO_LINEAR;
+ else if (ACE_OS::strcasecmp (name, "active") == 0)
+ this->active_object_map_creation_parameters_.object_lookup_strategy_for_system_id_policy_ = TAO_ACTIVE_DEMUX;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBPersistentidPolicyDemuxStrategy") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBpersistentidpolicydemuxstrategy") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- // Active demux not supported with user id policy.
- if (ACE_OS::strcasecmp (name,
- "dynamic") == 0)
- this->active_object_map_creation_parameters_.poa_lookup_strategy_for_persistent_id_policy_ =
- TAO_DYNAMIC_HASH;
- else if (ACE_OS::strcasecmp (name,
- "linear") == 0)
- this->active_object_map_creation_parameters_.poa_lookup_strategy_for_persistent_id_policy_ =
- TAO_LINEAR;
+ // Active demux not supported with user id policy
+ if (ACE_OS::strcasecmp (name, "dynamic") == 0)
+ this->active_object_map_creation_parameters_.poa_lookup_strategy_for_persistent_id_policy_ = TAO_DYNAMIC_HASH;
+ else if (ACE_OS::strcasecmp (name, "linear") == 0)
+ this->active_object_map_creation_parameters_.poa_lookup_strategy_for_persistent_id_policy_ = TAO_LINEAR;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBTransientidPolicyDemuxStrategy") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBtransientidpolicydemuxstrategy") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "dynamic") == 0)
- this->active_object_map_creation_parameters_.poa_lookup_strategy_for_transient_id_policy_ =
- TAO_DYNAMIC_HASH;
- else if (ACE_OS::strcasecmp (name,
- "linear") == 0)
- this->active_object_map_creation_parameters_.poa_lookup_strategy_for_transient_id_policy_ =
- TAO_LINEAR;
- else if (ACE_OS::strcasecmp (name,
- "active") == 0)
- this->active_object_map_creation_parameters_.poa_lookup_strategy_for_transient_id_policy_ =
- TAO_ACTIVE_DEMUX;
+ if (ACE_OS::strcasecmp (name, "dynamic") == 0)
+ this->active_object_map_creation_parameters_.poa_lookup_strategy_for_transient_id_policy_ = TAO_DYNAMIC_HASH;
+ else if (ACE_OS::strcasecmp (name, "linear") == 0)
+ this->active_object_map_creation_parameters_.poa_lookup_strategy_for_transient_id_policy_ = TAO_LINEAR;
+ else if (ACE_OS::strcasecmp (name, "active") == 0)
+ this->active_object_map_creation_parameters_.poa_lookup_strategy_for_transient_id_policy_ = TAO_ACTIVE_DEMUX;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBUniqueidPolicyReverseDemuxStrategy") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBuniqueidpolicyreversedemuxstrategy") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "dynamic") == 0)
- this->active_object_map_creation_parameters_.reverse_object_lookup_strategy_for_unique_id_policy_ =
- TAO_DYNAMIC_HASH;
- else if (ACE_OS::strcasecmp (name,
- "linear") == 0)
- this->active_object_map_creation_parameters_.reverse_object_lookup_strategy_for_unique_id_policy_ =
- TAO_LINEAR;
+ if (ACE_OS::strcasecmp (name, "dynamic") == 0)
+ this->active_object_map_creation_parameters_.reverse_object_lookup_strategy_for_unique_id_policy_ = TAO_DYNAMIC_HASH;
+ else if (ACE_OS::strcasecmp (name, "linear") == 0)
+ this->active_object_map_creation_parameters_.reverse_object_lookup_strategy_for_unique_id_policy_ = TAO_LINEAR;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBDemuxStrategy") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBdemuxstrategy") == 0)
{
ACE_DEBUG ((LM_DEBUG,
- "Warning: -ORBDemuxStrategy is deprecated. Please use "
- "-ORBSystemidPolicyDemuxStrategy or -ORBUseridPolicyDemuxStrategy instead.\n"));
+ "Warning: -ORBdemuxstrategy is deprecated. Please use "
+ "-ORBsystemidpolicydemuxstrategy or -ORBuseridpolicydemuxstrategy instead.\n"));
curarg++;
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBPOALock") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBpoalock") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "thread") == 0)
+ if (ACE_OS::strcasecmp (name, "thread") == 0)
this->poa_lock_type_ = TAO_THREAD_LOCK;
- else if (ACE_OS::strcasecmp (name,
- "null") == 0)
+ else if (ACE_OS::strcasecmp (name, "null") == 0)
this->poa_lock_type_ = TAO_NULL_LOCK;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBEventLoopLock") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBeventlock") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "thread") == 0)
- this->event_loop_lock_type_ = TAO_THREAD_LOCK;
- else if (ACE_OS::strcasecmp (name,
- "null") == 0)
- this->event_loop_lock_type_ = TAO_NULL_LOCK;
+ if (ACE_OS::strcasecmp (name, "thread") == 0)
+ this->poa_mgr_lock_type_ = TAO_THREAD_LOCK;
+ else if (ACE_OS::strcasecmp (name, "null") == 0)
+ this->poa_mgr_lock_type_ = TAO_NULL_LOCK;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBConnectorLock") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBconnectorlock") == 0)
{
curarg++;
if (curarg < argc)
{
char *name = argv[curarg];
- if (ACE_OS::strcasecmp (name,
- "thread") == 0)
+ if (ACE_OS::strcasecmp (name, "thread") == 0)
this->cached_connector_lock_type_ = TAO_THREAD_LOCK;
- else if (ACE_OS::strcasecmp (name,
- "null") == 0)
+ else if (ACE_OS::strcasecmp (name, "null") == 0)
this->cached_connector_lock_type_ = TAO_NULL_LOCK;
}
}
- else if (ACE_OS::strcasecmp (argv[curarg],
- "-ORBThreadFlags") == 0)
+ else if (ACE_OS::strcmp (argv[curarg], "-ORBthreadflags") == 0)
{
curarg++;