Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_Default_Resource_Factory Class Reference

TAO's default resource factory. More...

`#include <default_resource.h>`

Inheritance diagram for TAO_Default_Resource_Factory

[legend]
Collaboration diagram for TAO_Default_Resource_Factory:

[legend]
List of all members.

## Member Accessors
enum | { TAO_ALLOCATOR_THREAD_LOCK }
int | get_parser_names (char **&names, int &number_of_names)
int | cdr_allocator_source (void)
| Modify and get the source for the CDR allocators.
virtual int | use_tss_resources (void) const
| Backwards compatibility, return 1 if the ORB core should use TSS resources. More...
virtual int | use_locked_data_blocks (void) const
| Backwards compatibility, return 1 if the ORB core should use Locked_Data_Blocks. More...
virtual ACE_Reactor* | get_reactor (void)
| Return an to be utilized.
virtual void | reclaim_reactor (ACE_Reactor *)
| Reclaim reactor resources (e.g. deallocate, etc).
virtual TAO_Acceptor_Registry* | get_acceptor_registry (void)
| return a reference to the acceptor registry.
virtual TAO_Connector_Registry* | get_connector_registry (void)
| Return an Connector to be utilized.
virtual ACE_Allocator* | input_cdr_dblock_allocator (void)
| Access the input CDR allocators.
virtual ACE_Allocator* | input_cdr_buffer_allocator (void)
virtual ACE_Allocator* | input_cdr_msgblock_allocator (void)
virtual int | input_cdr_allocator_type_locked (void)
virtual ACE_Allocator* | output_cdr_dblock_allocator (void)
| Access the output CDR allocators.
virtual ACE_Allocator* | output_cdr_buffer_allocator (void)
virtual ACE_Allocator* | output_cdr_msgblock_allocator (void)
virtual TAO_ProtocolFactorySet* | get_protocol_factories (void)
virtual int | init_protocol_factories (void)
virtual TAO_Resource_Factory::Caching_Strategy | connection_caching_strategy_type (void) const
| This accesses the connection caching strategy we use for managing purging of unused entries from the connection cache on demnad.
virtual int | cache_maximum (void) const
| This denotes the maximum number of connections that can be cached.
virtual int | purge_percentage (void) const
| This denotes the amount of entries to remove from the connection cache.
virtual ACE_Lock* | create_cached_connection_lock (void)
| Creates the lock for the lock needed in the Cache Map.
virtual TAO_Flushing_Strategy* | create_flushing_strategy (void)
| Creates the flushing strategy. The new instance is owned by the caller.
virtual TAO_Connection_Purging_Strategy* | create_purging_strategy (void)
| Creates the connection purging strategy.
virtual TAO_LF_Strategy* | create_lf_strategy (void)
| Creates the leader followers strategy. The new instance is owned by the caller.
virtual void | disable_factory (void)
| Disables the factory. When a new factory is installed and used, this function should be called on the previously used (default) factory. This should result in proper error reporting if the user attempts to set options on an unused factory.
## Public Methods
| TAO_Default_Resource_Factory (void)
| Constructor.
virtual | ~TAO_Default_Resource_Factory (void)
| Destructor.
Service Configurator Hooks
virtual int | init (int argc, char *argv[])
| Dynamic linking hook.
int | parse_args (int argc, char* argv[])
| Parse svc.conf arguments.
## Protected Methods
virtual ACE_Reactor_Impl* | allocate_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 char* option_name, const char* option_value)
virtual int | load_default_protocols (void)
## Protected Attributes
int | use_tss_resources_
| Flag indicating whether resources should be global or thread-specific.
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::Caching_Strategy | connection_caching_type_
| Specifies the typeof caching strategy we should use for connection management.
int | cache_maximum_
| Specifies the maximum number of connections which should get cached in the ORB.
int | purge_percentage_
| Specifies the percentage of entries which should get purged on demand.
int | reactor_mask_signals_
| If <0> then we create reactors with signal handling disabled.
int | dynamically_allocated_reactor_
int | options_processed_
| 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.
int | factory_disabled_
| 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).
## 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.
int | flushing_strategy_type_
| Type of flushing strategy configured.

## 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

  | Enumeration values:
  TAO_ALLOCATOR_THREAD_LOCK |

enum TAO_Default_Resource_Factory::Flushing_Strategy_Type`[private]`

  | Enumeration values:
  TAO_LEADER_FOLLOWER_FLUSHING |
  TAO_REACTIVE_FLUSHING |
  TAO_BLOCKING_FLUSHING |

enum TAO_Default_Resource_Factory::Lock_Type`[private]`

  | Enumeration values:
  TAO_NULL_LOCK |
  TAO_THREAD_LOCK |

## Constructor & Destructor Documentation

TAO_Default_Resource_Factory::TAO_Default_Resource_Factory ( | void )`[inline]`

| 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. Reimplemented in TAO_QtResource_Factory, and TAO_XT_Resource_Factory.

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

| This denotes the maximum number of connections that can be cached. Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::cdr_allocator_source ( | void )

| Modify and get the source for the CDR allocators.

TAO_Resource_Factory::Caching_Strategy TAO_Default_Resource_Factory::connection_caching_strategy_type ( | void ) const`[virtual]`

| This accesses the connection caching strategy we use for managing purging of unused entries from the connection cache on demnad. Reimplemented from TAO_Resource_Factory.

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

| Creates the lock for the lock needed in the Cache Map. Reimplemented from TAO_Resource_Factory.

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

| Creates the flushing strategy. The new instance is owned by the caller. Reimplemented from TAO_Resource_Factory.

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

| Creates the leader followers strategy. The new instance is owned by the caller. Reimplemented from TAO_Resource_Factory.

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

| Creates the connection purging strategy. Reimplemented from TAO_Resource_Factory.

void TAO_Default_Resource_Factory::disable_factory ( | void )`[virtual]`

| Disables the factory. When a new factory is installed and used, this function should be called on the previously used (default) factory. This should result in proper error reporting if the user attempts to set options on an unused factory. Reimplemented from TAO_Resource_Factory.

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

| return a reference to the acceptor registry. Reimplemented from TAO_Resource_Factory.

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

| Return an Connector to be utilized. Reimplemented from TAO_Resource_Factory.

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

| Reimplemented from TAO_Resource_Factory.

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

| The protocol factory list is implemented in this class since a) it will be a global resource and b) it is initialized at start up and then not altered. Returns a container holding the list of loaded protocols. Reimplemented from TAO_Resource_Factory.

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

| Return an to be utilized. Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::init ( | int argc,
| char * argv[] )`[virtual]`

| Dynamic linking hook.

int TAO_Default_Resource_Factory::init_protocol_factories ( | void )`[virtual]`

| this method will loop through the protocol list and using the protocol name field this method will retrieve a pointer to the associated protocol factory from the service configurator. It is assumed that only one thread will call this method at ORB initialization. NON-THREAD-SAFE Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::input_cdr_allocator_type_locked ( | void )`[virtual]`

| Reimplemented from TAO_Resource_Factory.

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

| Reimplemented from TAO_Resource_Factory.

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

| Access the input CDR allocators. Reimplemented from TAO_Resource_Factory.

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

| 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.

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

| Reimplemented from TAO_Resource_Factory.

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

| Access the output CDR allocators. Reimplemented from TAO_Resource_Factory.

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

| Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::parse_args ( | int argc,
| char * argv[] )

| Parse svc.conf arguments.

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

| This denotes the amount of entries to remove from the connection cache. Reimplemented from TAO_Resource_Factory.

void TAO_Default_Resource_Factory::reclaim_reactor ( | ACE_Reactor * reactor )`[virtual]`

| Reclaim reactor resources (e.g. deallocate, etc). Reimplemented from TAO_Resource_Factory.

void TAO_Default_Resource_Factory::report_option_value_error ( | const char * option_name,
| const char * option_value )`[protected]`

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

| Backwards compatibility, return 1 if the ORB core should use Locked_Data_Blocks. @ Reimplemented from TAO_Resource_Factory.

int TAO_Default_Resource_Factory::use_tss_resources ( | void ) const`[virtual]`

| Backwards compatibility, return 1 if the ORB core should use TSS resources. @ Reimplemented from TAO_Resource_Factory.

## Member Data Documentation

int TAO_Default_Resource_Factory::cache_maximum_`[protected]`

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

Lock_Type TAO_Default_Resource_Factory::cached_connection_lock_type_`[private]`

| Type of lock used by the cached connector.

TAO_Resource_Factory::Caching_Strategy TAO_Default_Resource_Factory::connection_caching_type_`[protected]`

| Specifies the typeof caching strategy we should use for connection management.

int TAO_Default_Resource_Factory::dynamically_allocated_reactor_`[protected]`

| Flag that is set to 1 if the reactor obtained from the get_reactor() method is dynamically allocated. If this flag is set to 1, 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.

int TAO_Default_Resource_Factory::factory_disabled_`[protected]`

| 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).

int TAO_Default_Resource_Factory::flushing_strategy_type_`[private]`

| Type of flushing strategy configured.

int TAO_Default_Resource_Factory::index_`[protected]`

| Index of the current element in the parser_names_ array.

int TAO_Default_Resource_Factory::options_processed_`[protected]`

| 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.

char ** TAO_Default_Resource_Factory::parser_names_`[protected]`

| Array consisting of the names of the parsers.

int TAO_Default_Resource_Factory::parser_names_count_`[protected]`

| The number of the different types of Parsers.

TAO_ProtocolFactorySet TAO_Default_Resource_Factory::protocol_factories_`[protected]`

| list of loaded protocol factories.

int TAO_Default_Resource_Factory::purge_percentage_`[protected]`

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

int TAO_Default_Resource_Factory::reactor_mask_signals_`[protected]`

| If <0> then we create reactors with signal handling disabled.

int TAO_Default_Resource_Factory::use_locked_data_blocks_`[protected]`

| The type of data blocks that the ORB should use.

int TAO_Default_Resource_Factory::use_tss_resources_`[protected]`

| Flag indicating whether resources should be global or thread-specific.

The documentation for this class was generated from the following files:

- default_resource.h
- default_resource.cpp