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

# TAO_ORB_Core Class Reference

Encapsulates the state of an ORB. More...

`#include <ORB_Core.h>`

Collaboration diagram for TAO_ORB_Core:

[legend]
List of all members.

## Collocation Strategies
enum | { ORB_CONTROL, THRU_POA, DIRECT }
int | collocation_strategy (CORBA::Object_ptr object, CORBA::Environment &ACE_TRY_ENV)
## Public Types
typedef void (* | Timeout_Hook )(TAO_ORB_Core *, TAO_Stub *, int&, ACE_Time_Value&)
| Define the Timeout_Hook signature.
typedef void (* | Sync_Scope_Hook )(TAO_ORB_Core *, TAO_Stub *, int&, int&)
## Public Methods
| TAO_ORB_Core (const char* id)
| Constructor.
TAO_ORB_Parameters* | orb_params (void)
| Accessor for the ORB parameters.
TAO_Connector_Registry* | connector_registry (void)
| Get the connector registry.
TAO_Parser_Registry* | parser_registry (void)
| Get the IOR parser registry.
TAO_PolicyFactory_Registry* | policy_factory_registry (void)
| Return pointer to the policy factory registry associated with this ORB core.
TAO_ProtocolFactorySet* | protocol_factories (void)
| Get the protocol factories.
CORBA::ORB_ptr | orb (void)
| Get pointer to the ORB.
ACE_Reactor* | reactor (void)
| Wrappers that forward the request to the concurrency strategy.
ACE_Thread_Manager* | thr_mgr (void)
| Get the ACE_Thread_Manager.
CORBA::Object_ptr | root_poa (CORBA::Environment &ACE_TRY_ENV)
| Return the RootPOA, or try to load it if not initialized already.
TAO_Adapter_Registry* | adapter_registry (void)
| Get the adapter registry.
TAO_Adapter* | poa_adapter (void)
| Get the adapter named "RootPOA" and cache the result, this is an optimization for the POA.
int | inherit_from_parent_thread (TAO_ORB_Core_TSS_Resources *tss_resources)
| A spawned thread needs to inherit some properties/objects from the spawning thread in order to serve requests. Return 0 if it successfully inherits from the parent, -1 otherwise.
TAO_Protocols_Hooks* | get_protocols_hooks (CORBA::Environment &ACE_TRY_ENV)
| Gets the value of TAO_ORB_Core::protocols_hooks__.
int | is_collocated (const TAO_MProfile& mprofile)
| See if we have a collocated address, if yes, return the POA associated with the address.
ACE_Allocator* | output_cdr_dblock_allocator (void)
| This allocator is always TSS and has no locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* CDR streams.
ACE_Allocator* | output_cdr_buffer_allocator (void)
| This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams.
ACE_Allocator* | output_cdr_msgblock_allocator (void)
| This allocator is always TSS and has no locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* CDR streams.
ACE_Allocator* | input_cdr_dblock_allocator (void)
| This allocator maybe TSS or global, may or may not have locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* / CDR streams.
ACE_Allocator* | input_cdr_buffer_allocator (void)
| This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams.
ACE_Allocator* | input_cdr_msgblock_allocator (void)
| This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams.
ACE_Allocator* | message_block_dblock_allocator (void)
| This allocator is global, may or may not have locks. It is intended for ACE_Data_Blocks used in message blocks or CDR streams that have no relation with the life of threads, something like used in a class on a per connection basis.
ACE_Allocator* | message_block_buffer_allocator (void)
| This allocator is global, may or may not have locks. It is intended for ACE_Data_Blocks used in message blocks or CDR streams that have no relation with the life of threads, something like used in a class on a per connection basis.
ACE_Allocator* | message_block_msgblock_allocator (void)
| This allocator is global, may or may not have locks. It is intended for ACE_Data_Blocks used in message blocks or CDR streams that have no relation with the life of threads, something like used in a class on a per connection basis.
ACE_Data_Block* | create_input_cdr_data_block (size_t size)
| The Message Blocks used for input CDRs must have appropiate locking strategies.
ACE_Lock* | locking_strategy (void)
| Return the locking strategy used for the data blocks.
ACE_Data_Block* | data_block_for_message_block (size_t size)
| The data blocks returned have memeory from the global pool. Will not get anything from the TSS even if it is available.
void | call_timeout_hook (TAO_Stub *stub, int &has_timeout, ACE_Time_Value &time_value)
| Invoke the timeout hook if present. More...
CORBA::Policy* | stubless_relative_roundtrip_timeout (void)
| Access to the RoundtripTimeoutPolicy policy set on the thread or on the ORB. In this method, we do not consider the stub since we do not have access to it.
void | call_sync_scope_hook (TAO_Stub *stub, int &has_synchronization, int &scope)
TAO_Sync_Strategy& | get_sync_strategy (TAO_Stub *stub, int &scope)
void | stubless_sync_scope (CORBA::Policy *&result)
TAO_Transport_Sync_Strategy& | transport_sync_strategy (void)
| This strategy will sync with the transport.
TAO_ORB_Core_TSS_Resources* | get_tss_resources (void)
| Obtain the TSS resources of this orb.
void* | get_tss_resource (size_t slot_id)
| Obtain the TSS resource in the given slot.
int | set_tss_resource (size_t slot_id, void *)
| Set the TSS resource at the given slot. Returns 0 on success, and -1 on failure.
int | add_tss_cleanup_func (ACE_CLEANUP_FUNC cleanup, size_t &slot_id)
| Register a TSS cleanup function. The slot ID for the corresponding ORB core TSS resource is returned by the reference argument. This method return 0 on success, and -1 on failure.
TAO_Cleanup_Func_Registry* | tss_cleanup_funcs (void)
| Return the underlying TSS cleanup function registry.
TAO_Leader_Follower& | leader_follower (void)
| Get access to the leader_follower class.
TAO_LF_Strategy& | lf_strategy (void)
| Get access to the leader follower strategy.
TAO_Thread_Lane_Resources& | lane_resources (void)
| Get access to the thread lane resources.
int | run (ACE_Time_Value *tv, int perform_work, CORBA::Environment &ACE_TRY_ENV)
| Run the event loop.
void | shutdown (CORBA::Boolean wait_for_completion, CORBA::Environment &ACE_TRY_ENV)
| End the event loop.
int | has_shutdown (void)
| Get the shutdown flag value.
void | destroy (CORBA::Environment &ACE_TRY_ENV)
| Shutdown the ORB and free resources.
void | check_shutdown (CORBA::Environment &ACE_TRY_ENV)
| Check if ORB has shutdown. If it has, throw an exception.
int | thread_per_connection_timeout (ACE_Time_Value &timeout) const
| Returns the <timeout> value used by the server threads to poll the shutdown flag. If the return value is zero then the server threads block forever.
TAO_Stub* | create_stub_object (TAO_MProfile &mprofile, const char *type_id, CORBA::PolicyList *policy_list, CORBA::Environment &ACE_TRY_ENV)
| Makes sure that the ORB is open and then creates a TAO_Stub based on the endpoint.
TAO_Stub* | create_stub (const char *repository_id, const TAO_MProfile &profiles, CORBA::Environment &ACE_TRY_ENV)
| Factory method that create the "right" Stub depending on wheather RTCORBA is loaded or not. The factory used to create the stub, is loaded at ORB initialization, and its type depends on the fact that RTCORBA is being used or not.
void | establish_components (TAO_MProfile &mp, CORBA::PolicyList *policy_list, CORBA::Environment &ACE_TRY_ENV)
| Give each registered IOR interceptor the opportunity to add tagged components to profiles of each created servant.
CORBA::Object_ptr | create_object (TAO_Stub *the_stub)
| Create a new object, use the adapter registry to create a collocated object, if not possible then create a regular object.
const char* | orbid (void) const
| Return ORBid string.
CORBA::Object_ptr | resolve_typecodefactory (CORBA::Environment &ACE_TRY_ENV)
| Resolve the TypeCodeFactory DLL.
CORBA::Object_ptr | resolve_dynanyfactory (CORBA::Environment &ACE_TRY_ENV)
| Resolve the Dynamic Any Factory.
CORBA::Object_ptr | resolve_ior_manipulation (CORBA::Environment&)
| Resolve the IOR Manipulation reference for this ORB.
CORBA::Object_ptr | resolve_ior_table (CORBA::Environment&)
| Resolve the IOR Table reference for this ORB.
CORBA::Object_ptr | resolve_rir (const char *name, CORBA::Environment &)
| Resolve an initial reference via the -ORBInitRef and.
CORBA::Object_ptr | resolve_rt_orb (CORBA::Environment &ACE_TRY_ENV)
| Resolve the RT ORB reference for this ORB.
CORBA::Object_ptr | resolve_rt_current (CORBA::Environment &ACE_TRY_ENV)
| Resolve the RT Current flyweight for this ORB.
CORBA_ORB_ObjectIdList_ptr | list_initial_references (CORBA::Environment &)
| List all the service known by the ORB.
CORBA::ULong | _incr_refcnt (void)
| Reference counting...
CORBA::ULong | _decr_refcnt (void)
int | register_handle (ACE_HANDLE handle)
| Register the handle of an open connection with the ORB Core handle set. This handle set will be used to explicitly remove corresponding event handlers from the reactor.
int | remove_handle (ACE_HANDLE handle)
| Remove <handle> from the ORB Core's handle set so that it isn't included in the set that is passed to the reactor upon ORB destruction.
int | parse_bidir_policy (CORBA::Policy_ptr policy, CORBA::Environment &ACE_TRY_ENV)
| Call the bidir_giop library to parse the policy.
CORBA::Boolean | bidir_giop_policy (void)
| Set and Get methods to indicate whether a BiDir IIOP policy has been set in the POA. Note: At present, the value will be true even if one of the POA's is set with the Bi Dir GIOP policy.
void | bidir_giop_policy (CORBA::Boolean)
TAO_Object_Ref_Table& | object_ref_table (void)
| Return the table that maps object key/name to de-stringified object reference. It is needed for supporting local objects in the resolve_initial_references() mechanism.
TAO_Flushing_Strategy* | flushing_strategy (void)
| Return the flushing strategy. More...
CORBA::Object_ptr | poa_current (void)
void | poa_current (CORBA::Object_ptr poa_current)
Default Code Set Translators
Get the default codeset translators. In most configurations these are just <nil> objects, but they can be set to something different if the native character sets are not ISO8869 (aka Latin/1, UTF-8) and UNICODE (aka UTF-16). Note: This is just note on how the translator database coule be implemented: use the Service Configurator to load the translator, and then use the CodesetId (an unsigned long) to translate the character set code into the Service Object name. The default resource factory could parse command line options like: -ORBcharcodeset 0x00010001=ISO8859 -ORBcharcodeset 0x10020417=IBM1047 -ORBwcharcodeset 0x00010106=ISOIEC10646 that would let the user experiment with different translators and plug them in on demand. We should also think about how translators will report conversion failures and how to simplify the implementation of char translators (it would seem like just a couple of arrays are needed, maybe the arrays should be dynamically loaded and the implementation would remain constant? Just a thought.
ACE_Char_Codeset_Translator* | from_iso8859 (void) const
| Convert from ISO8859 to the native character set.
ACE_Char_Codeset_Translator* | to_iso8859 (void) const
| Convert from the native character set to ISO8859.
ACE_WChar_Codeset_Translator* | from_unicode (void) const
| Convert from UNICODE to the native wide character set.
ACE_WChar_Codeset_Translator* | to_unicode (void) const
| Convert from the native wide character set to UNICODE.
void | optimize_collocation_objects (CORBA::Boolean opt)
CORBA::Boolean | optimize_collocation_objects (void) const
void | use_global_collocation (CORBA::Boolean opt)
CORBA::Boolean | use_global_collocation (void) const
CORBA::ULong | get_collocation_strategy (void) const
Access to Factories
These factories are not thread-specific, and are presented here in order to have one place to get useful information. Often, the instances to which the return pointers are stored in the Service Repository.
TAO_Resource_Factory* | resource_factory (void)
| Returns pointer to the resource factory.
TAO_Client_Strategy_Factory* | client_factory (void)
| Returns pointer to the client factory.
TAO_Server_Strategy_Factory* | server_factory (void)
| Returns pointer to the server factory.
TAO_Protocols_Hooks* | protocols_hooks (void)
| Returns pointer to the Protocol_Hooks.
TAO_Thread_Lane_Resources_Manager& | thread_lane_resources_manager (void)
| Returns a pointer to the Thread Lane Resources Manager.
TAO_Collocation_Resolver& | collocation_resolver (void)
| Returns a pointer to the Collocation Resolver.
TAO_Stub_Factory* | stub_factory (void)
| Returns a pointer to the Stub factory.
TAO_Endpoint_Selector_Factory* | endpoint_selector_factory (void)
| Returns a pointer to the endpoint selector factory.
CORBA_Environment* | default_environment (void) const
void | default_environment (CORBA_Environment*)
CORBA::Object_ptr | implrepo_service (void)
void | implrepo_service (const CORBA::Object_ptr ir)
ORB Core Service Hooks
These methods would represent the hooks in the ORB Core. These hooks would be used to call back on the services or other features that are dynamically loaded.
CORBA::Boolean | service_profile_selection (TAO_MProfile &mprofile, TAO_Profile *&profile)
CORBA::Boolean | service_profile_reselection (TAO_Stub *stub, TAO_Profile *&profile)
void | reset_service_profile_flags (void)
| Reset the flags in the loaded services.
CORBA::Boolean | object_is_nil (CORBA::Object_ptr object)
void | service_context_list (TAO_Stub *stub, TAO_Service_Context &service_context, CORBA::Boolean retstart, CORBA::Environment &ACE_TRY_ENV)
| Call the service layers with the Service Context to check whether they would like to add something to the list.
TAO_Fault_Tolerance_Service& | fault_tolerance_service (void)
| Return a reference to the Fault Tolerant service object.
int | service_raise_comm_failure (TAO_GIOP_Invocation *invoke, TAO_Profile *profile, CORBA::Environment &ACE_TRY_ENV)
| Raise a comm failure exception if a service is not loaded, else delegate to the service to see what the service has to do for this case.
int | service_raise_transient_failure (TAO_GIOP_Invocation *invoke, TAO_Profile *profile, CORBA::Environment &ACE_TRY_ENV)
| Raise a transient failure exception if a service is not loaded, else delegate to the service to see what the service has to do for this case.
void | services_log_msg_rcv (TAO_Message_State_Factory &state)
| Hook for logging of messages by the Logging & Recovery service of an FT service.
void | services_log_msg_pre_upcall (TAO_ServerRequest &req)
| Hook for logging of messages by the Logging & Recovery service of an FT service.
void | services_log_msg_post_upcall (TAO_ServerRequest &req)
| Hook for logging of messages by the Logging & Recovery service of an FT service.
Portable Interceptor Related Methods
These are support methods for interceptor registration and interceptor set (an array) access, in addition to PICurrent access.
TAO_PICurrent* | pi_current (void)
| Return a pointer to the cached TAO_PICurrent object.
void | pi_current (TAO_PICurrent *current)
| Set the pointer to the cached TAO_PICurrent object.
void | add_interceptor ( PortableInterceptor::ClientRequestInterceptor_ptr interceptor, CORBA_Environment &ACE_TRY_ENV)
| Register a client request interceptor.
void | add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr interceptor, CORBA_Environment &ACE_TRY_ENV)
| Register a server request interceptor.
TAO_ClientRequestInterceptor_List::TYPE& | client_request_interceptors (void)
| Return the array of client-side interceptors specific to this ORB.
TAO_ServerRequestInterceptor_List::TYPE& | server_request_interceptors (void)
| Return the array of server-side interceptors specific to this ORB.
void | add_interceptor ( PortableInterceptor::IORInterceptor_ptr interceptor, CORBA_Environment &ACE_TRY_ENV)
| Register an IOR interceptor.
TAO_IORInterceptor_List::TYPE& | ior_interceptors (void)
| Return the array of IOR interceptors specific to this ORB.
## Public Attributes
TAO_Protocols_Hooks* | protocols_hooks_
| Handle to the factory for protocols_hooks_..
## Static Public Methods
void | set_thread_lane_resources_manager_factory (const char *thread_lane_resources_manager_factory_name)
| Sets the value of TAO_ORB_Core::thread_lane_resources_manager_factory_name_.
void | set_collocation_resolver (const char *collocation_resolver_name)
| Sets the value of TAO_ORB_Core::collocation_resolver_name_.
void | set_stub_factory (const char *stub_factory_name)
| Sets the value of TAO_ORB_Core::stub_factory_name_.
void | set_resource_factory (const char *resource_factory_name)
| Sets the value of TAO_ORB_Core::resource_factory_.
void | set_protocols_hooks (const char *protocols_hooks_name)
| Sets the value of TAO_ORB_Core::protocols_hooks_.
void | set_endpoint_selector_factory ( const char *endpoint_selector_factory_name)
| Sets the value of TAO_ORB_Core::endpoint_selector_factory_.
void | set_poa_factory ( const char *poa_factory_name, const char *poa_factory_directive)
| Sets the name of the POA factory and the dynamic service configurator directive to load it if needed.
void | dynamic_adapter_name (const char *name)
| Sets the value of TAO_ORB_Core::dynamic_adapter_name_.
const char* | dynamic_adapter_name (void)
| Gets the value of TAO_ORB_Core::dynamic_adapter_name_.
void | ifr_client_adapter_name (const char *name)
| Sets the value of TAO_ORB_Core::ifr_client_adapter_name_.
const char* | ifr_client_adapter_name (void)
| Gets the value of TAO_ORB_Core::ifr_client_adapter_name_.
void | typecodefactory_adapter_name (const char *name)
| Sets the value of TAO_ORB_Core::typecodefactory_adapter_name_.
const char* | typecodefactory_adapter_name (void)
| Gets the value of TAO_ORB_Core::typecodefactory_adapter_name_.
void | set_timeout_hook (Timeout_Hook hook)
void | set_sync_scope_hook (Sync_Scope_Hook hook)
## Static Public Attributes
Sync_Scope_Hook | sync_scope_hook_ = 0
const char* | protocols_hooks_name_ = "Protocols_Hooks"
## Protected Types
typedef ACE_Hash_Map_Manager< ACE_CString,ACE_CString,ACE_Null_Mutex> | InitRefMap
## Protected Methods
| ~TAO_ORB_Core (void)
| Destructor is protected since the ORB Core is a reference counted object.
int | init (int &argc, char **argv, CORBA::Environment &ACE_TRY_ENV)
| Initialize the guts of the ORB Core. It is intended that this be called by <CORBA::ORB_init>.
int | fini (void)
| Final termination hook, typically called by CORBA::ORB's destructor.
ACE_Data_Block* | create_data_block_i (size_t size, ACE_Allocator *buffer_allocator, ACE_Allocator *dblock_allocator, ACE_Lock *lock)
| Routine that creates a ACE_Data_Block given the lock and allocators.
void | resolve_typecodefactory_i (CORBA::Environment &ACE_TRY_ENV)
| Obtain and cache the dynamic any factory object reference.
void | resolve_dynanyfactory_i (CORBA::Environment &ACE_TRY_ENV)
| Obtain and cache the dynamic any factory object reference.
void | resolve_iormanipulation_i (CORBA::Environment &ACE_TRY_ENV)
| Obtain and cache the IORManipulation factory object reference.
int | bidirectional_giop_init (CORBA::Environment &ACE_TRY_ENV)
| Search the Dynamic service list for BiDirectional options that can be dynamically loaded.
void | services_callbacks_init (void)
| Search the Dynamic service list for well known services that has callbacks which can be dynamically loaded.
void | destroy_interceptors (CORBA::Environment &ACE_TRY_ENV)
| Helper method that invokes Interceptor::destroy() on all registered interceptors when ORB::destroy() is called.
| ACE_TSS_TYPE (TAO_ORB_Core_TSS_Resources) tss_resources_
| This is where the tss resources for this ORB are stored.
ACE_Allocator* | input_cdr_dblock_allocator_i (TAO_ORB_Core_TSS_Resources *)
ACE_Allocator* | input_cdr_buffer_allocator_i (TAO_ORB_Core_TSS_Resources *)
ACE_Allocator* | input_cdr_msgblock_allocator_i (TAO_ORB_Core_TSS_Resources *)
## Protected Attributes
TAO_SYNCH_MUTEX | lock_
| Synchronize internal state...
TAO_Connector_Registry* | connector_registry_
| The connector registry which all active connectors must register themselves with.
TAO_Thread_Lane_Resources_Manager* | thread_lane_resources_manager_
TAO_Collocation_Resolver* | collocation_resolver_
TAO_Stub_Factory* | stub_factory_
TAO_ProtocolFactorySet* | protocol_factories_
| Pointer to the list of protocol loaded into this ORB instance.
CORBA::Object_ptr | implrepo_service_
| The cached IOR for the Implementation Repository.
int | use_implrepo_
| Flag for whether the implrepo support is enabled or not.
CORBA::Object_ptr | typecode_factory_
| The cached IOR for the TypeCodeFactory DLL.
CORBA::Object_ptr | dynany_factory_
| The cached object reference for the DynAnyFactory.
CORBA::Object_ptr | ior_manip_factory_
| The cached object reference for the IORManipulataion.
CORBA::Object_ptr | ior_table_
| The cached object reference for the IORTable.
CORBA::Object_var | rt_orb_
| The cached object reference for the RTCORBA::RTORB.
CORBA::Object_var | rt_current_
| The cached object reference for the RTCORBA::RTCurrent interface.
CORBA::ORB_var | orb_
CORBA::Object_var | root_poa_
| Object reference to the root POA. It will eventually be the object reference returned by calls to CORBA::ORB::resolve_initial_references ("RootPOA").
TAO_ORB_Parameters | orb_params_
| Parameters used by the ORB.
InitRefMap | init_ref_map_
TAO_Object_Ref_Table | object_ref_table_
| Table that maps object key/name to (de-stringified) object reference. It is needed for supporting local objects in the resolve_initial_references() mechanism.
char* | orbid_
| The ORBid for this ORB.
TAO_Resource_Factory* | resource_factory_
| Handle to the factory for resource information..
TAO_Client_Strategy_Factory* | client_factory_
| Handle to the factory for Client-side strategies.
TAO_Server_Strategy_Factory* | server_factory_
| Handle to the factory for Server-side strategies.
CORBA::Boolean | opt_for_collocation_
| TRUE if we want to take advantage of collocation optimization in this ORB.
CORBA::Boolean | use_global_collocation_
| TRUE if we want to consider all ORBs in this address space collocated.
CORBA::ULong | collocation_strategy_
| Default collocation policy. This should never be ORB_CONTROL.
CORBA::Object_var | poa_current_
TAO_Adapter_Registry | adapter_registry_
| The list of Adapters used in this ORB.
TAO_Adapter* | poa_adapter_
| An optimization for the POA.
ACE_Thread_Manager | tm_
| The Thread Manager.
ACE_Lock_Adapter<TAO_SYNCH_MUTEX> | data_block_lock_
| The data block reference counts are locked using this mutex.
TAO_Cleanup_Func_Registry | tss_cleanup_funcs_
| TSS Object cleanup functions. These correspond to the TSS objects stored in TAO's TSS resources.
int | use_tss_resources_
| If 1 then this ORB uses thread-specific resources.
TAO_ORB_Core_TSS_Resources | orb_resources_
| If the resources are per-ORB (as opposed to per-ORB-per-thread) then they are stored here...
int | has_shutdown_
| Flag which denotes that the ORB has been shutdown.
TAO_Endpoint_Selector_Factory* | endpoint_selector_factory_
TAO_Transport_Sync_Strategy* | transport_sync_strategy_
| This strategy will sync with the transport.
CORBA::ULong | refcount_
| Number of outstanding references to this object.
TAO_PolicyFactory_Registry | policy_factory_registry_
| Registry containing all registered policy factories.
TAO_PICurrent* | pi_current_
| Cached pointer/reference to the PICurrent object. More...
TAO_ClientRequestInterceptor_List | client_request_interceptors_
| Client request interceptor registry.
TAO_ServerRequestInterceptor_List | server_request_interceptors_
| Server request interceptor registry.
TAO_IORInterceptor_List | ior_interceptors_
| IOR interceptor registry.
TAO_Parser_Registry | parser_registry_
| The IOR parser registry.
TAO_BiDir_Adapter* | bidir_adapter_
| BiDirectional GIOP factory.
CORBA::Boolean | bidir_giop_policy_
| Bir Dir GIOP policy value.
TAO_Flushing_Strategy* | flushing_strategy_
| Hold the flushing strategy.
ACE_Allocator* | message_block_dblock_allocator_
ACE_Allocator* | message_block_buffer_allocator_
ACE_Allocator* | message_block_msgblock_allocator_
Service Level Hooks
TAO_Fault_Tolerance_Service | ft_service_
| Fault Tolerant service hook.
ACE_Char_Codeset_Translator* | from_iso8859_
ACE_Char_Codeset_Translator* | to_iso8859_
ACE_WChar_Codeset_Translator* | from_unicode_
ACE_WChar_Codeset_Translator* | to_unicode_
int | thread_per_connection_use_timeout_
ACE_Time_Value | thread_per_connection_timeout_
## Static Protected Attributes
const char* | endpoint_selector_factory_name_ = "Default_Endpoint_Selector_Factory"
const char* | thread_lane_resources_manager_factory_name_ = "Default_Thread_Lane_Resources_Manager_Factory"
const char* | collocation_resolver_name_ = "Default_Collocation_Resolver"
const char* | stub_factory_name_ = "Default_Stub_Factory"
const char* | resource_factory_name_ = "Resource_Factory"
const char* | dynamic_adapter_name_ = "Dynamic_Adapter"
const char* | ifr_client_adapter_name_ = "IFR_Client_Adapter"
const char* | typecodefactory_adapter_name_ = "TypeCodeFactory_Adapter"
const char* | poa_factory_name_ = "TAO_POA"
const char* | poa_factory_directive_ = "dynamic TAO_POA Service_Object * TAO_PortableServer:_make_TAO_Object_Adapter_Factory()"
## Private Methods
void | resolve_ior_table_i (CORBA::Environment &ACE_TRY_ENV)
| Obtain and cache the dynamic any factory object reference.
CORBA::Object_ptr | create_collocated_object (TAO_Stub *the_stub, TAO_ORB_Core *other_orb, const TAO_MProfile &mprofile)
| Try to create a new collocated object, using <other_orb> as the target ORB. If not possible return 0.
| TAO_ORB_Core (const TAO_ORB_Core&)
void | operator= (const TAO_ORB_Core&)
## Static Private Attributes
Timeout_Hook | timeout_hook_ = 0
| The hook to be set for the RelativeRoundtripTimeoutPolicy.
## Friends
class | TAO_ORB_Core_Auto_Ptr
class | TAO_ORB_Table
CORBA::ORB_ptr | CORBA::ORB_init (int &, char *argv[], const char *, CORBA_Environment &)

## Detailed Description

Encapsulates the state of an ORB.

This is the implementation class for the CORBA::ORB interface. The class also encapsulates the access to the ORB resources and its state.

Some resources can be TSS or global, those resources are always accessed through a TSS interface, but are allocated using the Resource_Factory. If the resource is really global the Resource_Factory will simply return a pointer to the global instance.

## Member Typedef Documentation

typedef ACE_Hash_Map_Manager<ACE_CString,ACE_CString,ACE_Null_Mutex> TAO_ORB_Core::InitRefMap`[protected]`

typedef void (* TAO_ORB_Core::Sync_Scope_Hook)(TAO_ORB_Core *, TAO_Stub *, int&, int&)

typedef void(* TAO_ORB_Core::Timeout_Hook)(TAO_ORB_Core *,TAO_Stub *,int &,ACE_Time_Value &)

| Define the Timeout_Hook signature.

## Member Enumeration Documentation

anonymous enum

  | Enumeration values:
  ORB_CONTROL | Indicate object should refer to ORB for either one of the following strategies.
  THRU_POA | Collocated calls will go thru POA.
  DIRECT | Collocated calls invoke operation on Servant directly.

## Constructor & Destructor Documentation

TAO_ORB_Core::TAO_ORB_Core ( | const char * id )

| Constructor.

TAO_ORB_Core::~TAO_ORB_Core ( | void )`[protected]`

| Destructor is protected since the ORB Core is a reference counted object.

TAO_ORB_Core::TAO_ORB_Core ( | const TAO_ORB_Core & )`[private]`

## Member Function Documentation

TAO_ORB_Core::ACE_TSS_TYPE ( | TAO_ORB_Core_TSS_Resources )`[protected]`

| This is where the tss resources for this ORB are stored.

ACE_INLINE CORBA::ULong TAO_ORB_Core::_decr_refcnt ( | void )

ACE_INLINE CORBA::ULong TAO_ORB_Core::_incr_refcnt ( | void )

| Reference counting...

ACE_INLINE TAO_Adapter_Registry * TAO_ORB_Core::adapter_registry ( | void )

| Get the adapter registry.

ACE_INLINE void TAO_ORB_Core::add_interceptor ( | PortableInterceptor::IORInterceptor_ptr interceptor,
| CORBA_Environment & ACE_TRY_ENV )

| Register an IOR interceptor.

void TAO_ORB_Core::add_interceptor ( | PortableInterceptor::ServerRequestInterceptor_ptr interceptor,
| CORBA_Environment & ACE_TRY_ENV )

| Register a server request interceptor.

void TAO_ORB_Core::add_interceptor ( | PortableInterceptor::ClientRequestInterceptor_ptr interceptor,
| CORBA_Environment & ACE_TRY_ENV )

| Register a client request interceptor.

ACE_INLINE int TAO_ORB_Core::add_tss_cleanup_func ( | ACE_CLEANUP_FUNC cleanup,
| size_t & slot_id )

| Register a TSS cleanup function. The slot ID for the corresponding ORB core TSS resource is returned by the reference argument. This method return 0 on success, and -1 on failure.

ACE_INLINE void TAO_ORB_Core::bidir_giop_policy ( | CORBA::Boolean val )

ACE_INLINE CORBA::Boolean TAO_ORB_Core::bidir_giop_policy ( | void )

| Set and Get methods to indicate whether a BiDir IIOP policy has been set in the POA. Note: At present, the value will be true even if one of the POA's is set with the Bi Dir GIOP policy.

int TAO_ORB_Core::bidirectional_giop_init ( | CORBA::Environment & ACE_TRY_ENV )`[protected]`

| Search the Dynamic service list for BiDirectional options that can be dynamically loaded.

void TAO_ORB_Core::call_sync_scope_hook ( | TAO_Stub * stub,
| int & has_synchronization,
| int & scope )

void TAO_ORB_Core::call_timeout_hook ( | TAO_Stub * stub,
| int & has_timeout,
| ACE_Time_Value & time_value )

  | Invoke the timeout hook if present. The timeout hook is used to determine if the timeout policy is set and with what value. If the ORB is compiled without support for Messaging this feature does not take effect Parameters:
  has_timeout | returns 0 if there is no timeout policy set.
  time_value | returns the timeout value in effect for the object, thread and current ORB.

void TAO_ORB_Core::check_shutdown ( | CORBA::Environment & ACE_TRY_ENV )

| Check if ORB has shutdown. If it has, throw an exception.

TAO_Client_Strategy_Factory * TAO_ORB_Core::client_factory ( | void )

| Returns pointer to the client factory.

TAO_ClientRequestInterceptor_List::TYPE & TAO_ORB_Core::client_request_interceptors ( | void )

| Return the array of client-side interceptors specific to this ORB.

TAO_Collocation_Resolver & TAO_ORB_Core::collocation_resolver ( | void )

| Returns a pointer to the Collocation Resolver.

int TAO_ORB_Core::collocation_strategy ( | CORBA::Object_ptr object,
| CORBA::Environment & ACE_TRY_ENV )`[static]`

| This method returns the right collocation strategy, if any, to be used to perform a method invocation on the given object. Note: No-Collocation is a special case of collocation.

ACE_INLINE TAO_Connector_Registry * TAO_ORB_Core::connector_registry ( | void )

| Get the connector registry.

CORBA::Object_ptr TAO_ORB_Core::create_collocated_object ( | TAO_Stub * the_stub,
| TAO_ORB_Core * other_orb,
| const TAO_MProfile & mprofile )`[private]`

| Try to create a new collocated object, using <other_orb> as the target ORB. If not possible return 0.

ACE_Data_Block * TAO_ORB_Core::create_data_block_i ( | size_t size,
| ACE_Allocator * buffer_allocator,
| ACE_Allocator * dblock_allocator,
| ACE_Lock * lock )`[protected]`

| Routine that creates a ACE_Data_Block given the lock and allocators.

ACE_Data_Block * TAO_ORB_Core::create_input_cdr_data_block ( | size_t size )

| The Message Blocks used for input CDRs must have appropiate locking strategies.

CORBA::Object_ptr TAO_ORB_Core::create_object ( | TAO_Stub * the_stub )

| Create a new object, use the adapter registry to create a collocated object, if not possible then create a regular object.

TAO_Stub * TAO_ORB_Core::create_stub ( | const char * repository_id,
| const TAO_MProfile & profiles,
| CORBA::Environment & ACE_TRY_ENV )

| Factory method that create the "right" Stub depending on wheather RTCORBA is loaded or not. The factory used to create the stub, is loaded at ORB initialization, and its type depends on the fact that RTCORBA is being used or not.

TAO_Stub * TAO_ORB_Core::create_stub_object ( | TAO_MProfile & mprofile,
| const char * type_id,
| CORBA::PolicyList * policy_list,
| CORBA::Environment & ACE_TRY_ENV )

| Makes sure that the ORB is open and then creates a TAO_Stub based on the endpoint.

ACE_Data_Block * TAO_ORB_Core::data_block_for_message_block ( | size_t size )

| The data blocks returned have memeory from the global pool. Will not get anything from the TSS even if it is available.

ACE_INLINE void TAO_ORB_Core::default_environment ( | CORBA_Environment * env )

ACE_INLINE CORBA_Environment * TAO_ORB_Core::default_environment ( | void ) const

| The thread has a default environment to simplify porting between platforms that support native C++ exceptions and those that don't. This is a TSS resource (always), but with a twist: if the user creates a new environment the old one is "pushed" (actually the new one remembers it), eventually the new environment destructor pops itself from the stack and we recover the old environment. This means that if the user create a new environment and somebody calls a function using the default one the exception will still be received in the environment created by the user. The only drawback is that environments life time must nest properly, this shouldn't be a problem because environments are usually created on the stack, but, the spec allows their creation on the heap and/or as class members; we need to investigate the tradeoffs and take a decision.

void TAO_ORB_Core::destroy ( | CORBA::Environment & ACE_TRY_ENV )

| Shutdown the ORB and free resources.

void TAO_ORB_Core::destroy_interceptors ( | CORBA::Environment & ACE_TRY_ENV )`[protected]`

| Helper method that invokes Interceptor::destroy() on all registered interceptors when ORB::destroy() is called.

const char * TAO_ORB_Core::dynamic_adapter_name ( | void )`[static]`

| Gets the value of TAO_ORB_Core::dynamic_adapter_name_.

void TAO_ORB_Core::dynamic_adapter_name ( | const char * name )`[static]`

| Sets the value of TAO_ORB_Core::dynamic_adapter_name_.

TAO_Endpoint_Selector_Factory * TAO_ORB_Core::endpoint_selector_factory ( | void )

| Returns a pointer to the endpoint selector factory.

void TAO_ORB_Core::establish_components ( | TAO_MProfile & mp,
| CORBA::PolicyList * policy_list,
| CORBA::Environment & ACE_TRY_ENV )

| Give each registered IOR interceptor the opportunity to add tagged components to profiles of each created servant.

ACE_INLINE TAO_Fault_Tolerance_Service & TAO_ORB_Core::fault_tolerance_service ( | void )

| Return a reference to the Fault Tolerant service object.

int TAO_ORB_Core::fini ( | void )`[protected]`

| Final termination hook, typically called by CORBA::ORB's destructor.

ACE_INLINE TAO_Flushing_Strategy * TAO_ORB_Core::flushing_strategy ( | void )

| Return the flushing strategy. The flushing strategy is created by the resource factory, and it is used by the ORB to control the mechanism used to flush the outgoing data queues. The flushing strategies are stateless, therefore, there is only one per ORB.

ACE_INLINE ACE_Char_Codeset_Translator * TAO_ORB_Core::from_iso8859 ( | void ) const

| Convert from ISO8859 to the native character set.

ACE_INLINE ACE_WChar_Codeset_Translator * TAO_ORB_Core::from_unicode ( | void ) const

| Convert from UNICODE to the native wide character set.

ACE_INLINE CORBA::ULong TAO_ORB_Core::get_collocation_strategy ( | void ) const

TAO_Protocols_Hooks * TAO_ORB_Core::get_protocols_hooks ( | CORBA::Environment & ACE_TRY_ENV )

| Gets the value of TAO_ORB_Core::protocols_hooks__.

TAO_Sync_Strategy & TAO_ORB_Core::get_sync_strategy ( | TAO_Stub * stub,
| int & scope )

ACE_INLINE void * TAO_ORB_Core::get_tss_resource ( | size_t slot_id )

| Obtain the TSS resource in the given slot.

ACE_INLINE TAO_ORB_Core_TSS_Resources * TAO_ORB_Core::get_tss_resources ( | void )

| Obtain the TSS resources of this orb.

ACE_INLINE int TAO_ORB_Core::has_shutdown ( | void )

| Get the shutdown flag value.

const char * TAO_ORB_Core::ifr_client_adapter_name ( | void )`[static]`

| Gets the value of TAO_ORB_Core::ifr_client_adapter_name_.

void TAO_ORB_Core::ifr_client_adapter_name ( | const char * name )`[static]`

| Sets the value of TAO_ORB_Core::ifr_client_adapter_name_.

ACE_INLINE void TAO_ORB_Core::implrepo_service ( | const CORBA::Object_ptr ir )

CORBA::Object_ptr TAO_ORB_Core::implrepo_service ( | void )

int TAO_ORB_Core::inherit_from_parent_thread ( | TAO_ORB_Core_TSS_Resources * tss_resources )

| A spawned thread needs to inherit some properties/objects from the spawning thread in order to serve requests. Return 0 if it successfully inherits from the parent, -1 otherwise.

int TAO_ORB_Core::init ( | int & argc,
| char ** argv,
| CORBA::Environment & ACE_TRY_ENV )`[protected]`

| Initialize the guts of the ORB Core. It is intended that this be called by <CORBA::ORB_init>.

ACE_Allocator * TAO_ORB_Core::input_cdr_buffer_allocator ( | void )

| This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams.

ACE_Allocator * TAO_ORB_Core::input_cdr_buffer_allocator_i ( | TAO_ORB_Core_TSS_Resources * tss )`[protected]`

ACE_Allocator * TAO_ORB_Core::input_cdr_dblock_allocator ( | void )

| This allocator maybe TSS or global, may or may not have locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* / CDR streams.

ACE_Allocator * TAO_ORB_Core::input_cdr_dblock_allocator_i ( | TAO_ORB_Core_TSS_Resources * tss )`[protected]`

ACE_Allocator * TAO_ORB_Core::input_cdr_msgblock_allocator ( | void )

| This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams.

ACE_Allocator * TAO_ORB_Core::input_cdr_msgblock_allocator_i ( | TAO_ORB_Core_TSS_Resources * tss )`[protected]`

ACE_INLINE TAO_IORInterceptor_List::TYPE & TAO_ORB_Core::ior_interceptors ( | void )

| Return the array of IOR interceptors specific to this ORB.

int TAO_ORB_Core::is_collocated ( | const TAO_MProfile & mprofile )

| See if we have a collocated address, if yes, return the POA associated with the address.

TAO_Thread_Lane_Resources & TAO_ORB_Core::lane_resources ( | void )

| Get access to the thread lane resources.

TAO_Leader_Follower & TAO_ORB_Core::leader_follower ( | void )

| Get access to the leader_follower class.

TAO_LF_Strategy & TAO_ORB_Core::lf_strategy ( | void )

| Get access to the leader follower strategy.

CORBA_ORB_ObjectIdList_ptr TAO_ORB_Core::list_initial_references ( | CORBA::Environment & ACE_TRY_ENV )

| List all the service known by the ORB.

ACE_INLINE ACE_Lock * TAO_ORB_Core::locking_strategy ( | void )

| Return the locking strategy used for the data blocks.

ACE_Allocator * TAO_ORB_Core::message_block_buffer_allocator ( | void )

| This allocator is global, may or may not have locks. It is intended for ACE_Data_Blocks used in message blocks or CDR streams that have no relation with the life of threads, something like used in a class on a per connection basis.

ACE_Allocator * TAO_ORB_Core::message_block_dblock_allocator ( | void )

| This allocator is global, may or may not have locks. It is intended for ACE_Data_Blocks used in message blocks or CDR streams that have no relation with the life of threads, something like used in a class on a per connection basis.

ACE_Allocator * TAO_ORB_Core::message_block_msgblock_allocator ( | void )

| This allocator is global, may or may not have locks. It is intended for ACE_Data_Blocks used in message blocks or CDR streams that have no relation with the life of threads, something like used in a class on a per connection basis.

ACE_INLINE CORBA::Boolean TAO_ORB_Core::object_is_nil ( | CORBA::Object_ptr obj )

| The loaded service would determineif the CORBA::Object_ptr is actually nill or not. This would be useful to accomodate new enhanced definitions as defined by the service specification.

ACE_INLINE TAO_Object_Ref_Table & TAO_ORB_Core::object_ref_table ( | void )

| Return the table that maps object key/name to de-stringified object reference. It is needed for supporting local objects in the resolve_initial_references() mechanism.

void TAO_ORB_Core::operator= ( | const TAO_ORB_Core & )`[private]`

ACE_INLINE CORBA::Boolean TAO_ORB_Core::optimize_collocation_objects ( | void ) const

ACE_INLINE void TAO_ORB_Core::optimize_collocation_objects ( | CORBA::Boolean opt )

ACE_INLINE CORBA::ORB_ptr TAO_ORB_Core::orb ( | void )

| Get pointer to the ORB.

ACE_INLINE TAO_ORB_Parameters * TAO_ORB_Core::orb_params ( | void )

| Accessor for the ORB parameters.

ACE_INLINE const char * TAO_ORB_Core::orbid ( | void ) const

| Return ORBid string.

ACE_Allocator * TAO_ORB_Core::output_cdr_buffer_allocator ( | void )

| This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams.

ACE_Allocator * TAO_ORB_Core::output_cdr_dblock_allocator ( | void )

| This allocator is always TSS and has no locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* CDR streams.

ACE_Allocator * TAO_ORB_Core::output_cdr_msgblock_allocator ( | void )

| This allocator is always TSS and has no locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* CDR streams.

int TAO_ORB_Core::parse_bidir_policy ( | CORBA::Policy_ptr policy,
| CORBA::Environment & ACE_TRY_ENV )

| Call the bidir_giop library to parse the policy.

ACE_INLINE TAO_Parser_Registry * TAO_ORB_Core::parser_registry ( | void )

| Get the IOR parser registry.

void TAO_ORB_Core::pi_current ( | TAO_PICurrent * current )

| Set the pointer to the cached TAO_PICurrent object.

TAO_PICurrent * TAO_ORB_Core::pi_current ( | void )

| Return a pointer to the cached TAO_PICurrent object.

TAO_Adapter * TAO_ORB_Core::poa_adapter ( | void )

| Get the adapter named "RootPOA" and cache the result, this is an optimization for the POA.

ACE_INLINE void TAO_ORB_Core::poa_current ( | CORBA::Object_ptr current )

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::poa_current ( | void )

| Todo: In the future this hook should change, instead of hardcoding the object we should add a "Resolver" to the ORB, so the "POACurrent" object returns a per-ORB object. Similarly, each ORB should implement the TSS pattern to put the POA_Current_Impl in a void* slot. The current approach *does* decouple the POA from the ORB, but it cannot add new adapters or other components transparently.

ACE_INLINE TAO_PolicyFactory_Registry * TAO_ORB_Core::policy_factory_registry ( | void )

| Return pointer to the policy factory registry associated with this ORB core.

ACE_INLINE TAO_ProtocolFactorySet * TAO_ORB_Core::protocol_factories ( | void )

| Get the protocol factories.

TAO_Protocols_Hooks * TAO_ORB_Core::protocols_hooks ( | void )

| Returns pointer to the Protocol_Hooks.

ACE_Reactor * TAO_ORB_Core::reactor ( | void )

| Wrappers that forward the request to the concurrency strategy.

int TAO_ORB_Core::register_handle ( | ACE_HANDLE handle )

| Register the handle of an open connection with the ORB Core handle set. This handle set will be used to explicitly remove corresponding event handlers from the reactor.

int TAO_ORB_Core::remove_handle ( | ACE_HANDLE handle )

| Remove <handle> from the ORB Core's handle set so that it isn't included in the set that is passed to the reactor upon ORB destruction.

ACE_INLINE void TAO_ORB_Core::reset_service_profile_flags ( | void )

| Reset the flags in the loaded services.

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::resolve_dynanyfactory ( | CORBA::Environment & ACE_TRY_ENV )

| Resolve the Dynamic Any Factory.

void TAO_ORB_Core::resolve_dynanyfactory_i ( | CORBA::Environment & ACE_TRY_ENV )`[protected]`

| Obtain and cache the dynamic any factory object reference.

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::resolve_ior_manipulation ( | CORBA::Environment & ACE_TRY_ENV )

| Resolve the IOR Manipulation reference for this ORB.

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::resolve_ior_table ( | CORBA::Environment & ACE_TRY_ENV )

| Resolve the IOR Table reference for this ORB.

void TAO_ORB_Core::resolve_ior_table_i ( | CORBA::Environment & ACE_TRY_ENV )`[private]`

| Obtain and cache the dynamic any factory object reference.

void TAO_ORB_Core::resolve_iormanipulation_i ( | CORBA::Environment & ACE_TRY_ENV )`[protected]`

| Obtain and cache the IORManipulation factory object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_rir ( | const char * name,
| CORBA::Environment & ACE_TRY_ENV )

| Resolve an initial reference via the -ORBInitRef and.

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::resolve_rt_current ( | CORBA::Environment & ACE_TRY_ENV )

| Resolve the RT Current flyweight for this ORB.

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::resolve_rt_orb ( | CORBA::Environment & ACE_TRY_ENV )

| Resolve the RT ORB reference for this ORB.

ACE_INLINE CORBA::Object_ptr TAO_ORB_Core::resolve_typecodefactory ( | CORBA::Environment & ACE_TRY_ENV )

| Resolve the TypeCodeFactory DLL.

void TAO_ORB_Core::resolve_typecodefactory_i ( | CORBA::Environment & ACE_TRY_ENV )`[protected]`

| Obtain and cache the dynamic any factory object reference.

TAO_Resource_Factory * TAO_ORB_Core::resource_factory ( | void )

| Returns pointer to the resource factory.

CORBA::Object_ptr TAO_ORB_Core::root_poa ( | CORBA::Environment & ACE_TRY_ENV )

| Return the RootPOA, or try to load it if not initialized already.

int TAO_ORB_Core::run ( | ACE_Time_Value * tv,
| int perform_work,
| CORBA::Environment & ACE_TRY_ENV )

| Run the event loop.

TAO_Server_Strategy_Factory * TAO_ORB_Core::server_factory ( | void )

| Returns pointer to the server factory.

TAO_ServerRequestInterceptor_List::TYPE & TAO_ORB_Core::server_request_interceptors ( | void )

| Return the array of server-side interceptors specific to this ORB.

void TAO_ORB_Core::service_context_list ( | TAO_Stub * stub,
| TAO_Service_Context & service_context,
| CORBA::Boolean retstart,
| CORBA::Environment & ACE_TRY_ENV )

| Call the service layers with the Service Context to check whether they would like to add something to the list.

ACE_INLINE CORBA::Boolean TAO_ORB_Core::service_profile_reselection ( | TAO_Stub * stub,
| TAO_Profile *& profile )

| The loaded service in the ORB_Core would determine if the profile reselection is going to be made by the services or not. If the services do make the reselection they would return the selected profile through <profile>. The reselction is for the multi-profile IORS.

ACE_INLINE CORBA::Boolean TAO_ORB_Core::service_profile_selection ( | TAO_MProfile & mprofile,
| TAO_Profile *& profile )

| The loaded service in the ORB_Core would determine if the profile selection is going to be made by the services or not. If the services do make the selection they would return the selected profile through <profile>.

int TAO_ORB_Core::service_raise_comm_failure ( | TAO_GIOP_Invocation * invoke,
| TAO_Profile * profile,
| CORBA::Environment & ACE_TRY_ENV )

| Raise a comm failure exception if a service is not loaded, else delegate to the service to see what the service has to do for this case.

int TAO_ORB_Core::service_raise_transient_failure ( | TAO_GIOP_Invocation * invoke,
| TAO_Profile * profile,
| CORBA::Environment & ACE_TRY_ENV )

| Raise a transient failure exception if a service is not loaded, else delegate to the service to see what the service has to do for this case.

void TAO_ORB_Core::services_callbacks_init ( | void )`[protected]`

| Search the Dynamic service list for well known services that has callbacks which can be dynamically loaded.

ACE_INLINE void TAO_ORB_Core::services_log_msg_post_upcall ( | TAO_ServerRequest & req )

| Hook for logging of messages by the Logging & Recovery service of an FT service.

ACE_INLINE void TAO_ORB_Core::services_log_msg_pre_upcall ( | TAO_ServerRequest & req )

| Hook for logging of messages by the Logging & Recovery service of an FT service.

ACE_INLINE void TAO_ORB_Core::services_log_msg_rcv ( | TAO_Message_State_Factory & state )

| Hook for logging of messages by the Logging & Recovery service of an FT service.

void TAO_ORB_Core::set_collocation_resolver ( | const char * collocation_resolver_name )`[static]`

| Sets the value of TAO_ORB_Core::collocation_resolver_name_.

void TAO_ORB_Core::set_endpoint_selector_factory ( | const char * endpoint_selector_factory_name )`[static]`

| Sets the value of TAO_ORB_Core::endpoint_selector_factory_.

void TAO_ORB_Core::set_poa_factory ( | const char * poa_factory_name,
| const char * poa_factory_directive )`[static]`

| Sets the name of the POA factory and the dynamic service configurator directive to load it if needed.

void TAO_ORB_Core::set_protocols_hooks ( | const char * protocols_hooks_name )`[static]`

| Sets the value of TAO_ORB_Core::protocols_hooks_.

void TAO_ORB_Core::set_resource_factory ( | const char * resource_factory_name )`[static]`

| Sets the value of TAO_ORB_Core::resource_factory_.

void TAO_ORB_Core::set_stub_factory ( | const char * stub_factory_name )`[static]`

| Sets the value of TAO_ORB_Core::stub_factory_name_.

void TAO_ORB_Core::set_sync_scope_hook ( | Sync_Scope_Hook hook )`[static]`

void TAO_ORB_Core::set_thread_lane_resources_manager_factory ( | const char * thread_lane_resources_manager_factory_name )`[static]`

| Sets the value of TAO_ORB_Core::thread_lane_resources_manager_factory_name_.

void TAO_ORB_Core::set_timeout_hook ( | Timeout_Hook hook )`[static]`

ACE_INLINE int TAO_ORB_Core::set_tss_resource ( | size_t slot_id,
| void * ts_object )

| Set the TSS resource at the given slot. Returns 0 on success, and -1 on failure.

void TAO_ORB_Core::shutdown ( | CORBA::Boolean wait_for_completion,
| CORBA::Environment & ACE_TRY_ENV )

| End the event loop.

TAO_Stub_Factory * TAO_ORB_Core::stub_factory ( | void )

| Returns a pointer to the Stub factory.

CORBA::Policy * TAO_ORB_Core::stubless_relative_roundtrip_timeout ( | void )

| Access to the RoundtripTimeoutPolicy policy set on the thread or on the ORB. In this method, we do not consider the stub since we do not have access to it.

void TAO_ORB_Core::stubless_sync_scope ( | CORBA::Policy *& result )

ACE_INLINE ACE_Thread_Manager * TAO_ORB_Core::thr_mgr ( | void )

| Get the ACE_Thread_Manager.

TAO_Thread_Lane_Resources_Manager & TAO_ORB_Core::thread_lane_resources_manager ( | void )

| Returns a pointer to the Thread Lane Resources Manager.

ACE_INLINE int TAO_ORB_Core::thread_per_connection_timeout ( | ACE_Time_Value & timeout ) const

| Returns the <timeout> value used by the server threads to poll the shutdown flag. If the return value is zero then the server threads block forever.

ACE_INLINE ACE_Char_Codeset_Translator * TAO_ORB_Core::to_iso8859 ( | void ) const

| Convert from the native character set to ISO8859.

ACE_INLINE ACE_WChar_Codeset_Translator * TAO_ORB_Core::to_unicode ( | void ) const

| Convert from the native wide character set to UNICODE.

ACE_INLINE TAO_Transport_Sync_Strategy & TAO_ORB_Core::transport_sync_strategy ( | void )

| This strategy will sync with the transport.

ACE_INLINE TAO_Cleanup_Func_Registry * TAO_ORB_Core::tss_cleanup_funcs ( | void )

| Return the underlying TSS cleanup function registry.

const char * TAO_ORB_Core::typecodefactory_adapter_name ( | void )`[static]`

| Gets the value of TAO_ORB_Core::typecodefactory_adapter_name_.

void TAO_ORB_Core::typecodefactory_adapter_name ( | const char * name )`[static]`

| Sets the value of TAO_ORB_Core::typecodefactory_adapter_name_.

ACE_INLINE CORBA::Boolean TAO_ORB_Core::use_global_collocation ( | void ) const

ACE_INLINE void TAO_ORB_Core::use_global_collocation ( | CORBA::Boolean opt )

## Friends And Related Function Documentation

CORBA::ORB_ptr CORBA::ORB_init ( | int &,
| char * argv[],
| const char *,
| CORBA_Environment & )`[friend]`

class TAO_ORB_Core_Auto_Ptr`[friend]`

class TAO_ORB_Table`[friend]`

## Member Data Documentation

TAO_Adapter_Registry TAO_ORB_Core::adapter_registry_`[protected]`

| The list of Adapters used in this ORB.

TAO_BiDir_Adapter * TAO_ORB_Core::bidir_adapter_`[protected]`

| BiDirectional GIOP factory.

CORBA::Boolean TAO_ORB_Core::bidir_giop_policy_`[protected]`

| Bir Dir GIOP policy value.

TAO_Client_Strategy_Factory * TAO_ORB_Core::client_factory_`[protected]`

| Handle to the factory for Client-side strategies.

TAO_ClientRequestInterceptor_List TAO_ORB_Core::client_request_interceptors_`[protected]`

| Client request interceptor registry.

TAO_Collocation_Resolver * TAO_ORB_Core::collocation_resolver_`[protected]`

const char * TAO_ORB_Core::collocation_resolver_name_ = "Default_Collocation_Resolver"`[static, protected]`

CORBA::ULong TAO_ORB_Core::collocation_strategy_`[protected]`

| Default collocation policy. This should never be ORB_CONTROL.

TAO_Connector_Registry * TAO_ORB_Core::connector_registry_`[protected]`

| The connector registry which all active connectors must register themselves with.

ACE_Lock_Adapter< TAO_SYNCH_MUTEX > TAO_ORB_Core::data_block_lock_`[protected]`

| The data block reference counts are locked using this mutex.

const char * TAO_ORB_Core::dynamic_adapter_name_ = "Dynamic_Adapter"`[static, protected]`

CORBA::Object_ptr TAO_ORB_Core::dynany_factory_`[protected]`

| The cached object reference for the DynAnyFactory.

TAO_Endpoint_Selector_Factory * TAO_ORB_Core::endpoint_selector_factory_`[protected]`

const char * TAO_ORB_Core::endpoint_selector_factory_name_ = "Default_Endpoint_Selector_Factory"`[static, protected]`

TAO_Flushing_Strategy * TAO_ORB_Core::flushing_strategy_`[protected]`

| Hold the flushing strategy.

ACE_Char_Codeset_Translator * TAO_ORB_Core::from_iso8859_`[protected]`

ACE_WChar_Codeset_Translator * TAO_ORB_Core::from_unicode_`[protected]`

TAO_Fault_Tolerance_Service TAO_ORB_Core::ft_service_`[protected]`

| Fault Tolerant service hook.

int TAO_ORB_Core::has_shutdown_`[protected]`

| Flag which denotes that the ORB has been shutdown.

const char * TAO_ORB_Core::ifr_client_adapter_name_ = "IFR_Client_Adapter"`[static, protected]`

CORBA::Object_ptr TAO_ORB_Core::implrepo_service_`[protected]`

| The cached IOR for the Implementation Repository.

InitRefMap TAO_ORB_Core::init_ref_map_`[protected]`

TAO_IORInterceptor_List TAO_ORB_Core::ior_interceptors_`[protected]`

| IOR interceptor registry.

CORBA::Object_ptr TAO_ORB_Core::ior_manip_factory_`[protected]`

| The cached object reference for the IORManipulataion.

CORBA::Object_ptr TAO_ORB_Core::ior_table_`[protected]`

| The cached object reference for the IORTable.

TAO_SYNCH_MUTEX TAO_ORB_Core::lock_`[protected]`

| Synchronize internal state...

ACE_Allocator * TAO_ORB_Core::message_block_buffer_allocator_`[protected]`

ACE_Allocator * TAO_ORB_Core::message_block_dblock_allocator_`[protected]`

ACE_Allocator * TAO_ORB_Core::message_block_msgblock_allocator_`[protected]`

TAO_Object_Ref_Table TAO_ORB_Core::object_ref_table_`[protected]`

| Table that maps object key/name to (de-stringified) object reference. It is needed for supporting local objects in the resolve_initial_references() mechanism.

CORBA::Boolean TAO_ORB_Core::opt_for_collocation_`[protected]`

| TRUE if we want to take advantage of collocation optimization in this ORB.

CORBA::ORB_var TAO_ORB_Core::orb_`[protected]`

| Note: Should we keep a single ORB pointer? This is good because multiple calls to ORB_init() with the same ORBid can use the same object, but maybe don't want so much coupling. Pointer to the ORB.

TAO_ORB_Parameters TAO_ORB_Core::orb_params_`[protected]`

| Parameters used by the ORB.

TAO_ORB_Core_TSS_Resources TAO_ORB_Core::orb_resources_`[protected]`

| If the resources are per-ORB (as opposed to per-ORB-per-thread) then they are stored here...

char * TAO_ORB_Core::orbid_`[protected]`

| The ORBid for this ORB.

TAO_Parser_Registry TAO_ORB_Core::parser_registry_`[protected]`

| The IOR parser registry.

TAO_PICurrent * TAO_ORB_Core::pi_current_`[protected]`

| Cached pointer/reference to the PICurrent object. A pointer/reference to the PICurrent object is cached in the ORB Core since it is accessed in the critical path (i.e. the request invocation path). Caching it prevents additional overhead to due object resolution from occurring.

TAO_Adapter * TAO_ORB_Core::poa_adapter_`[protected]`

| An optimization for the POA.

CORBA::Object_var TAO_ORB_Core::poa_current_`[protected]`

| POA current. Note: This is a pointer in order to reduce the include file dependencies.

const char * TAO_ORB_Core::poa_factory_directive_ = "dynamic TAO_POA Service_Object * TAO_PortableServer:_make_TAO_Object_Adapter_Factory()"`[static, protected]`

const char * TAO_ORB_Core::poa_factory_name_ = "TAO_POA"`[static, protected]`

TAO_PolicyFactory_Registry TAO_ORB_Core::policy_factory_registry_`[protected]`

| Registry containing all registered policy factories.

TAO_ProtocolFactorySet * TAO_ORB_Core::protocol_factories_`[protected]`

| Pointer to the list of protocol loaded into this ORB instance.

TAO_Protocols_Hooks * TAO_ORB_Core::protocols_hooks_

| Handle to the factory for protocols_hooks_..

const char * TAO_ORB_Core::protocols_hooks_name_ = "Protocols_Hooks"`[static]`

CORBA::ULong TAO_ORB_Core::refcount_`[protected]`

| Number of outstanding references to this object.

TAO_Resource_Factory * TAO_ORB_Core::resource_factory_`[protected]`

| Handle to the factory for resource information..

const char * TAO_ORB_Core::resource_factory_name_ = "Resource_Factory"`[static, protected]`

CORBA::Object_var TAO_ORB_Core::root_poa_`[protected]`

| Object reference to the root POA. It will eventually be the object reference returned by calls to CORBA::ORB::resolve_initial_references ("RootPOA").

CORBA::Object_var TAO_ORB_Core::rt_current_`[protected]`

| The cached object reference for the RTCORBA::RTCurrent interface.

CORBA::Object_var TAO_ORB_Core::rt_orb_`[protected]`

| The cached object reference for the RTCORBA::RTORB.

TAO_Server_Strategy_Factory * TAO_ORB_Core::server_factory_`[protected]`

| Handle to the factory for Server-side strategies.

TAO_ServerRequestInterceptor_List TAO_ORB_Core::server_request_interceptors_`[protected]`

| Server request interceptor registry.

TAO_Stub_Factory * TAO_ORB_Core::stub_factory_`[protected]`

const char * TAO_ORB_Core::stub_factory_name_ = "Default_Stub_Factory"`[static, protected]`

Sync_Scope_Hook TAO_ORB_Core::sync_scope_hook_ = 0`[static]`

TAO_Thread_Lane_Resources_Manager * TAO_ORB_Core::thread_lane_resources_manager_`[protected]`

const char * TAO_ORB_Core::thread_lane_resources_manager_factory_name_ = "Default_Thread_Lane_Resources_Manager_Factory"`[static, protected]`

ACE_Time_Value TAO_ORB_Core::thread_per_connection_timeout_`[protected]`

int TAO_ORB_Core::thread_per_connection_use_timeout_`[protected]`

Timeout_Hook TAO_ORB_Core::timeout_hook_ = 0`[static, private]`

| The hook to be set for the RelativeRoundtripTimeoutPolicy.

ACE_Thread_Manager TAO_ORB_Core::tm_`[protected]`

| The Thread Manager.

ACE_Char_Codeset_Translator * TAO_ORB_Core::to_iso8859_`[protected]`

ACE_WChar_Codeset_Translator * TAO_ORB_Core::to_unicode_`[protected]`

TAO_Transport_Sync_Strategy * TAO_ORB_Core::transport_sync_strategy_`[protected]`

| This strategy will sync with the transport.

TAO_Cleanup_Func_Registry TAO_ORB_Core::tss_cleanup_funcs_`[protected]`

| TSS Object cleanup functions. These correspond to the TSS objects stored in TAO's TSS resources.

CORBA::Object_ptr TAO_ORB_Core::typecode_factory_`[protected]`

| The cached IOR for the TypeCodeFactory DLL.

const char * TAO_ORB_Core::typecodefactory_adapter_name_ = "TypeCodeFactory_Adapter"`[static, protected]`

CORBA::Boolean TAO_ORB_Core::use_global_collocation_`[protected]`

| TRUE if we want to consider all ORBs in this address space collocated.

int TAO_ORB_Core::use_implrepo_`[protected]`

| Flag for whether the implrepo support is enabled or not.

int TAO_ORB_Core::use_tss_resources_`[protected]`

| If 1 then this ORB uses thread-specific resources.

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

- ORB_Core.h
- ORB_Core.cpp
- ORB_Core.i