TAO 2.0.4
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Attributes
TAO_Default_Resource_Factory Class Reference

TAO's default resource factory. More...

#include <default_resource.h>

Inheritance diagram for TAO_Default_Resource_Factory:
Inheritance graph
[legend]
Collaboration diagram for TAO_Default_Resource_Factory:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_Default_Resource_Factory (void)
 Constructor.
virtual ~TAO_Default_Resource_Factory (void)
 Destructor.
Service Configurator Hooks
virtual int init (int argc, ACE_TCHAR *argv[])
 Dynamic linking hook.
int parse_args (int argc, ACE_TCHAR *argv[])
 Parse svc.conf arguments.

Protected Types

enum  Output_CDR_Allocator_Type { LOCAL_MEMORY_POOL, DEFAULT }

Protected Member Functions

virtual ACE_Reactor_Implallocate_reactor_impl (void) const
 Obtain the reactor implementation.
int add_to_ior_parser_names (const char *)
 Add a Parser name to the list of Parser names.
void report_option_value_error (const ACE_TCHAR *option_name, const ACE_TCHAR *option_value)
virtual int load_default_protocols (void)

Protected Attributes

int use_locked_data_blocks_
 The type of data blocks that the ORB should use.
int parser_names_count_
 The number of the different types of Parsers.
char ** parser_names_
 Array consisting of the names of the parsers.
int index_
 Index of the current element in the parser_names_ array.
TAO_ProtocolFactorySet protocol_factories_
 list of loaded protocol factories.
TAO_Resource_Factory::Purging_Strategy connection_purging_type_
int cache_maximum_
int purge_percentage_
int max_muxed_connections_
int reactor_mask_signals_
 If 0 then we create reactors with signal handling disabled.
bool dynamically_allocated_reactor_
int options_processed_
int factory_disabled_
Output_CDR_Allocator_Type output_cdr_allocator_type_
 Type of allocator to use for output CDR buffers.
bool use_local_memory_pool_

Private Types

enum  Lock_Type { TAO_NULL_LOCK, TAO_THREAD_LOCK }
enum  Flushing_Strategy_Type { TAO_LEADER_FOLLOWER_FLUSHING, TAO_REACTIVE_FLUSHING, TAO_BLOCKING_FLUSHING }

Private Attributes

Lock_Type cached_connection_lock_type_
 Type of lock used by the cached connector.
Flushing_Strategy_Type flushing_strategy_type_
 Type of flushing strategy configured.
TAO_Codeset_Parameters char_codeset_parameters_
TAO_Codeset_Parameters wchar_codeset_parameters_
Resource_Usage resource_usage_strategy_
 Resource usage strategy.
bool drop_replies_

Member Accessors

enum  { TAO_ALLOCATOR_THREAD_LOCK }
 Modify and get the source for the CDR allocators. More...
int get_parser_names (char **&names, int &number_of_names)
 Modify and get the source for the CDR allocators.
int cdr_allocator_source (void)
 Modify and get the source for the CDR allocators.
virtual int use_locked_data_blocks (void) const
 Modify and get the source for the CDR allocators.
virtual ACE_Reactorget_reactor (void)
 Modify and get the source for the CDR allocators.
virtual void reclaim_reactor (ACE_Reactor *)
 Modify and get the source for the CDR allocators.
virtual TAO_Acceptor_Registryget_acceptor_registry (void)
 Modify and get the source for the CDR allocators.
virtual TAO_Connector_Registryget_connector_registry (void)
 Modify and get the source for the CDR allocators.
virtual void use_local_memory_pool (bool)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatorinput_cdr_dblock_allocator (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatorinput_cdr_buffer_allocator (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatorinput_cdr_msgblock_allocator (void)
 Modify and get the source for the CDR allocators.
virtual int input_cdr_allocator_type_locked (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatoroutput_cdr_dblock_allocator (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatoroutput_cdr_buffer_allocator (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatoroutput_cdr_msgblock_allocator (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatoramh_response_handler_allocator (void)
 Modify and get the source for the CDR allocators.
virtual ACE_Allocatorami_response_handler_allocator (void)
 Modify and get the source for the CDR allocators.
virtual TAO_ProtocolFactorySetget_protocol_factories (void)
 Modify and get the source for the CDR allocators.
virtual int init_protocol_factories (void)
 Modify and get the source for the CDR allocators.
virtual TAO_Codeset_Managercodeset_manager (void)
 Modify and get the source for the CDR allocators.
virtual int cache_maximum (void) const
 Modify and get the source for the CDR allocators.
virtual int purge_percentage (void) const
 Modify and get the source for the CDR allocators.
virtual int max_muxed_connections (void) const
 Modify and get the source for the CDR allocators.
virtual ACE_Lockcreate_cached_connection_lock (void)
 Modify and get the source for the CDR allocators.
virtual int locked_transport_cache (void)
 Modify and get the source for the CDR allocators.
virtual TAO_Flushing_Strategycreate_flushing_strategy (void)
 Modify and get the source for the CDR allocators.
virtual
TAO_Connection_Purging_Strategy
create_purging_strategy (void)
 Modify and get the source for the CDR allocators.
TAO_Resource_Factory::Resource_Usage resource_usage_strategy (void) const
 Modify and get the source for the CDR allocators.
virtual TAO_LF_Strategycreate_lf_strategy (void)
 Modify and get the source for the CDR allocators.
virtual auto_ptr
< TAO_GIOP_Fragmentation_Strategy
create_fragmentation_strategy (TAO_Transport *transport, CORBA::ULong max_message_size) const
 Modify and get the source for the CDR allocators.
virtual void disable_factory (void)
 Modify and get the source for the CDR allocators.
virtual bool drop_replies_during_shutdown (void) const
 Modify and get the source for the CDR allocators.

Detailed Description

TAO's default resource factory.

Using a <{resource source specifier}> as a discriminator, the factory can return resource instances which are, e.g., global, stored in thread-specific storage, stored in shared memory, etc.

Note:
When using an ORB created by a dynamically loaded object, it is generally necessary to pre-load a "Resource_Factory" prior to initializing the ORB. In the case of the TAO_Default_Resource_Factory, this can be done by adding the following Service Configurator directive to your `svc.conf' file before your the directive that loads the object that initialized your ORB:
static Resource_Factory ""
Alternatively, explicitly pre-load the Resource_Factory using the following in your code:
ACE_Service_Config::process_directive ( ACE_TEXT ("static Resource_Factory \""") );
In both cases, place the appropriate resource factory arguments, if any, between the quotes immediately following "Resource_Factory."

Member Enumeration Documentation

anonymous enum

Modify and get the source for the CDR allocators.

Enumerator:
TAO_ALLOCATOR_THREAD_LOCK 
Enumerator:
TAO_LEADER_FOLLOWER_FLUSHING 
TAO_REACTIVE_FLUSHING 
TAO_BLOCKING_FLUSHING 
Enumerator:
TAO_NULL_LOCK 
TAO_THREAD_LOCK 
Enumerator:
LOCAL_MEMORY_POOL 
DEFAULT 

Constructor & Destructor Documentation

TAO_Default_Resource_Factory::TAO_Default_Resource_Factory ( void  )

Constructor.

TAO_Default_Resource_Factory::~TAO_Default_Resource_Factory ( void  ) [virtual]

Destructor.


Member Function Documentation

int TAO_Default_Resource_Factory::add_to_ior_parser_names ( const char *  curarg) [protected]

Add a Parser name to the list of Parser names.

ACE_Reactor_Impl * TAO_Default_Resource_Factory::allocate_reactor_impl ( void  ) const [protected, virtual]

Obtain the reactor implementation.

ACE_Allocator * TAO_Default_Resource_Factory::amh_response_handler_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::ami_response_handler_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::cache_maximum ( void  ) const [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::cdr_allocator_source ( void  )

Modify and get the source for the CDR allocators.

TAO_Codeset_Manager * TAO_Default_Resource_Factory::codeset_manager ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Lock * TAO_Default_Resource_Factory::create_cached_connection_lock ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

TAO_Flushing_Strategy * TAO_Default_Resource_Factory::create_flushing_strategy ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

auto_ptr< TAO_GIOP_Fragmentation_Strategy > TAO_Default_Resource_Factory::create_fragmentation_strategy ( TAO_Transport transport,
CORBA::ULong  max_message_size 
) const [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

TAO_LF_Strategy * TAO_Default_Resource_Factory::create_lf_strategy ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

TAO_Connection_Purging_Strategy * TAO_Default_Resource_Factory::create_purging_strategy ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

void TAO_Default_Resource_Factory::disable_factory ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

bool TAO_Default_Resource_Factory::drop_replies_during_shutdown ( void  ) const [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

TAO_Acceptor_Registry * TAO_Default_Resource_Factory::get_acceptor_registry ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

TAO_Connector_Registry * TAO_Default_Resource_Factory::get_connector_registry ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::get_parser_names ( char **&  names,
int &  number_of_names 
) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

TAO_ProtocolFactorySet * TAO_Default_Resource_Factory::get_protocol_factories ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Reactor * TAO_Default_Resource_Factory::get_reactor ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::init ( int  argc,
ACE_TCHAR argv[] 
) [virtual]

Dynamic linking hook.

CodeSet Translators

CodeSet Translators

Reimplemented from ACE_Shared_Object.

int TAO_Default_Resource_Factory::init_protocol_factories ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::input_cdr_allocator_type_locked ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::input_cdr_buffer_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::input_cdr_dblock_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::input_cdr_msgblock_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::load_default_protocols ( void  ) [protected, virtual]

Loads the default protocols. This method is used so that the advanced_resource.cpp can call the one in default_resource.cpp without calling unnecessary functions.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::locked_transport_cache ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::max_muxed_connections ( void  ) const [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::output_cdr_buffer_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::output_cdr_dblock_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

ACE_Allocator * TAO_Default_Resource_Factory::output_cdr_msgblock_allocator ( void  ) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::parse_args ( int  argc,
ACE_TCHAR argv[] 
)

Parse svc.conf arguments.

int TAO_Default_Resource_Factory::purge_percentage ( void  ) const [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

void TAO_Default_Resource_Factory::reclaim_reactor ( ACE_Reactor reactor) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

void TAO_Default_Resource_Factory::report_option_value_error ( const ACE_TCHAR option_name,
const ACE_TCHAR option_value 
) [protected]
TAO_Resource_Factory::Resource_Usage TAO_Default_Resource_Factory::resource_usage_strategy ( void  ) const [virtual]

Modify and get the source for the CDR allocators.

Implements TAO_Resource_Factory.

void TAO_Default_Resource_Factory::use_local_memory_pool ( bool  flag) [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::use_locked_data_blocks ( void  ) const [virtual]

Modify and get the source for the CDR allocators.

Reimplemented from TAO_Resource_Factory.


Member Data Documentation

Specifies the maximum number of connections which should get cached in the ORB.

Type of lock used by the cached connector.

Initialization options. To be used later when creating a codeset manager instance (s)

Specifies the typeof purging strategy we should use for cleaning up unused connections

Flag to indicate whether replies should be dropped during ORB shutdown.

Flag that is set to true if the reactor obtained from the get_reactor() method is dynamically allocated. If this flag is set to true, then the reclaim_reactor() method with call the delete operator on the given reactor. This flag is necessary to make sure that a reactor not allocated by the default resource factory is not reclaimed by the default resource factory. Such a situation can occur when a resource factory derived from the default one overrides the get_reactor() method but does not override the reclaim_reactor() method.

This flag specifies whether the factory has been disabled. If it has been disabled we should print warnings if options were processed before (or later).

Type of flushing strategy configured.

Index of the current element in the parser_names_ array.

Specifies the limit on the number of muxed connections allowed per-property for the ORB. A value of 0 indicates no limit

This flag is used to determine whether options have been processed via the init() function. It is necessary to properly report errors when the default factory is replaced.

Type of allocator to use for output CDR buffers.

Array consisting of the names of the parsers.

The number of the different types of Parsers.

list of loaded protocol factories.

Specifies the percentage of entries which should get purged on demand.

If 0 then we create reactors with signal handling disabled.

Resource usage strategy.

This flag is used to determine whether the CDR allocators should use the local memory pool or not.

The type of data blocks that the ORB should use.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines