summaryrefslogtreecommitdiff
path: root/TAO/tao/default_resource.cpp
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-18 01:37:51 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-18 01:37:51 +0000
commit47105676527e6bf611fdd50c36c6f5deff7315fc (patch)
tree191e75329bb67b96f23557c3784aaeeb54ac5e86 /TAO/tao/default_resource.cpp
parent33a7a2b2533ce57996106bf1bc0c539b9f0e2cb1 (diff)
downloadATCD-47105676527e6bf611fdd50c36c6f5deff7315fc.tar.gz
ChangeLogTag:Thu Jun 17 19:38:57 1999 Irfan Pyarali <irfan@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/default_resource.cpp')
-rw-r--r--TAO/tao/default_resource.cpp205
1 files changed, 63 insertions, 142 deletions
diff --git a/TAO/tao/default_resource.cpp b/TAO/tao/default_resource.cpp
index 53a22c2a98e..b01ba111060 100644
--- a/TAO/tao/default_resource.cpp
+++ b/TAO/tao/default_resource.cpp
@@ -27,8 +27,9 @@ ACE_RCSID(tao, default_resource, "$Id$")
TAO_Default_Resource_Factory::TAO_Default_Resource_Factory (void)
: use_tss_resources_ (0),
+ use_locked_data_blocks_ (1),
reactor_type_ (TAO_REACTOR_SELECT_MT),
- cdr_allocator_source_ (TAO_GLOBAL)
+ cdr_allocator_type_ (TAO_ALLOCATOR_THREAD_LOCK)
{
}
@@ -102,7 +103,7 @@ TAO_Default_Resource_Factory::init (int argc, char **argv)
"select_st") == 0)
reactor_type_ = TAO_REACTOR_SELECT_ST;
else if (ACE_OS::strcasecmp (name,
- "fl_reactor") == 0)
+ "fl") == 0)
#if defined(ACE_HAS_FL)
reactor_type_ = TAO_REACTOR_FL;
#else
@@ -111,7 +112,7 @@ TAO_Default_Resource_Factory::init (int argc, char **argv)
" not supported on this platform\n"));
#endif /* ACE_HAS_FL */
else if (ACE_OS::strcasecmp (name,
- "xt_reactor") == 0)
+ "xt") == 0)
#if defined(ACE_HAS_XT)
reactor_type_ = TAO_REACTOR_XT;
#else
@@ -120,7 +121,7 @@ TAO_Default_Resource_Factory::init (int argc, char **argv)
" not supported on this platform\n"));
#endif /* ACE_HAS_XT */
else if (ACE_OS::strcasecmp (name,
- "WFMO") == 0)
+ "wfmo") == 0)
#if defined(ACE_WIN32)
reactor_type_ = TAO_REACTOR_WFMO;
#else
@@ -129,7 +130,7 @@ TAO_Default_Resource_Factory::init (int argc, char **argv)
" not supported on this platform\n"));
#endif /* ACE_WIN32 */
else if (ACE_OS::strcasecmp (name,
- "MsgWFMO") == 0)
+ "msg_wfmo") == 0)
#if defined(ACE_WIN32)
reactor_type_ = TAO_REACTOR_MSGWFMO;
#else
@@ -139,7 +140,7 @@ TAO_Default_Resource_Factory::init (int argc, char **argv)
#endif /* ACE_WIN32 */
else if (ACE_OS::strcasecmp (name,
- "ThreadPool") == 0)
+ "tp") == 0)
reactor_type_ = TAO_REACTOR_TP;
else
ACE_DEBUG ((LM_DEBUG,
@@ -157,13 +158,20 @@ TAO_Default_Resource_Factory::init (int argc, char **argv)
char *name = argv[curarg];
if (ACE_OS::strcasecmp (name,
- "global") == 0)
- this->cdr_allocator_source_ = TAO_GLOBAL;
+ "null") == 0)
+ {
+ this->cdr_allocator_type_ = TAO_ALLOCATOR_NULL_LOCK;
+ this->use_locked_data_blocks_ = 0;
+ }
else if (ACE_OS::strcasecmp (name,
- "tss") == 0)
- this->cdr_allocator_source_ = TAO_TSS;
+ "thread") == 0)
+ {
+ this->cdr_allocator_type_ = TAO_ALLOCATOR_THREAD_LOCK;
+ this->use_locked_data_blocks_ = 1;
+ }
}
}
+
else if (ACE_OS::strcasecmp (argv[curarg],
"-ORBProtocolFactory") == 0)
{
@@ -284,6 +292,12 @@ TAO_Default_Resource_Factory::use_tss_resources (void) const
return this->use_tss_resources_;
}
+int
+TAO_Default_Resource_Factory::use_locked_data_blocks (void) const
+{
+ return this->use_locked_data_blocks_;
+}
+
TAO_ProtocolFactorySet *
TAO_Default_Resource_Factory::get_protocol_factories (void)
{
@@ -362,69 +376,63 @@ TAO_Default_Resource_Factory::get_reactor (void)
return reactor;
}
-typedef ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_Null_Mutex> TSS_MALLOC;
-typedef ACE_Allocator_Adapter<TSS_MALLOC> TSS_ALLOCATOR;
+typedef ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_Null_Mutex> NULL_LOCK_MALLOC;
+typedef ACE_Allocator_Adapter<NULL_LOCK_MALLOC> NULL_LOCK_ALLOCATOR;
-typedef ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> GBL_MALLOC;
-typedef ACE_Allocator_Adapter<GBL_MALLOC> GBL_ALLOCATOR;
+typedef ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> LOCKED_MALLOC;
+typedef ACE_Allocator_Adapter<LOCKED_MALLOC> LOCKED_ALLOCATOR;
-ACE_Allocator*
+ACE_Allocator *
TAO_Default_Resource_Factory::input_cdr_dblock_allocator (void)
{
- switch (this->cdr_allocator_source_)
+ ACE_Allocator *allocator = 0;
+ switch (this->cdr_allocator_type_)
{
- case TAO_GLOBAL:
- if (GLOBAL_ALLOCATED::instance ()->input_cdr_dblock_allocator_ == 0)
- {
- ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->input_cdr_dblock_allocator_,
- GBL_ALLOCATOR,
- 0);
- }
- return GLOBAL_ALLOCATED::instance ()->input_cdr_dblock_allocator_;
- ACE_NOTREACHED (break);
- case TAO_TSS:
- if (TSS_ALLOCATED::instance ()->input_cdr_dblock_allocator_ == 0)
- {
- ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->input_cdr_dblock_allocator_,
- TSS_ALLOCATOR,
- 0);
- }
- return TSS_ALLOCATED::instance ()->input_cdr_dblock_allocator_;
- ACE_NOTREACHED (break);
+ case TAO_ALLOCATOR_NULL_LOCK:
+ ACE_NEW_RETURN (allocator,
+ NULL_LOCK_ALLOCATOR,
+ 0);
+ break;
+
+ case TAO_ALLOCATOR_THREAD_LOCK:
+ default:
+ ACE_NEW_RETURN (allocator,
+ LOCKED_ALLOCATOR,
+ 0);
+ break;
}
- return 0;
+
+ return allocator;
}
ACE_Allocator *
TAO_Default_Resource_Factory::input_cdr_buffer_allocator (void)
{
- switch (this->cdr_allocator_source_)
+ ACE_Allocator *allocator = 0;
+ switch (this->cdr_allocator_type_)
{
- case TAO_GLOBAL:
- if (GLOBAL_ALLOCATED::instance ()->input_cdr_buffer_allocator_ == 0)
- {
- ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->input_cdr_buffer_allocator_,
- GBL_ALLOCATOR,
- 0);
- }
- return GLOBAL_ALLOCATED::instance ()->input_cdr_buffer_allocator_;
- case TAO_TSS:
- if (TSS_ALLOCATED::instance ()->input_cdr_buffer_allocator_ == 0)
- {
- ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->input_cdr_buffer_allocator_,
- TSS_ALLOCATOR,
- 0);
- }
- return TSS_ALLOCATED::instance ()->input_cdr_buffer_allocator_;
+ case TAO_ALLOCATOR_NULL_LOCK:
+ ACE_NEW_RETURN (allocator,
+ NULL_LOCK_ALLOCATOR,
+ 0);
+ break;
+
+ case TAO_ALLOCATOR_THREAD_LOCK:
+ default:
+ ACE_NEW_RETURN (allocator,
+ LOCKED_ALLOCATOR,
+ 0);
+ break;
}
- return 0;
+
+ return allocator;
}
ACE_Allocator*
TAO_Default_Resource_Factory::output_cdr_dblock_allocator (void)
{
ACE_Allocator *allocator;
- ACE_NEW_RETURN (allocator, TSS_ALLOCATOR, 0);
+ ACE_NEW_RETURN (allocator, NULL_LOCK_ALLOCATOR, 0);
return allocator;
}
@@ -432,87 +440,10 @@ ACE_Allocator *
TAO_Default_Resource_Factory::output_cdr_buffer_allocator (void)
{
ACE_Allocator *allocator;
- ACE_NEW_RETURN (allocator, TSS_ALLOCATOR, 0);
+ ACE_NEW_RETURN (allocator, NULL_LOCK_ALLOCATOR, 0);
return allocator;
}
-ACE_Data_Block*
-TAO_Default_Resource_Factory::create_input_cdr_data_block (size_t size)
-{
- switch (this->cdr_allocator_source_)
- {
- case TAO_GLOBAL:
- {
- ACE_Allocator* buffer_alloc =
- this->input_cdr_buffer_allocator ();
- ACE_Allocator* dblock_alloc =
- this->input_cdr_dblock_allocator ();
-
- typedef
- ACE_Locked_Data_Block<ACE_Lock_Adapter<ACE_SYNCH_MUTEX> >
- Global_Data_Block;
- Global_Data_Block *nb;
-
- ACE_NEW_MALLOC_RETURN (
- nb,
- ACE_static_cast(Global_Data_Block*,
- dblock_alloc->malloc (sizeof (Global_Data_Block))),
- Global_Data_Block (size,
- ACE_Message_Block::MB_DATA,
- 0,
- buffer_alloc,
- 0,
- dblock_alloc),
- 0);
- return nb;
- }
-
- case TAO_TSS:
- {
- ACE_Allocator* buffer_alloc =
- this->input_cdr_buffer_allocator ();
- ACE_Allocator* dblock_alloc =
- this->input_cdr_dblock_allocator ();
-
- ACE_Data_Block *nb;
-
- ACE_NEW_MALLOC_RETURN (
- nb,
- ACE_static_cast(ACE_Data_Block*,
- dblock_alloc->malloc (sizeof (ACE_Data_Block))),
- ACE_Data_Block (size,
- ACE_Message_Block::MB_DATA,
- 0,
- buffer_alloc,
- 0,
- 0,
- dblock_alloc),
- 0);
- return nb;
- }
- }
- return 0;
-}
-
-// ****************************************************************
-
-TAO_Allocated_Resources::TAO_Allocated_Resources (void)
- : input_cdr_dblock_allocator_ (0),
- input_cdr_buffer_allocator_ (0)
-{
-}
-
-TAO_Allocated_Resources::~TAO_Allocated_Resources (void)
-{
- if (this->input_cdr_dblock_allocator_ != 0)
- this->input_cdr_dblock_allocator_->remove ();
- delete this->input_cdr_dblock_allocator_;
-
- if (this->input_cdr_buffer_allocator_ != 0)
- this->input_cdr_buffer_allocator_->remove ();
- delete this->input_cdr_buffer_allocator_;
-}
-
// ****************************************************************
ACE_STATIC_SVC_DEFINE (TAO_Default_Resource_Factory,
@@ -529,11 +460,6 @@ ACE_FACTORY_DEFINE (TAO, TAO_Default_Resource_Factory)
template class ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX>;
template class ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> >;
-template class ACE_Locked_Data_Block<ACE_Lock_Adapter<ACE_SYNCH_MUTEX> >;
-
-template class ACE_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX>;
-template class ACE_TSS_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX>;
-template class ACE_TSS<TAO_Allocated_Resources>;
template class ACE_Select_Reactor_Token_T<ACE_Noop_Token>;
template class ACE_Lock_Adapter<ACE_Select_Reactor_Token_T<ACE_Noop_Token> >;
@@ -543,11 +469,6 @@ template class ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Noop_Token>
#pragma instantiate ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX>
#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> >
-#pragma instantiate ACE_Locked_Data_Block<ACE_Lock_Adapter<ACE_SYNCH_MUTEX> >
-
-#pragma instantiate ACE_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_TSS_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_TSS<TAO_Allocated_Resources>
#pragma instantiate ACE_Select_Reactor_Token_T<ACE_Noop_Token>
#pragma instantiate ACE_Lock_Adapter< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >