TAO  2.2.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
TAO_ORB_Core Class Reference

Encapsulates the state of an ORB. More...

#include <ORB_Core.h>

Collaboration diagram for TAO_ORB_Core:
Collaboration graph

Public Types

typedef void(* Timeout_Hook )(TAO_ORB_Core *, TAO_Stub *, bool &, ACE_Time_Value &)
 Define the Timeout_Hook signature. More...
 
typedef void(* Sync_Scope_Hook )(TAO_ORB_Core *, TAO_Stub *, bool &, Messaging::SyncScope &)
 
typedef ACE_Array_Map
< ACE_CString, ACE_CString
InitRefMap
 

Public Member Functions

 TAO_ORB_Core (const char *id, ACE_Intrusive_Auto_Ptr< ACE_Service_Gestalt > g)
 Constructor. More...
 
TAO_ORB_Parametersorb_params (void)
 Accessor for the ORB parameters. More...
 
TAO_Connector_Registryconnector_registry (void)
 Get the connector registry. More...
 
TAO_Parser_Registryparser_registry (void)
 Get the IOR parser registry. More...
 
TAO::PolicyFactory_Registry_Adapterpolicy_factory_registry (void)
 
TAO::ORBInitializer_Registry_Adapterorbinitializer_registry (void)
 
TAO_ZIOP_Adapterziop_adapter () const
 
void ziop_adapter (TAO_ZIOP_Adapter *adapter)
 
TAO_Service_Context_Registryservice_context_registry (void)
 
TAO_ProtocolFactorySetprotocol_factories (void)
 Get the protocol factories. More...
 
CORBA::ORB_ptr orb (void)
 Get pointer to the ORB. More...
 
ACE_Reactorreactor (void)
 Wrappers that forward the request to the concurrency strategy. More...
 
ACE_Thread_Managerthr_mgr (void)
 Get the ACE_Thread_Manager. More...
 
CORBA::Object_ptr root_poa (void)
 Return the RootPOA, or try to load it if not initialized already. More...
 
TAO_Adapter_Registryadapter_registry (void)
 Get the adapter registry. More...
 
TAO_Adapterpoa_adapter (void)
 
TAO_Protocols_Hooksget_protocols_hooks (void)
 Gets the value of TAO_ORB_Core::protocols_hooks__. More...
 
TAO_Network_Priority_Protocols_Hooksget_network_priority_protocols_hooks (void)
 Gets the value of TAO_ORB_Core::network_priority_protocols_hooks__. More...
 
int is_collocated (const TAO_MProfile &mprofile)
 
ACE_Allocatoroutput_cdr_dblock_allocator (void)
 
ACE_Allocatoroutput_cdr_buffer_allocator (void)
 
ACE_Allocatoroutput_cdr_msgblock_allocator (void)
 
ACE_Allocatorinput_cdr_dblock_allocator (void)
 
ACE_Allocatorinput_cdr_buffer_allocator (void)
 
ACE_Allocatorinput_cdr_msgblock_allocator (void)
 
ACE_Allocatortransport_message_buffer_allocator (void)
 
ACE_Data_Blockcreate_input_cdr_data_block (size_t size)
 
ACE_Locklocking_strategy (void)
 Return the locking strategy used for the data blocks. More...
 
TAO_Policy_Setget_default_policies (void)
 Accessor method for the default_policies_. More...
 
CORBA::Policy_ptr get_policy (CORBA::PolicyType type)
 
CORBA::Policy_ptr get_policy_including_current (CORBA::PolicyType type)
 
CORBA::Policy_ptr get_cached_policy (TAO_Cached_Policy_Type type)
 
CORBA::Policy_ptr get_cached_policy_including_current (TAO_Cached_Policy_Type type)
 
TAO_Policy_Managerpolicy_manager (void)
 Return the Policy_Manager for this ORB. More...
 
TAO_Policy_Currentpolicy_current (void)
 
void call_timeout_hook (TAO_Stub *stub, bool &has_timeout, ACE_Time_Value &time_value)
 Invoke the timeout hook if present. More...
 
void set_timeout_hook (Timeout_Hook hook)
 
void connection_timeout (TAO_Stub *stub, bool &has_timeout, ACE_Time_Value &time_value)
 Invoke the timeout hook if present. More...
 
void call_sync_scope_hook (TAO_Stub *stub, bool &has_synchronization, Messaging::SyncScope &scope)
 
TAO::Transport_Queueing_Strategyget_transport_queueing_strategy (TAO_Stub *stub, Messaging::SyncScope &scope)
 
void set_sync_scope_hook (Sync_Scope_Hook hook)
 
TAO_ORB_Core_TSS_Resourcesget_tss_resources (void)
 Obtain the TSS resources of this orb. More...
 
void * get_tss_resource (size_t slot_id)
 Obtain the TSS resource in the given slot. More...
 
int set_tss_resource (size_t slot_id, void *)
 
int add_tss_cleanup_func (ACE_CLEANUP_FUNC cleanup, size_t &slot_id)
 
void tss_cleanup (ACE_Array_Base< void * > &ts_objects)
 Cleans up ts_objects using the underlying TSS cleanup function registry. More...
 
TAO_Leader_Followerleader_follower (void)
 Get access to the leader_follower class. More...
 
TAO_LF_Strategylf_strategy (void)
 Get access to the leader follower strategy. More...
 
TAO_Thread_Lane_Resourceslane_resources (void)
 Get access to the thread lane resources. More...
 
int run (ACE_Time_Value *tv, int perform_work)
 Run the event loop. More...
 
void shutdown (CORBA::Boolean wait_for_completion)
 End the event loop. More...
 
bool has_shutdown (void) const
 Get the shutdown flag value. More...
 
void destroy (void)
 Shutdown the ORB and free resources. More...
 
void check_shutdown (void)
 Check if ORB has shutdown. If it has, throw an exception. More...
 
int thread_per_connection_timeout (ACE_Time_Value &timeout) const
 
TAO_Stubcreate_stub_object (TAO_MProfile &mprofile, const char *type_id, CORBA::PolicyList *policy_list)
 
TAO_Stubcreate_stub (const char *repository_id, const TAO_MProfile &profiles)
 
CORBA::Object_ptr create_object (TAO_Stub *the_stub)
 
CORBA::Long initialize_object (TAO_Stub *the_stub, CORBA::Object_ptr obj)
 
CORBA::Long reinitialize_object (TAO_Stub *stub)
 
const char * orbid (void) const
 Return ORBid string. More...
 
CORBA::Boolean use_implrepo (void)
 Do we attempt to register with the Implementation Repository. More...
 
CORBA::Boolean imr_endpoints_in_ior (void)
 Do we put the ImR's endpoints into persistent object references we create. More...
 
CORBA::Object_ptr resolve_typecodefactory (void)
 Resolve the TypeCodeFactory DLL. More...
 
CORBA::Object_ptr resolve_picurrent (void)
 Resolve the PICurrent. More...
 
CORBA::Object_ptr resolve_poa_current (void)
 Resolve POA Current. More...
 
CORBA::Object_ptr resolve_codecfactory (void)
 Resolve the CodecFactory DLL. More...
 
CORBA::Object_ptr resolve_compression_manager (void)
 Resolve the Compression DLL. More...
 
CORBA::Object_ptr resolve_dynanyfactory (void)
 Resolve the Dynamic Any Factory. More...
 
CORBA::Object_ptr resolve_ior_manipulation (void)
 Resolve the IOR Manipulation reference for this ORB. More...
 
TAO_ZIOP_Adapterziop_adapter_i (void)
 
CORBA::Object_ptr resolve_ior_table (void)
 Resolve the IOR Table reference for this ORB. More...
 
CORBA::Object_ptr resolve_async_ior_table (void)
 Resolve the Async IOR Table reference for this ORB. More...
 
CORBA::Object_ptr resolve_monitor (void)
 Resolve the Monitor reference for this ORB. More...
 
CORBA::Object_ptr resolve_rir (const char *name)
 Resolve an initial reference via the -ORBInitRef and. More...
 
CORBA::Object_ptr resolve_rt_orb (void)
 Resolve the RT ORB reference for this ORB. More...
 
const char * server_id (void) const
 
CORBA::ORB_ObjectIdListlist_initial_references (void)
 List all the service known by the ORB. More...
 
unsigned long _incr_refcnt (void)
 Reference counting... More...
 
unsigned long _decr_refcnt (void)
 
unsigned long _refcnt (void) const
 
int register_handle (ACE_HANDLE handle)
 
int remove_handle (ACE_HANDLE handle)
 
TAO_Valuetype_Adaptervaluetype_adapter (void)
 Return the valuetype adapter. More...
 
CORBA::ValueFactory register_value_factory (const char *repository_id, CORBA::ValueFactory factory)
 Value factory operations (CORBA 2.3 ptc/98-10-05 Ch. 4.2 p.4-7) More...
 
void unregister_value_factory (const char *repository_id)
 
CORBA::ValueFactory lookup_value_factory (const char *repository_id)
 
TAO_IORInterceptor_Adapterior_interceptor_adapter (void)
 
CORBA::Boolean bidir_giop_policy (void)
 
void bidir_giop_policy (CORBA::Boolean)
 
TAO_Object_Ref_Tableobject_ref_table (void)
 
TAO::ObjectKey_Tableobject_key_table (void)
 Acceessor to the table that stores the object_keys. More...
 
TAO_Request_Dispatcherrequest_dispatcher (void)
 Return the current request dispatcher strategy. More...
 
void request_dispatcher (TAO_Request_Dispatcher *rd)
 
void load_policy_validators (TAO_Policy_Validator &validator)
 
TAO_Flushing_Strategyflushing_strategy (void)
 Return the flushing strategy. More...
 
TAO_Codeset_Managercodeset_manager (void)
 Get Code Set Manager. More...
 
InitRefMapinit_ref_map (void)
 Return a pointer to the -ORBInitRef map. More...
 
void set_default (const char *orb_id)
 
void not_default (const char *orb_id)
 Choose to be not a default ORB when there is more than one ORB. More...
 
CORBA::Boolean is_permanent_forward_condition (const CORBA::Object_ptr obj, const TAO_Service_Context &service_context)
 
ACE_Service_Gestaltconfiguration () const
 Configuration accessor method. More...
 
auto_ptr
< TAO_GIOP_Fragmentation_Strategy
fragmentation_strategy (TAO_Transport *transport)
 Get outgoing fragmentation strategy. More...
 
void set_eager_transport_queueing_strategy (TAO::Transport_Queueing_Strategy *strategy)
 
void set_delayed_transport_queueing_strategy (TAO::Transport_Queueing_Strategy *strategy)
 
CORBA::Object_ptr poa_current (void)
 Accessor to the POA current. More...
 
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_Factoryresource_factory (void)
 Returns pointer to the resource factory. More...
 
TAO::GUIResource_Factorygui_resource_factory (void)
 Returns pointer to the factory for creating gui resources. More...
 
TAO_Client_Strategy_Factoryclient_factory (void)
 Returns pointer to the client factory. More...
 
TAO_Server_Strategy_Factoryserver_factory (void)
 Returns pointer to the server factory. More...
 
TAO_Protocols_Hooksprotocols_hooks (void)
 Returns pointer to the Protocols_Hooks. More...
 
TAO_Thread_Lane_Resources_Managerthread_lane_resources_manager (void)
 Returns a pointer to the Thread Lane Resources Manager. More...
 
TAO_Collocation_Resolvercollocation_resolver (void)
 Returns a pointer to the Collocation Resolver. More...
 
TAO_Stub_Factorystub_factory (void)
 Returns a pointer to the Stub factory. More...
 
TAO_Endpoint_Selector_Factoryendpoint_selector_factory (void)
 Returns a pointer to the endpoint selector factory. More...
 
CORBA::Environmentdefault_environment (void) const
 
void default_environment (CORBA::Environment *)
 
CORBA::Object_ptr implrepo_service (void)
 Set/Get the IOR of the Implementation Repository service. More...
 
void implrepo_service (const CORBA::Object_ptr ir)
 Set/Get the IOR of the Implementation Repository service. More...
 
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 (const TAO_MProfile &mprofile, TAO_Profile *&profile)
 
CORBA::Boolean object_is_nil (CORBA::Object_ptr object)
 
TAO_Service_Callbacks::Profile_Equivalence is_profile_equivalent (const TAO_Profile *this_p, const TAO_Profile *that_p)
 
CORBA::ULong hash_service (TAO_Profile *this_p, CORBA::ULong max)
 
TAO_Fault_Tolerance_Servicefault_tolerance_service (void)
 Return a reference to the Fault Tolerant service object. More...
 
CORBA::Boolean ft_send_extended_sc (void)
 
TAO::Invocation_Status service_raise_comm_failure (IOP::ServiceContextList &clist, TAO_Profile *profile)
 
TAO::Invocation_Status service_raise_transient_failure (IOP::ServiceContextList &clist, TAO_Profile *profile)
 
Portable Interceptor Related Methods

These are support methods for interceptor registration and interceptor set (an array) access, in addition to PICurrent access.

CORBA::Object_ptr pi_current (void)
 Return a pointer to the cached TAO::PICurrent object. More...
 
void pi_current (CORBA::Object_ptr current)
 Set the pointer to the cached TAO::PICurrent object. More...
 
void add_interceptor (PortableInterceptor::ClientRequestInterceptor_ptr interceptor)
 Register a client request interceptor. More...
 
void add_interceptor (PortableInterceptor::ServerRequestInterceptor_ptr interceptor)
 Register a server request interceptor. More...
 
void add_interceptor (PortableInterceptor::ClientRequestInterceptor_ptr interceptor, const CORBA::PolicyList &policies)
 Register a client request interceptor with policies. More...
 
void add_interceptor (PortableInterceptor::ServerRequestInterceptor_ptr interceptor, const CORBA::PolicyList &policies)
 Register a server request interceptor with policies. More...
 
TAO::ClientRequestInterceptor_Adapterclientrequestinterceptor_adapter (void)
 
TAO::ServerRequestInterceptor_Adapterserverrequestinterceptor_adapter (void)
 
void add_interceptor (PortableInterceptor::IORInterceptor_ptr interceptor)
 Register an IOR interceptor. More...
 

Static Public Member Functions

static void set_resource_factory (const char *resource_factory_name)
 Sets the value of TAO_ORB_Core::resource_factory_. More...
 
static void set_gui_resource_factory (TAO::GUIResource_Factory *gui_factory)
 
static void set_network_priority_protocols_hooks (const char *network_priority_protocols_hooks_name)
 Sets the value of TAO_ORB_Core::network_priority_protocols_hooks_. More...
 
static void dynamic_adapter_name (const char *name)
 Sets the value of TAO_ORB_Core::dynamic_adapter_name_. More...
 
static const char * dynamic_adapter_name (void)
 Gets the value of TAO_ORB_Core::dynamic_adapter_name_. More...
 
static void ifr_client_adapter_name (const char *name)
 Sets the value of TAO_ORB_Core::ifr_client_adapter_name_. More...
 
static const char * ifr_client_adapter_name (void)
 Gets the value of TAO_ORB_Core::ifr_client_adapter_name_. More...
 
static void typecodefactory_adapter_name (const char *name)
 Sets the value of TAO_ORB_Core::typecodefactory_adapter_name_. More...
 
static const char * typecodefactory_adapter_name (void)
 Gets the value of TAO_ORB_Core::typecodefactory_adapter_name_. More...
 
static void iorinterceptor_adapter_factory_name (const char *name)
 Sets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_. More...
 
static const char * iorinterceptor_adapter_factory_name (void)
 Gets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_. More...
 
static void valuetype_adapter_factory_name (const char *name)
 Sets the value of TAO_ORB_Core::valuetype_adapter_factory_name. More...
 
static const char * valuetype_adapter_factory_name (void)
 Gets the value of TAO_ORB_Core::valuetype_adapter_factory_name. More...
 
static void connection_timeout_hook (Timeout_Hook hook)
 Define the Timeout_Hook signature. More...
 
static void default_sync_scope_hook (TAO_ORB_Core *, TAO_Stub *, bool &has_synchronization, Messaging::SyncScope &scope)
 Default Sync_Scope_Hook. More...
 

Public Attributes

TAO_Protocols_Hooksprotocols_hooks_
 Handle to the factory for protocols_hooks_.. More...
 
TAO_Network_Priority_Protocols_Hooksnetwork_priority_protocols_hooks_
 Handle to the factory for network_priority_protocols_hooks_.. More...
 

Protected Member Functions

 ~TAO_ORB_Core (void)
 
int init (int &argc, char *argv[])
 
int fini (void)
 
ACE_Data_Blockcreate_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. More...
 
void resolve_typecodefactory_i (void)
 Obtain and cache the typecode factory object reference. More...
 
void resolve_poa_current_i (void)
 Obtain and cache the poa current. More...
 
void resolve_picurrent_i (void)
 Obtain and cache the picurrent factory object reference. More...
 
TAO::ClientRequestInterceptor_Adapterclientrequestinterceptor_adapter_i (void)
 
TAO::ServerRequestInterceptor_Adapterserverrequestinterceptor_adapter_i (void)
 
void resolve_codecfactory_i (void)
 Obtain and cache the codec factory object reference. More...
 
void resolve_compression_manager_i (void)
 Obtain and cache the compression manager object reference. More...
 
void resolve_dynanyfactory_i (void)
 Obtain and cache the dynamic any factory object reference. More...
 
void resolve_iormanipulation_i (void)
 Obtain and cache the IORManipulation factory object reference. More...
 
void resolve_monitor_i (void)
 Obtain and cache the Monitor object reference. More...
 
void services_callbacks_init (void)
 
void destroy_interceptors (void)
 
int set_endpoint_helper (const ACE_CString &lane, const ACE_CString &endpoints)
 
TAO::PolicyFactory_Registry_Adapterpolicy_factory_registry_i (void)
 
TAO::ORBInitializer_Registry_Adapterorbinitializer_registry_i (void)
 
CORBA::Long initialize_object_i (TAO_Stub *the_stub, const TAO_MProfile &mprofile)
 Common code from ::initialize_object and ::reinitialize_object. More...
 
 ACE_TSS_TYPE (TAO_ORB_Core_TSS_Resources) tss_resources_
 This is where the tss resources for this ORB are stored. More...
 

Protected Attributes

TAO_SYNCH_MUTEX lock_
 Synchronize internal state... More...
 
TAO_Thread_Lane_Resources_Managerthread_lane_resources_manager_
 
TAO_Collocation_Resolvercollocation_resolver_
 
TAO_Stub_Factorystub_factory_
 
TAO_ProtocolFactorySetprotocol_factories_
 
CORBA::Object_ptr implrepo_service_
 The cached IOR for the Implementation Repository. More...
 
int use_implrepo_
 Flag for whether the implrepo support is enabled or not. More...
 
int imr_endpoints_in_ior_
 Flag for whether to put the ImR endpoints into our object refs. More...
 
CORBA::Object_ptr typecode_factory_
 The cached IOR for the TypeCodeFactory DLL. More...
 
CORBA::Object_ptr codec_factory_
 The cached IOR for the CodecFactory DLL. More...
 
CORBA::Object_ptr compression_manager_
 The cached IOR for the Compression DLL. More...
 
CORBA::Object_ptr dynany_factory_
 The cached object reference for the DynAnyFactory. More...
 
CORBA::Object_ptr ior_manip_factory_
 The cached object reference for the IORManipulataion. More...
 
CORBA::Object_ptr ior_table_
 The cached object reference for the IORTable. More...
 
CORBA::Object_ptr async_ior_table_
 The cached object reference for the Async_IORTable. More...
 
CORBA::Object_ptr monitor_
 The cached object reference for the Monitor. More...
 
CORBA::Object_var rt_orb_
 The cached object reference for the RTCORBA::RTORB. More...
 
CORBA::Object_var rt_current_
 The cached object reference for the RTCORBA::Current interface. More...
 
CORBA::ORB_ptr orb_
 
CORBA::Object_var root_poa_
 
TAO_ORB_Parameters orb_params_
 Parameters used by the ORB. More...
 
InitRefMap init_ref_map_
 Return InitRefMap to find if a particular object id is present. More...
 
TAO_Object_Ref_Table object_ref_table_
 
TAO::ObjectKey_Table object_key_table_
 Table that stores the object key instead of caching one per-profile. More...
 
char * orbid_
 The ORBid for this ORB. More...
 
TAO_Resource_Factoryresource_factory_
 Handle to the factory for resource information.. More...
 
ACE_CString server_id_
 The server_id_ that was passed via -ORBServerId option. More...
 
TAO_Client_Strategy_Factoryclient_factory_
 Handle to the factory for Client-side strategies. More...
 
TAO_Server_Strategy_Factoryserver_factory_
 Handle to the factory for Server-side strategies. More...
 
CORBA::Boolean ft_send_extended_sc_
 
CORBA::Boolean opt_for_collocation_
 
CORBA::Boolean use_global_collocation_
 
CORBA::ULong collocation_strategy_
 Default collocation policy. This should never be ORB_CONTROL. More...
 
TAO_Policy_Managerpolicy_manager_
 The Policy_Manager for this ORB. More...
 
TAO_Policy_Setdefault_policies_
 The default policies. More...
 
TAO_Policy_Currentpolicy_current_
 Policy current. More...
 
TAO_Request_Dispatcherrequest_dispatcher_
 The request dispatching strategy. More...
 
CORBA::Object_var poa_current_
 
TAO_Adapter_Registry adapter_registry_
 The list of Adapters used in this ORB. More...
 
TAO_Adapterpoa_adapter_
 An optimization for the POA. More...
 
ACE_Thread_Manager tm_
 The Thread Manager. More...
 
ACE_Lock_Adapter< TAO_SYNCH_MUTEXdata_block_lock_
 The data block reference counts are locked using this mutex. More...
 
TAO_Cleanup_Func_Registry tss_cleanup_funcs_
 
bool has_shutdown_
 Flag which denotes that the ORB has been shutdown. More...
 
TAO_SYNCH_MUTEX open_lock_
 Mutual exclusion for calling open. More...
 
TAO_Endpoint_Selector_Factoryendpoint_selector_factory_
 
TAO::Transport_Queueing_Strategyeager_transport_queueing_strategy_
 This strategy will buffer messages. More...
 
TAO::Transport_Queueing_Strategydelayed_transport_queueing_strategy_
 This strategy will buffer messages. More...
 
TAO::Transport_Queueing_Strategyflush_transport_queueing_strategy_
 
ACE_Atomic_Op< TAO_SYNCH_MUTEX,
unsigned long > 
refcount_
 Number of outstanding references to this object. More...
 
TAO::PolicyFactory_Registry_Adapterpolicy_factory_registry_
 Registry containing all registered policy factories. More...
 
TAO::ORBInitializer_Registry_Adapterorbinitializer_registry_
 Registry containing all orb initializers. More...
 
TAO_Service_Context_Registry service_context_registry_
 Registry containing all service context handlers. More...
 
CORBA::Object_ptr pi_current_
 Cached pointer/reference to the PICurrent object. More...
 
TAO::ClientRequestInterceptor_Adapterclient_request_interceptor_adapter_
 The adapter for handling client request interceptors. More...
 
TAO::ServerRequestInterceptor_Adapterserver_request_interceptor_adapter_
 The adapter for handling server request interceptors. More...
 
TAO_IORInterceptor_Adapterior_interceptor_adapter_
 IORInterceptor adapter. More...
 
TAO_Valuetype_Adaptervaluetype_adapter_
 Pointer to the valuetype adapter. More...
 
TAO_Parser_Registry parser_registry_
 The IOR parser registry. More...
 
TAO_BiDir_Adapterbidir_adapter_
 BiDirectional GIOP factory. More...
 
CORBA::Boolean bidir_giop_policy_
 Bir Dir GIOP policy value. More...
 
TAO_ZIOP_Adapterziop_adapter_
 ZIOP Adapter. More...
 
CORBA::Boolean ziop_enabled_
 ZIOP enabled or not. More...
 
TAO_Flushing_Strategyflushing_strategy_
 Hold the flushing strategy. More...
 
TAO_Codeset_Managercodeset_manager_
 Code Set Manager, received from the Resource Factory. More...
 
ACE_Intrusive_Auto_Ptr
< ACE_Service_Gestalt
config_
 ORB's service configuration. More...
 
Sync_Scope_Hook sync_scope_hook_
 The hook to be set for the SyncScopePolicy. More...
 
Timeout_Hook timeout_hook_
 The hook to be set for the RelativeRoundtripTimeoutPolicy. More...
 
Service Level Hooks
TAO_Fault_Tolerance_Service ft_service_
 Fault Tolerant service hook. More...
 
int thread_per_connection_use_timeout_
 The value of the timeout if the flag above is not zero. More...
 
ACE_Time_Value thread_per_connection_timeout_
 The value of the timeout if the flag above is not zero. More...
 

Private Member Functions

void resolve_ior_table_i (void)
 Obtain and cache the ior table object reference. More...
 
void resolve_async_ior_table_i (void)
 Obtain and cache the async ior table object reference. More...
 
CORBA::Boolean is_collocation_enabled (TAO_ORB_Core *other_orb, const TAO_MProfile &mp)
 
 TAO_ORB_Core (const TAO_ORB_Core &)
 The ORB Core should not be copied. More...
 
void operator= (const TAO_ORB_Core &)
 The ORB Core should not be copied. More...
 

Private Attributes

bool use_local_memory_pool_
 

Friends

class TAO_ORB_Core_Auto_Ptr
 
CORBA::ORB_ptr CORBA::ORB_init (int &, ACE_TCHAR *argv[], const char *)
 

Collocation Strategies as configured by the user

enum  { ORB_CONTROL, TAO_COLLOCATION_THRU_POA, TAO_COLLOCATION_DIRECT, TAO_COLLOCATION_BEST }
 Set/get the collocation flags. More...
 
void optimize_collocation_objects (CORBA::Boolean opt)
 Set/get the collocation flags. More...
 
CORBA::Boolean optimize_collocation_objects (void) const
 Set/get the collocation flags. More...
 
void use_global_collocation (CORBA::Boolean opt)
 Set/get the collocation flags. More...
 
CORBA::Boolean use_global_collocation (void) const
 Set/get the collocation flags. More...
 
CORBA::ULong get_collocation_strategy (void) const
 Set/get the collocation flags. More...
 

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 void(* TAO_ORB_Core::Sync_Scope_Hook)(TAO_ORB_Core *, TAO_Stub *, bool &, Messaging::SyncScope &)
typedef void(* TAO_ORB_Core::Timeout_Hook)(TAO_ORB_Core *, TAO_Stub *, bool &, ACE_Time_Value &)

Define the Timeout_Hook signature.

Member Enumeration Documentation

anonymous enum

Set/get the collocation flags.

Enumerator
ORB_CONTROL 

Indicate object should refer to ORB for either one of the following strategies.

TAO_COLLOCATION_THRU_POA 

Collocated calls will go thru POA.

TAO_COLLOCATION_DIRECT 

Collocated calls invoke operation on Servant directly.

TAO_COLLOCATION_BEST 

Collocated calls invoke operation on Servant directly if possible, else Collocated calls will go thru POA if possible, else use REMOTE_STRATEGY

Constructor & Destructor Documentation

TAO_ORB_Core::TAO_ORB_Core ( const char *  id,
ACE_Intrusive_Auto_Ptr< ACE_Service_Gestalt g 
)

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

The ORB Core should not be copied.

Member Function Documentation

unsigned long TAO_ORB_Core::_decr_refcnt ( void  )
unsigned long TAO_ORB_Core::_incr_refcnt ( void  )

Reference counting...

unsigned long TAO_ORB_Core::_refcnt ( void  ) const
TAO_ORB_Core::ACE_TSS_TYPE ( TAO_ORB_Core_TSS_Resources  )
protected

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

TAO_Adapter_Registry & TAO_ORB_Core::adapter_registry ( void  )

Get the adapter registry.

void TAO_ORB_Core::add_interceptor ( PortableInterceptor::ClientRequestInterceptor_ptr  interceptor)

Register a client request interceptor.

void TAO_ORB_Core::add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr  interceptor)

Register a server request interceptor.

void TAO_ORB_Core::add_interceptor ( PortableInterceptor::ClientRequestInterceptor_ptr  interceptor,
const CORBA::PolicyList policies 
)

Register a client request interceptor with policies.

void TAO_ORB_Core::add_interceptor ( PortableInterceptor::ServerRequestInterceptor_ptr  interceptor,
const CORBA::PolicyList policies 
)

Register a server request interceptor with policies.

void TAO_ORB_Core::add_interceptor ( PortableInterceptor::IORInterceptor_ptr  interceptor)

Register an IOR interceptor.

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.

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.
void TAO_ORB_Core::bidir_giop_policy ( CORBA::Boolean  val)
void TAO_ORB_Core::call_sync_scope_hook ( TAO_Stub stub,
bool &  has_synchronization,
Messaging::SyncScope &  scope 
)
void TAO_ORB_Core::call_timeout_hook ( TAO_Stub stub,
bool &  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_timeoutreturns 0 if there is no timeout policy set.
time_valuereturns the timeout value in effect for the object, thread and current ORB.
void TAO_ORB_Core::check_shutdown ( void  )

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_Adapter * TAO_ORB_Core::clientrequestinterceptor_adapter ( void  )

Get the Client Request Interceptor adapter. Will not create a new one if not available yet.

TAO::ClientRequestInterceptor_Adapter * TAO_ORB_Core::clientrequestinterceptor_adapter_i ( void  )
protected

Get the Client Request Interceptor adapter. If not created, this method will try to create one if needed.

TAO_Codeset_Manager * TAO_ORB_Core::codeset_manager ( void  )

Get Code Set Manager.

TAO_Collocation_Resolver & TAO_ORB_Core::collocation_resolver ( void  )

Returns a pointer to the Collocation Resolver.

ACE_Service_Gestalt * TAO_ORB_Core::configuration ( void  ) const

Configuration accessor method.

void TAO_ORB_Core::connection_timeout ( TAO_Stub stub,
bool &  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_timeoutreturns 0 if there is no timeout policy set.
time_valuereturns the timeout value in effect for the object, thread and current ORB.
void TAO_ORB_Core::connection_timeout_hook ( Timeout_Hook  hook)
static

Define the Timeout_Hook signature.

The connection timeout hook was originally defined to allow the TAO Messaging code to be factored out of the core TAO library and placed in to an optional library. Since then, a new invocation endpoint selector, the optimised connection endpoint selector (see Strategies/OC_Endpoint_Selector.h) reused this connection timeout hook. However, this set up a problem when both the Messaging library and OCES are being used in the same application.

The solution was to add a new connection timeout hook attribute (see alt_connection_timeout_hook_ below). This method now checks to see if the connection timeout hook is already set, and if so assigns the supplied hook value to the alternate connection timeout hook. This functionality has a side-effect of assuming that hooks are NEVER unloaded or actively replaced. IOW, no one will call this method with a 0 or some other pointer value to replace an existing hook.

If such functionality as unloading a hook pointer is required, then this method must be extended to give some kind of identity for the hook. Additional changes to the definition of the hook will also be necessary to support such identity and manipulation.

TAO_Connector_Registry * TAO_ORB_Core::connector_registry ( void  )

Get the connector registry.

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 
)

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 
)

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

Initialize a TAO_Stub object with the mprofile thats passed.

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::default_environment ( CORBA::Environment env)

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::default_sync_scope_hook ( TAO_ORB_Core ,
TAO_Stub ,
bool &  has_synchronization,
Messaging::SyncScope &  scope 
)
static

Default Sync_Scope_Hook.

void TAO_ORB_Core::destroy ( void  )

Shutdown the ORB and free resources.

void TAO_ORB_Core::destroy_interceptors ( void  )
protected

Helper method that invokes Interceptor::destroy() on all registered interceptors when ORB::destroy() is called. Prevents exceptions from propagating up the call chain.

void TAO_ORB_Core::dynamic_adapter_name ( const char *  name)
static

Sets the value of TAO_ORB_Core::dynamic_adapter_name_.

const char * TAO_ORB_Core::dynamic_adapter_name ( void  )
static

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

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.

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.

auto_ptr< TAO_GIOP_Fragmentation_Strategy > TAO_ORB_Core::fragmentation_strategy ( TAO_Transport transport)

Get outgoing fragmentation strategy.

CORBA::Boolean TAO_ORB_Core::ft_send_extended_sc ( void  )

Transmit the entire TAG_FT_GROUP component data from a server IOGR as a FT_GROUP_VERSION tagged service context on requests to that IOGR instead of just the group version.

CORBA::Policy_ptr TAO_ORB_Core::get_cached_policy ( TAO_Cached_Policy_Type  type)

Get a cached policy. First, check the ORB-level Policy Manager, then check the ORB defaults.

CORBA::Policy_ptr TAO_ORB_Core::get_cached_policy_including_current ( TAO_Cached_Policy_Type  type)

Get a cached policy. First, check the thread current, then check the ORB-level Policy Manager, then check the ORB defaults.

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

Set/get the collocation flags.

TAO_Policy_Set * TAO_ORB_Core::get_default_policies ( void  )

Accessor method for the default_policies_.

TAO_Network_Priority_Protocols_Hooks * TAO_ORB_Core::get_network_priority_protocols_hooks ( void  )

Gets the value of TAO_ORB_Core::network_priority_protocols_hooks__.

CORBA::Policy_ptr TAO_ORB_Core::get_policy ( CORBA::PolicyType  type)

Get a policy. First, check the ORB-level Policy Manager, then check the ORB defaults.

CORBA::Policy_ptr TAO_ORB_Core::get_policy_including_current ( CORBA::PolicyType  type)

Get a policy. First, check the thread current, then check the ORB-level Policy Manager, then check the ORB defaults.

TAO_Protocols_Hooks * TAO_ORB_Core::get_protocols_hooks ( void  )

Gets the value of TAO_ORB_Core::protocols_hooks__.

TAO::Transport_Queueing_Strategy * TAO_ORB_Core::get_transport_queueing_strategy ( TAO_Stub stub,
Messaging::SyncScope &  scope 
)
void * TAO_ORB_Core::get_tss_resource ( size_t  slot_id)

Obtain the TSS resource in the given slot.

TAO_ORB_Core_TSS_Resources * TAO_ORB_Core::get_tss_resources ( void  )

Obtain the TSS resources of this orb.

TAO::GUIResource_Factory * TAO_ORB_Core::gui_resource_factory ( void  )

Returns pointer to the factory for creating gui resources.

bool TAO_ORB_Core::has_shutdown ( void  ) const

Get the shutdown flag value.

CORBA::ULong TAO_ORB_Core::hash_service ( TAO_Profile this_p,
CORBA::ULong  max 
)

Hook for the services to determine the <hash> value of a profile. For details on how this is used please see the FT service

void TAO_ORB_Core::ifr_client_adapter_name ( const char *  name)
static

Sets the value of TAO_ORB_Core::ifr_client_adapter_name_.

const char * TAO_ORB_Core::ifr_client_adapter_name ( void  )
static

Gets the value of TAO_ORB_Core::ifr_client_adapter_name_.

CORBA::Object_ptr TAO_ORB_Core::implrepo_service ( void  )

Set/Get the IOR of the Implementation Repository service.

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

Set/Get the IOR of the Implementation Repository service.

CORBA::Boolean TAO_ORB_Core::imr_endpoints_in_ior ( void  )

Do we put the ImR's endpoints into persistent object references we create.

int TAO_ORB_Core::init ( int &  argc,
char *  argv[] 
)
protected

Initialize the guts of the ORB Core. It is intended that this be called by CORBA::ORB_init().

TAO_ORB_Core::InitRefMap * TAO_ORB_Core::init_ref_map ( void  )

Return a pointer to the -ORBInitRef map.

CORBA::Long TAO_ORB_Core::initialize_object ( TAO_Stub the_stub,
CORBA::Object_ptr  obj 
)

Initialize a new object, use the adapter registry to initialize a collocated object, if not possible then initialize a regular object. NOTE: Why would this method be required? The answer is if the user decides to use lazy initialization of CORBA object, then this is the route that we have to take to do the initialization.

CORBA::Long TAO_ORB_Core::initialize_object_i ( TAO_Stub the_stub,
const TAO_MProfile mprofile 
)
protected

Common code from ::initialize_object and ::reinitialize_object.

ACE_Allocator * TAO_ORB_Core::input_cdr_buffer_allocator ( void  )

This allocator is always global and has no locks. It is intended for allocating the buffers used in incoming CDR streams.

ACE_Allocator * TAO_ORB_Core::input_cdr_dblock_allocator ( void  )

This allocator is global, may or may not have locks. It is intended for allocating the ACE_Data_Blocks used in incoming CDR streams.

ACE_Allocator * TAO_ORB_Core::input_cdr_msgblock_allocator ( void  )

This allocator is always global and has no locks. It is intended for allocating the buffers used in incoming CDR streams.

TAO_IORInterceptor_Adapter * TAO_ORB_Core::ior_interceptor_adapter ( void  )

Get the IOR Interceptor adapter. If not created, this method will try to create one.

void TAO_ORB_Core::iorinterceptor_adapter_factory_name ( const char *  name)
static

Sets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_.

const char * TAO_ORB_Core::iorinterceptor_adapter_factory_name ( void  )
static

Gets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_.

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.

CORBA::Boolean TAO_ORB_Core::is_collocation_enabled ( TAO_ORB_Core other_orb,
const TAO_MProfile mp 
)
private

Checks to see whether collocation optimizations have to be applied on objects in the other_orb

CORBA::Boolean TAO_ORB_Core::is_permanent_forward_condition ( const CORBA::Object_ptr  obj,
const TAO_Service_Context service_context 
)

Verify condition for permanent forward is given, both parameters must provide group attributes.

TAO_Service_Callbacks::Profile_Equivalence TAO_ORB_Core::is_profile_equivalent ( const TAO_Profile this_p,
const TAO_Profile that_p 
)

Hook for the services to determine whether the profiles are equivalent or not. For details on how this is used please see the FT service

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 * TAO_ORB_Core::list_initial_references ( void  )

List all the service known by the ORB.

void TAO_ORB_Core::load_policy_validators ( TAO_Policy_Validator validator)

Call the libraries to handover the validators if they haven't registered yet with the list of validators.

ACE_Lock * TAO_ORB_Core::locking_strategy ( void  )

Return the locking strategy used for the data blocks.

CORBA::ValueFactory TAO_ORB_Core::lookup_value_factory ( const char *  repository_id)
void TAO_ORB_Core::not_default ( const char *  orb_id)

Choose to be not a default ORB when there is more than one ORB.

CORBA::Boolean TAO_ORB_Core::object_is_nil ( CORBA::Object_ptr  object)

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

TAO::ObjectKey_Table & TAO_ORB_Core::object_key_table ( void  )

Acceessor to the table that stores the object_keys.

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

The ORB Core should not be copied.

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

Set/get the collocation flags.

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

Set/get the collocation flags.

CORBA::ORB_ptr TAO_ORB_Core::orb ( void  )

Get pointer to the ORB.

TAO_ORB_Parameters * TAO_ORB_Core::orb_params ( void  )

Accessor for the ORB parameters.

const char * TAO_ORB_Core::orbid ( void  ) const

Return ORBid string.

TAO::ORBInitializer_Registry_Adapter * TAO_ORB_Core::orbinitializer_registry ( void  )

Return pointer to the orb initializer registry associated with this ORB core. Tries to load the PI library if it is not loaded yet

TAO::ORBInitializer_Registry_Adapter * TAO_ORB_Core::orbinitializer_registry_i ( void  )
protected

Return pointer to the orb initializer registry associated with this ORB core.

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.

TAO_Parser_Registry * TAO_ORB_Core::parser_registry ( void  )

Get the IOR parser registry.

CORBA::Object_ptr TAO_ORB_Core::pi_current ( void  )

Return a pointer to the cached TAO::PICurrent object.

void TAO_ORB_Core::pi_current ( CORBA::Object_ptr  current)

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

CORBA::Object_ptr TAO_ORB_Core::poa_current ( void  )

Accessor to the POA current.

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.
TAO_Policy_Current & TAO_ORB_Core::policy_current ( void  )

Accesors to the policy current, this object should be kept in TSS storage. The POA has to reset the policy current object on every upcall.

TAO::PolicyFactory_Registry_Adapter * TAO_ORB_Core::policy_factory_registry ( void  )

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

TAO::PolicyFactory_Registry_Adapter * TAO_ORB_Core::policy_factory_registry_i ( void  )
protected

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

TAO_Policy_Manager * TAO_ORB_Core::policy_manager ( void  )

Return the Policy_Manager for this ORB.

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

CORBA::ValueFactory TAO_ORB_Core::register_value_factory ( const char *  repository_id,
CORBA::ValueFactory  factory 
)

Value factory operations (CORBA 2.3 ptc/98-10-05 Ch. 4.2 p.4-7)

CORBA::Long TAO_ORB_Core::reinitialize_object ( TAO_Stub stub)

Reinitialise a stub after the effective profile has changed. This will happen after a location forward has been received or if a location forward supplied new target subsequently fails.

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.

TAO_Request_Dispatcher * TAO_ORB_Core::request_dispatcher ( void  )

Return the current request dispatcher strategy.

void TAO_ORB_Core::request_dispatcher ( TAO_Request_Dispatcher rd)

Set a new request dispatcher. The ORB Core retains ownership of the request dispatcher once it gets it. Currently, this only gets called at initialization.

CORBA::Object_ptr TAO_ORB_Core::resolve_async_ior_table ( void  )

Resolve the Async IOR Table reference for this ORB.

void TAO_ORB_Core::resolve_async_ior_table_i ( void  )
private

Obtain and cache the async ior table object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_codecfactory ( void  )

Resolve the CodecFactory DLL.

void TAO_ORB_Core::resolve_codecfactory_i ( void  )
protected

Obtain and cache the codec factory object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_compression_manager ( void  )

Resolve the Compression DLL.

void TAO_ORB_Core::resolve_compression_manager_i ( void  )
protected

Obtain and cache the compression manager object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_dynanyfactory ( void  )

Resolve the Dynamic Any Factory.

void TAO_ORB_Core::resolve_dynanyfactory_i ( void  )
protected

Obtain and cache the dynamic any factory object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_ior_manipulation ( void  )

Resolve the IOR Manipulation reference for this ORB.

CORBA::Object_ptr TAO_ORB_Core::resolve_ior_table ( void  )

Resolve the IOR Table reference for this ORB.

void TAO_ORB_Core::resolve_ior_table_i ( void  )
private

Obtain and cache the ior table object reference.

void TAO_ORB_Core::resolve_iormanipulation_i ( void  )
protected

Obtain and cache the IORManipulation factory object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_monitor ( void  )

Resolve the Monitor reference for this ORB.

void TAO_ORB_Core::resolve_monitor_i ( void  )
protected

Obtain and cache the Monitor object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_picurrent ( void  )

Resolve the PICurrent.

void TAO_ORB_Core::resolve_picurrent_i ( void  )
protected

Obtain and cache the picurrent factory object reference.

CORBA::Object_ptr TAO_ORB_Core::resolve_poa_current ( void  )

Resolve POA Current.

void TAO_ORB_Core::resolve_poa_current_i ( void  )
protected

Obtain and cache the poa current.

CORBA::Object_ptr TAO_ORB_Core::resolve_rir ( const char *  name)

Resolve an initial reference via the -ORBInitRef and.

CORBA::Object_ptr TAO_ORB_Core::resolve_rt_orb ( void  )

Resolve the RT ORB reference for this ORB.

CORBA::Object_ptr TAO_ORB_Core::resolve_typecodefactory ( void  )

Resolve the TypeCodeFactory DLL.

void TAO_ORB_Core::resolve_typecodefactory_i ( void  )
protected

Obtain and cache the typecode 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 ( void  )

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

int TAO_ORB_Core::run ( ACE_Time_Value tv,
int  perform_work 
)

Run the event loop.

TAO_Server_Strategy_Factory * TAO_ORB_Core::server_factory ( void  )

Returns pointer to the server factory.

const char * TAO_ORB_Core::server_id ( void  ) const

Resolve the RT Current flyweight for this ORB. Return server_id string.

TAO::ServerRequestInterceptor_Adapter * TAO_ORB_Core::serverrequestinterceptor_adapter ( void  )

Get the Server Request Interceptor adapter. Will not create a new one if not available yet.

TAO::ServerRequestInterceptor_Adapter * TAO_ORB_Core::serverrequestinterceptor_adapter_i ( void  )
protected

Get the Server Request Interceptor adapter. If not created, this method will try to create one if needed.

TAO_Service_Context_Registry & TAO_ORB_Core::service_context_registry ( void  )
CORBA::Boolean TAO_ORB_Core::service_profile_selection ( const 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>.

TAO::Invocation_Status TAO_ORB_Core::service_raise_comm_failure ( IOP::ServiceContextList clist,
TAO_Profile profile 
)

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.

TAO::Invocation_Status TAO_ORB_Core::service_raise_transient_failure ( IOP::ServiceContextList clist,
TAO_Profile profile 
)

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.

void TAO_ORB_Core::set_default ( const char *  orb_id)

Set the ORB related to the orb_id as the default ORB and not the ORB that is first binded in the ORB Table

void TAO_ORB_Core::set_delayed_transport_queueing_strategy ( TAO::Transport_Queueing_Strategy strategy)
void TAO_ORB_Core::set_eager_transport_queueing_strategy ( TAO::Transport_Queueing_Strategy strategy)
int TAO_ORB_Core::set_endpoint_helper ( const ACE_CString lane,
const ACE_CString endpoints 
)
protected

Pointer to the list of protocol loaded into this ORB instance. Helper method to hold the common code part for -ORBEndpoint and -ORBListenEndpoints options.

void TAO_ORB_Core::set_gui_resource_factory ( TAO::GUIResource_Factory gui_factory)
static

Sets the value of TAO_ORB_Core::gui_resource_factory_.

Sets the value of gui_resource_factory in TSS. ORB_Core is responsible for releasing this factory if needed.

void TAO_ORB_Core::set_network_priority_protocols_hooks ( const char *  network_priority_protocols_hooks_name)
static
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_sync_scope_hook ( Sync_Scope_Hook  hook)
void TAO_ORB_Core::set_timeout_hook ( Timeout_Hook  hook)
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)

End the event loop.

TAO_Stub_Factory * TAO_ORB_Core::stub_factory ( void  )

Returns a pointer to the Stub factory.

ACE_Thread_Manager * TAO_ORB_Core::thr_mgr ( void  )
TAO_Thread_Lane_Resources_Manager & TAO_ORB_Core::thread_lane_resources_manager ( void  )

Returns a pointer to the Thread Lane Resources Manager.

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_Allocator * TAO_ORB_Core::transport_message_buffer_allocator ( void  )

This allocator is always global and has no locks. It is intended for allocating the buffers used to queue messages in transports.

void TAO_ORB_Core::tss_cleanup ( ACE_Array_Base< void * > &  ts_objects)

Cleans up ts_objects using the underlying TSS cleanup function registry.

void TAO_ORB_Core::typecodefactory_adapter_name ( const char *  name)
static

Sets the value of TAO_ORB_Core::typecodefactory_adapter_name_.

const char * TAO_ORB_Core::typecodefactory_adapter_name ( void  )
static

Gets the value of TAO_ORB_Core::typecodefactory_adapter_name_.

void TAO_ORB_Core::unregister_value_factory ( const char *  repository_id)
void TAO_ORB_Core::use_global_collocation ( CORBA::Boolean  opt)

Set/get the collocation flags.

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

Set/get the collocation flags.

CORBA::Boolean TAO_ORB_Core::use_implrepo ( void  )

Do we attempt to register with the Implementation Repository.

TAO_Valuetype_Adapter * TAO_ORB_Core::valuetype_adapter ( void  )

Return the valuetype adapter.

void TAO_ORB_Core::valuetype_adapter_factory_name ( const char *  name)
static
const char * TAO_ORB_Core::valuetype_adapter_factory_name ( void  )
static
TAO_ZIOP_Adapter * TAO_ORB_Core::ziop_adapter ( ) const
void TAO_ORB_Core::ziop_adapter ( TAO_ZIOP_Adapter adapter)
TAO_ZIOP_Adapter * TAO_ORB_Core::ziop_adapter_i ( void  )

Friends And Related Function Documentation

CORBA::ORB_ptr CORBA::ORB_init ( int &  ,
ACE_TCHAR argv[],
const char *   
)
friend
friend class TAO_ORB_Core_Auto_Ptr
friend

Member Data Documentation

TAO_Adapter_Registry TAO_ORB_Core::adapter_registry_
protected

The list of Adapters used in this ORB.

CORBA::Object_ptr TAO_ORB_Core::async_ior_table_
protected

The cached object reference for the Async_IORTable.

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_Adapter* TAO_ORB_Core::client_request_interceptor_adapter_
protected

The adapter for handling client request interceptors.

CORBA::Object_ptr TAO_ORB_Core::codec_factory_
protected

The cached IOR for the CodecFactory DLL.

TAO_Codeset_Manager* TAO_ORB_Core::codeset_manager_
protected

Code Set Manager, received from the Resource Factory.

TAO_Collocation_Resolver* TAO_ORB_Core::collocation_resolver_
protected
CORBA::ULong TAO_ORB_Core::collocation_strategy_
protected

Default collocation policy. This should never be ORB_CONTROL.

CORBA::Object_ptr TAO_ORB_Core::compression_manager_
protected

The cached IOR for the Compression DLL.

ACE_Intrusive_Auto_Ptr<ACE_Service_Gestalt> TAO_ORB_Core::config_
protected

ORB's service configuration.

ACE_Lock_Adapter<TAO_SYNCH_MUTEX> TAO_ORB_Core::data_block_lock_
protected

The data block reference counts are locked using this mutex.

TAO_Policy_Set* TAO_ORB_Core::default_policies_
protected

The default policies.

TAO::Transport_Queueing_Strategy* TAO_ORB_Core::delayed_transport_queueing_strategy_
protected

This strategy will buffer messages.

CORBA::Object_ptr TAO_ORB_Core::dynany_factory_
protected

The cached object reference for the DynAnyFactory.

TAO::Transport_Queueing_Strategy* TAO_ORB_Core::eager_transport_queueing_strategy_
protected

This strategy will buffer messages.

TAO_Endpoint_Selector_Factory* TAO_ORB_Core::endpoint_selector_factory_
protected
TAO::Transport_Queueing_Strategy* TAO_ORB_Core::flush_transport_queueing_strategy_
protected

This strategy will not queue by default, but will flush the queue each time

TAO_Flushing_Strategy* TAO_ORB_Core::flushing_strategy_
protected

Hold the flushing strategy.

CORBA::Boolean TAO_ORB_Core::ft_send_extended_sc_
protected

TRUE transmits a full TAG_FT_GROUP component in place of the FT_GROUP_VERSION context on FT requests. This is contrary to the spec but enables more effective fault tolerant stuff.

Todo:
reference to OMG issue. Default false.
TAO_Fault_Tolerance_Service TAO_ORB_Core::ft_service_
protected

Fault Tolerant service hook.

bool TAO_ORB_Core::has_shutdown_
protected

Flag which denotes that the ORB has been shutdown.

CORBA::Object_ptr TAO_ORB_Core::implrepo_service_
protected

The cached IOR for the Implementation Repository.

int TAO_ORB_Core::imr_endpoints_in_ior_
protected

Flag for whether to put the ImR endpoints into our object refs.

InitRefMap TAO_ORB_Core::init_ref_map_
protected

Return InitRefMap to find if a particular object id is present.

TAO_IORInterceptor_Adapter* TAO_ORB_Core::ior_interceptor_adapter_
protected

IORInterceptor adapter.

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

CORBA::Object_ptr TAO_ORB_Core::monitor_
protected

The cached object reference for the Monitor.

TAO_Network_Priority_Protocols_Hooks* TAO_ORB_Core::network_priority_protocols_hooks_

Handle to the factory for network_priority_protocols_hooks_..

TAO::ObjectKey_Table TAO_ORB_Core::object_key_table_
protected

Table that stores the object key instead of caching one per-profile.

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.

TAO_SYNCH_MUTEX TAO_ORB_Core::open_lock_
protected

Mutual exclusion for calling open.

CORBA::Boolean TAO_ORB_Core::opt_for_collocation_
protected

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

CORBA::ORB_ptr 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.

char* TAO_ORB_Core::orbid_
protected

The ORBid for this ORB.

TAO::ORBInitializer_Registry_Adapter* TAO_ORB_Core::orbinitializer_registry_
protected

Registry containing all orb initializers.

TAO_Parser_Registry TAO_ORB_Core::parser_registry_
protected

The IOR parser registry.

CORBA::Object_ptr 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.

TAO_Policy_Current* TAO_ORB_Core::policy_current_
protected

Policy current.

TAO::PolicyFactory_Registry_Adapter* TAO_ORB_Core::policy_factory_registry_
protected

Registry containing all registered policy factories.

TAO_Policy_Manager* TAO_ORB_Core::policy_manager_
protected

The Policy_Manager for this ORB.

TAO_ProtocolFactorySet* TAO_ORB_Core::protocol_factories_
protected
TAO_Protocols_Hooks* TAO_ORB_Core::protocols_hooks_

Handle to the factory for protocols_hooks_..

ACE_Atomic_Op<TAO_SYNCH_MUTEX, unsigned long> TAO_ORB_Core::refcount_
protected

Number of outstanding references to this object.

TAO_Request_Dispatcher* TAO_ORB_Core::request_dispatcher_
protected

The request dispatching strategy.

TAO_Resource_Factory* TAO_ORB_Core::resource_factory_
protected

Handle to the factory for resource information..

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

ACE_CString TAO_ORB_Core::server_id_
protected

The server_id_ that was passed via -ORBServerId option.

TAO::ServerRequestInterceptor_Adapter* TAO_ORB_Core::server_request_interceptor_adapter_
protected

The adapter for handling server request interceptors.

TAO_Service_Context_Registry TAO_ORB_Core::service_context_registry_
protected

Registry containing all service context handlers.

TAO_Stub_Factory* TAO_ORB_Core::stub_factory_
protected
Sync_Scope_Hook TAO_ORB_Core::sync_scope_hook_
protected

The hook to be set for the SyncScopePolicy.

TAO_Thread_Lane_Resources_Manager* TAO_ORB_Core::thread_lane_resources_manager_
protected
ACE_Time_Value TAO_ORB_Core::thread_per_connection_timeout_
protected

The value of the timeout if the flag above is not zero.

int TAO_ORB_Core::thread_per_connection_use_timeout_
protected

The value of the timeout if the flag above is not zero.

Timeout_Hook TAO_ORB_Core::timeout_hook_
protected

The hook to be set for the RelativeRoundtripTimeoutPolicy.

ACE_Thread_Manager TAO_ORB_Core::tm_
protected

The Thread Manager.

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.

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.

bool TAO_ORB_Core::use_local_memory_pool_
private
TAO_Valuetype_Adapter* TAO_ORB_Core::valuetype_adapter_
protected

Pointer to the valuetype adapter.

TAO_ZIOP_Adapter* TAO_ORB_Core::ziop_adapter_
protected

ZIOP Adapter.

CORBA::Boolean TAO_ORB_Core::ziop_enabled_
protected

ZIOP enabled or not.


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