#include <ORB_Core.h>
Collaboration diagram for TAO_ORB_Core:
Collocation Strategies | |
enum | { ORB_CONTROL, THRU_POA, DIRECT } |
TAO::Collocation_Strategy | collocation_strategy (CORBA::Object_ptr object) |
Public Types | |
typedef void(* | Timeout_Hook )(TAO_ORB_Core *, TAO_Stub *, bool &, ACE_Time_Value &) |
Define the Timeout_Hook signature. | |
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) | |
Constructor. | |
TAO_ORB_Parameters * | orb_params (void) |
Accessor for the ORB parameters. | |
TAO_Connector_Registry * | connector_registry () |
Get the connector registry. | |
TAO_Parser_Registry * | parser_registry (void) |
Get the IOR parser registry. | |
TAO::PolicyFactory_Registry_Adapter * | policy_factory_registry (void) |
TAO::ORBInitializer_Registry_Adapter * | orbinitializer_registry (void) |
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 () |
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) |
TAO_Protocols_Hooks * | get_protocols_hooks (void) |
Gets the value of TAO_ORB_Core::protocols_hooks__. | |
int | is_collocated (const TAO_MProfile &mprofile) |
ACE_Allocator * | output_cdr_dblock_allocator (void) |
ACE_Allocator * | output_cdr_buffer_allocator (void) |
ACE_Allocator * | output_cdr_msgblock_allocator (void) |
ACE_Allocator * | input_cdr_dblock_allocator (void) |
ACE_Allocator * | input_cdr_buffer_allocator (void) |
ACE_Allocator * | input_cdr_msgblock_allocator (void) |
ACE_Allocator * | transport_message_buffer_allocator (void) |
ACE_Data_Block * | create_input_cdr_data_block (size_t size) |
ACE_Lock * | locking_strategy (void) |
Return the locking strategy used for the data blocks. | |
TAO_Policy_Set * | get_default_policies (void) |
Accessor method for the default_policies_. | |
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_Manager * | policy_manager (void) |
Return the Policy_Manager for this ORB. | |
TAO_Policy_Current & | policy_current (void) |
void | call_timeout_hook (TAO_Stub *stub, bool &has_timeout, ACE_Time_Value &time_value) |
Invoke the timeout hook if present. | |
void | connection_timeout (TAO_Stub *stub, bool &has_timeout, ACE_Time_Value &time_value) |
Invoke the timeout hook if present. | |
void | call_sync_scope_hook (TAO_Stub *stub, bool &has_synchronization, Messaging::SyncScope &scope) |
TAO::Transport_Queueing_Strategy & | get_transport_queueing_strategy (TAO_Stub *stub, Messaging::SyncScope &scope) |
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 *) |
int | add_tss_cleanup_func (ACE_CLEANUP_FUNC cleanup, size_t &slot_id) |
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) |
Run the event loop. | |
void | shutdown (CORBA::Boolean wait_for_completion) |
End the event loop. | |
int | has_shutdown (void) |
Get the shutdown flag value. | |
void | destroy () |
Shutdown the ORB and free resources. | |
void | check_shutdown () |
Check if ORB has shutdown. If it has, throw an exception. | |
int | thread_per_connection_timeout (ACE_Time_Value &timeout) const |
TAO_Stub * | create_stub_object (TAO_MProfile &mprofile, const char *type_id, CORBA::PolicyList *policy_list) |
TAO_Stub * | create_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. | |
CORBA::Boolean | use_implrepo (void) |
Do we attempt to register with the Implementation Repository. | |
CORBA::Boolean | imr_endpoints_in_ior (void) |
Do we put the ImR's endpoints into persistent object references we create. | |
CORBA::Object_ptr | resolve_typecodefactory () |
Resolve the TypeCodeFactory DLL. | |
CORBA::Object_ptr | resolve_picurrent () |
Resolve the PICurrent. | |
CORBA::Object_ptr | resolve_poa_current () |
Resolve POA Current. | |
CORBA::Object_ptr | resolve_codecfactory () |
Resolve the CodecFactory DLL. | |
CORBA::Object_ptr | resolve_dynanyfactory () |
Resolve the Dynamic Any Factory. | |
CORBA::Object_ptr | resolve_ior_manipulation () |
Resolve the IOR Manipulation reference for this ORB. | |
CORBA::Object_ptr | resolve_ior_table () |
Resolve the IOR Table reference for this ORB. | |
CORBA::Object_ptr | resolve_rir (const char *name) |
Resolve an initial reference via the -ORBInitRef and. | |
CORBA::Object_ptr | resolve_rt_orb (void) |
Resolve the RT ORB reference for this ORB. | |
const char * | server_id (void) const |
CORBA::ORB_ObjectIdList * | list_initial_references () |
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) |
int | remove_handle (ACE_HANDLE handle) |
TAO_Valuetype_Adapter * | valuetype_adapter (void) |
Return the valuetype adapter. | |
TAO_IORInterceptor_Adapter * | ior_interceptor_adapter (void) |
CORBA::Boolean | bidir_giop_policy (void) |
void | bidir_giop_policy (CORBA::Boolean) |
TAO_Object_Ref_Table & | object_ref_table (void) |
TAO::ObjectKey_Table & | object_key_table (void) |
Acceessor to the table that stores the object_keys. | |
TAO_Request_Dispatcher * | request_dispatcher (void) |
Return the current request dispatcher strategy. | |
void | request_dispatcher (TAO_Request_Dispatcher *rd) |
void | load_policy_validators (TAO_Policy_Validator &validator) |
TAO_Flushing_Strategy * | flushing_strategy (void) |
Return the flushing strategy. | |
TAO_Codeset_Manager * | codeset_manager (void) |
Get Code Set Manager. | |
InitRefMap * | init_ref_map (void) |
Return a pointer to the -ORBInitRef map. | |
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. | |
TAO::Transport_Queueing_Strategy & | default_transport_queueing_strategy (void) |
CORBA::Boolean | is_permanent_forward_condition (const CORBA::Object_ptr obj, const TAO_Service_Context &service_context) |
ACE_Service_Gestalt * | configuration () const |
Configuration accessor method. | |
auto_ptr< TAO_GIOP_Fragmentation_Strategy > | fragmentation_strategy (TAO_Transport *transport) |
Get outgoing fragmentation strategy. | |
Helper methods used by the Invocation classes. | |
CORBA::Object_ptr | poa_current (void) |
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::GUIResource_Factory * | gui_resource_factory (void) |
Returns pointer to the factory for creating gui resources. | |
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 Protocols_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) |
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) |
void | service_context_list (TAO_Stub *stub, TAO_Service_Context &service_context, CORBA::Boolean retstart) |
TAO_Fault_Tolerance_Service & | fault_tolerance_service (void) |
Return a reference to the Fault Tolerant service object. | |
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. | |
void | pi_current (CORBA::Object_ptr current) |
Set the pointer to the cached TAO::PICurrent object. | |
void | add_interceptor (PortableInterceptor::ClientRequestInterceptor_ptr interceptor) |
Register a client request interceptor. | |
void | add_interceptor (PortableInterceptor::ServerRequestInterceptor_ptr interceptor) |
Register a server request interceptor. | |
void | add_interceptor (PortableInterceptor::ClientRequestInterceptor_ptr interceptor, const CORBA::PolicyList &policies) |
Register a client request interceptor with policies. | |
void | add_interceptor (PortableInterceptor::ServerRequestInterceptor_ptr interceptor, const CORBA::PolicyList &policies) |
Register a server request interceptor with policies. | |
TAO::ClientRequestInterceptor_Adapter * | clientrequestinterceptor_adapter (void) |
TAO::ServerRequestInterceptor_Adapter * | serverrequestinterceptor_adapter (void) |
void | add_interceptor (PortableInterceptor::IORInterceptor_ptr interceptor) |
Register an IOR interceptor. | |
Static Public Member Functions | |
void | set_thread_lane_resources_manager_factory (const char *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_gui_resource_factory (TAO::GUIResource_Factory *gui_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) |
const ACE_CString & | poa_factory_name (void) |
Access the POA factory name. | |
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 | iorinterceptor_adapter_factory_name (const char *name) |
Sets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_. | |
const char * | iorinterceptor_adapter_factory_name (void) |
Gets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_. | |
void | valuetype_adapter_factory_name (const char *name) |
Sets the value of TAO_ORB_Core::valuetype_adapter_factory_name. | |
const char * | valuetype_adapter_factory_name (void) |
Gets the value of TAO_ORB_Core::valuetype_adapter_factory_name. | |
void | set_timeout_hook (Timeout_Hook hook) |
void | connection_timeout_hook (Timeout_Hook hook) |
Define the Timeout_Hook signature. | |
void | set_sync_scope_hook (Sync_Scope_Hook hook) |
Public Attributes | |
TAO_Protocols_Hooks * | protocols_hooks_ |
Handle to the factory for protocols_hooks_.. | |
Protected Member Functions | |
~TAO_ORB_Core (void) | |
int | init (int &argc, char **argv) |
int | fini (void) |
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 () |
Obtain and cache the typecode factory object reference. | |
void | resolve_poa_current_i () |
Obtain and cache the poa current. | |
void | resolve_picurrent_i () |
Obtain and cache the picurrent factory object reference. | |
TAO::ClientRequestInterceptor_Adapter * | clientrequestinterceptor_adapter_i (void) |
TAO::ServerRequestInterceptor_Adapter * | serverrequestinterceptor_adapter_i (void) |
void | resolve_codecfactory_i () |
Obtain and cache the codec factory object reference. | |
void | resolve_dynanyfactory_i () |
Obtain and cache the dynamic any factory object reference. | |
void | resolve_iormanipulation_i () |
Obtain and cache the IORManipulation factory object reference. | |
void | services_callbacks_init (void) |
void | destroy_interceptors () |
int | set_endpoint_helper (const ACE_CString &lane, const ACE_CString &endpoints) |
TAO::PolicyFactory_Registry_Adapter * | policy_factory_registry_i (void) |
TAO::ORBInitializer_Registry_Adapter * | orbinitializer_registry_i (void) |
CORBA::Long | initialize_object_i (TAO_Stub *the_stub, const TAO_MProfile &mprofile) |
Common code from ::initialize_object and ::reinitialize_object. | |
ACE_TSS_TYPE (TAO_ORB_Core_TSS_Resources) tss_resources_ | |
This is where the tss resources for this ORB are stored. | |
Protected Attributes | |
TAO_SYNCH_MUTEX | lock_ |
Synchronize internal state... | |
TAO_Thread_Lane_Resources_Manager * | thread_lane_resources_manager_ |
TAO_Collocation_Resolver * | collocation_resolver_ |
TAO_Stub_Factory * | stub_factory_ |
TAO_ProtocolFactorySet * | protocol_factories_ |
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. | |
int | imr_endpoints_in_ior_ |
Flag for whether to put the ImR endpoints into our object refs. | |
CORBA::Object_ptr | typecode_factory_ |
The cached IOR for the TypeCodeFactory DLL. | |
CORBA::Object_ptr | codec_factory_ |
The cached IOR for the CodecFactory 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::Current interface. | |
CORBA::ORB_ptr | orb_ |
CORBA::Object_var | root_poa_ |
TAO_ORB_Parameters | orb_params_ |
Parameters used by the ORB. | |
InitRefMap | init_ref_map_ |
Return InitRefMap to find if a particular object id is present. | |
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. | |
char * | orbid_ |
The ORBid for this ORB. | |
TAO_Resource_Factory * | resource_factory_ |
Handle to the factory for resource information.. | |
ACE_CString | server_id_ |
The server_id_ that was passed via -ORBServerId option. | |
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_ |
CORBA::Boolean | use_global_collocation_ |
CORBA::ULong | collocation_strategy_ |
Default collocation policy. This should never be ORB_CONTROL. | |
TAO_Policy_Manager * | policy_manager_ |
The Policy_Manager for this ORB. | |
TAO_Policy_Set * | default_policies_ |
The default policies. | |
TAO_Policy_Current * | policy_current_ |
Policy current. | |
TAO_Request_Dispatcher * | request_dispatcher_ |
The request dispatching strategy. | |
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_ |
int | has_shutdown_ |
Flag which denotes that the ORB has been shutdown. | |
TAO_SYNCH_MUTEX | open_lock_ |
Mutual exclusion for calling open. | |
int | open_called_ |
Flag which denotes that the open method was called. | |
TAO_Endpoint_Selector_Factory * | endpoint_selector_factory_ |
TAO::Transport_Queueing_Strategy * | eager_transport_queueing_strategy_ |
This strategy will buffer messages. | |
TAO::Transport_Queueing_Strategy * | delayed_transport_queueing_strategy_ |
This strategy will buffer messages. | |
TAO::Transport_Queueing_Strategy * | flush_transport_queueing_strategy_ |
TAO::Transport_Queueing_Strategy * | default_transport_queueing_strategy_ |
This strategy will not queue by default and not flush. | |
CORBA::ULong | refcount_ |
Number of outstanding references to this object. | |
TAO::PolicyFactory_Registry_Adapter * | policy_factory_registry_ |
Registry containing all registered policy factories. | |
TAO::ORBInitializer_Registry_Adapter * | orbinitializer_registry_ |
Registry containing all orb initializers. | |
CORBA::Object_ptr | pi_current_ |
Cached pointer/reference to the PICurrent object. | |
TAO::ClientRequestInterceptor_Adapter * | client_request_interceptor_adapter_ |
The adapter for handling client request interceptors. | |
TAO::ServerRequestInterceptor_Adapter * | server_request_interceptor_adapter_ |
The adapter for handling server request interceptors. | |
TAO_IORInterceptor_Adapter * | ior_interceptor_adapter_ |
IORInterceptor adapter. | |
TAO_Valuetype_Adapter * | valuetype_adapter_ |
Pointer to the valuetype adapter. | |
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. | |
TAO_Codeset_Manager * | codeset_manager_ |
Code Set Manager - points to service object in the service repo. | |
ACE_Service_Gestalt * | config_ |
ORB's service configuration. | |
Service Level Hooks | |
TAO_Fault_Tolerance_Service | ft_service_ |
Fault Tolerant service hook. | |
int | thread_per_connection_use_timeout_ |
ACE_Time_Value | thread_per_connection_timeout_ |
Private Member Functions | |
void | resolve_ior_table_i () |
Obtain and cache the dynamic any factory object reference. | |
CORBA::Boolean | is_collocation_enabled (TAO_ORB_Core *other_orb, const TAO_MProfile &mp) |
TAO_ORB_Core (const TAO_ORB_Core &) | |
void | operator= (const TAO_ORB_Core &) |
TAO::Transport_Queueing_Strategy & | eager_transport_queueing_strategy (void) |
TAO::Transport_Queueing_Strategy & | delayed_transport_queueing_strategy (void) |
TAO::Transport_Queueing_Strategy & | flush_transport_queueing_strategy (void) |
Private Attributes | |
bool | use_local_memory_pool_ |
Friends | |
class | TAO_ORB_Core_Auto_Ptr |
CORBA::ORB_ptr | CORBA::ORB_init (int &, char *argv[], const char *, CORBA::Environment &) |
This is the implementation class for the CORBA::ORB interface. The class also encapsulates the access to the ORB resources and its state.
Definition at line 158 of file ORB_Core.h.
|
Definition at line 900 of file ORB_Core.h. |
|
Definition at line 551 of file ORB_Core.h. Referenced by call_sync_scope_hook(), and set_sync_scope_hook(). |
|
Define the Timeout_Hook signature.
Definition at line 492 of file ORB_Core.h. Referenced by call_timeout_hook(), connection_timeout(), connection_timeout_hook(), and set_timeout_hook(). |
|
Definition at line 224 of file ORB_Core.h.
00225 { 00226 /// Indicate object should refer to ORB for either one of the 00227 /// following strategies. 00228 ORB_CONTROL, 00229 00230 /// Collocated calls will go thru POA. 00231 THRU_POA, 00232 00233 /// Collocated calls invoke operation on Servant directly. 00234 DIRECT 00235 }; |
|
Constructor.
Definition at line 204 of file ORB_Core.cpp. References ACE_NEW, ACE_OS::strnlen(), TAO_DEFAULT_OBJECT_REF_TABLE_SIZE, TAO_HAS_BUFFERING_CONSTRAINT_POLICY, TAO_HAS_CORBA_MESSAGING, TAO_POLICY_ORB_SCOPE, and TAO_USE_LOCAL_MEMORY_POOL.
00205 : protocols_hooks_ (0), 00206 #if TAO_USE_LOCAL_MEMORY_POOL == 1 00207 use_local_memory_pool_ (true), 00208 #else 00209 use_local_memory_pool_ (false), 00210 #endif 00211 lock_ (), 00212 thread_lane_resources_manager_ (0), 00213 collocation_resolver_ (0), 00214 stub_factory_ (0), 00215 protocol_factories_ (0), 00216 implrepo_service_ (CORBA::Object::_nil ()), 00217 use_implrepo_ (0), 00218 imr_endpoints_in_ior_ (1), 00219 typecode_factory_ (CORBA::Object::_nil ()), 00220 codec_factory_ (CORBA::Object::_nil ()), 00221 dynany_factory_ (CORBA::Object::_nil ()), 00222 ior_manip_factory_ (CORBA::Object::_nil ()), 00223 ior_table_ (CORBA::Object::_nil ()), 00224 orb_ (CORBA::ORB::_nil ()), 00225 root_poa_ (), 00226 orb_params_ (), 00227 init_ref_map_ (TAO_DEFAULT_OBJECT_REF_TABLE_SIZE), 00228 object_ref_table_ (), 00229 object_key_table_ (), 00230 orbid_ (ACE_OS::strdup (orbid ? orbid : "")), 00231 resource_factory_ (0), 00232 client_factory_ (0), 00233 server_factory_ (0), 00234 opt_for_collocation_ (1), 00235 use_global_collocation_ (1), 00236 collocation_strategy_ (THRU_POA), 00237 00238 #if (TAO_HAS_CORBA_MESSAGING == 1) 00239 00240 policy_manager_ (0), 00241 default_policies_ (0), 00242 policy_current_ (0), 00243 00244 #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ 00245 00246 poa_current_ (), 00247 adapter_registry_ (this), 00248 poa_adapter_ (0), 00249 tm_ (), 00250 tss_cleanup_funcs_ (), 00251 tss_resources_ (), 00252 has_shutdown_ (1), // Start the ORB in a "shutdown" state. Only 00253 // after CORBA::ORB_init() is called will the 00254 // ORB no longer be shutdown. This does not 00255 // mean that the ORB can be reinitialized. It 00256 // can only be initialized once. 00257 thread_per_connection_use_timeout_ (1), 00258 open_lock_ (), 00259 endpoint_selector_factory_ (0), 00260 #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) 00261 eager_transport_queueing_strategy_ (0), 00262 delayed_transport_queueing_strategy_ (0), 00263 flush_transport_queueing_strategy_ (0), 00264 #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */ 00265 default_transport_queueing_strategy_ (0), 00266 refcount_ (1), 00267 policy_factory_registry_ (0), 00268 orbinitializer_registry_ (0), 00269 #if (TAO_HAS_INTERCEPTORS == 1) 00270 pi_current_ (CORBA::Object::_nil ()), 00271 client_request_interceptor_adapter_ (0), 00272 server_request_interceptor_adapter_ (0), 00273 #endif /* TAO_HAS_INTERCEPTORS == 1 */ 00274 ior_interceptor_adapter_ (0), 00275 valuetype_adapter_ (0), 00276 parser_registry_ (), 00277 bidir_adapter_ (0), 00278 bidir_giop_policy_ (0), 00279 flushing_strategy_ (0), 00280 codeset_manager_ (0) 00281 { 00282 #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) 00283 00284 ACE_NEW (this->eager_transport_queueing_strategy_, 00285 TAO::Eager_Transport_Queueing_Strategy); 00286 00287 ACE_NEW (this->delayed_transport_queueing_strategy_, 00288 TAO::Delayed_Transport_Queueing_Strategy); 00289 00290 ACE_NEW (this->flush_transport_queueing_strategy_, 00291 TAO::Flush_Transport_Queueing_Strategy); 00292 00293 #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */ 00294 00295 #if (TAO_HAS_CORBA_MESSAGING == 1) 00296 00297 ACE_NEW (this->policy_manager_, 00298 TAO_Policy_Manager); 00299 00300 ACE_NEW (this->default_policies_, 00301 TAO_Policy_Set (TAO_POLICY_ORB_SCOPE)); 00302 00303 ACE_NEW (this->policy_current_, 00304 TAO_Policy_Current); 00305 00306 #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ 00307 00308 ACE_NEW (this->default_transport_queueing_strategy_, 00309 TAO::Default_Transport_Queueing_Strategy); 00310 00311 // Initialize the default request dispatcher. 00312 ACE_NEW (this->request_dispatcher_, 00313 TAO_Request_Dispatcher); 00314 00315 // @TODO: Can this be dynamic container instead? 00316 if (ACE_OS::strnlen (this->orbid_, 1) == 0) 00317 { 00318 ACE_NEW (this->config_, 00319 ACE_Service_Gestalt (ACE_Service_Gestalt::MAX_SERVICES, 00320 false)); // (Re)use the process-global repository 00321 } 00322 else 00323 { 00324 ACE_NEW (this->config_, 00325 ACE_Service_Gestalt (ACE_Service_Gestalt::MAX_SERVICES / 4, 00326 true)); // Use our own service repository 00327 } 00328 } |
|
Destructor is protected since the ORB Core is a reference counted object. Definition at line 330 of file ORB_Core.cpp. References default_policies_, default_transport_queueing_strategy_, delayed_transport_queueing_strategy_, eager_transport_queueing_strategy_, flush_transport_queueing_strategy_, flushing_strategy_, ACE_OS::free(), orb_, orbinitializer_registry_, policy_current_, policy_factory_registry_, policy_manager_, request_dispatcher_, and thread_lane_resources_manager_.
00331 { 00332 delete this->thread_lane_resources_manager_; 00333 00334 delete this->flushing_strategy_; 00335 00336 ACE_OS::free (this->orbid_); 00337 00338 #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) 00339 00340 delete this->eager_transport_queueing_strategy_; 00341 delete this->delayed_transport_queueing_strategy_; 00342 delete this->flush_transport_queueing_strategy_; 00343 00344 #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */ 00345 00346 #if (TAO_HAS_CORBA_MESSAGING == 1) 00347 00348 ::CORBA::release (this->policy_manager_); 00349 delete this->default_policies_; 00350 ::CORBA::release (this->policy_current_); 00351 00352 #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ 00353 00354 delete this->default_transport_queueing_strategy_; 00355 00356 delete this->request_dispatcher_; 00357 00358 delete this->policy_factory_registry_; 00359 00360 // Don't delete, is a process wide singleton shared by all orbs 00361 orbinitializer_registry_ = 0; 00362 00363 ::CORBA::release (this->orb_); 00364 00365 delete this->config_; 00366 this->config_ = 0; 00367 } |
|
|
|
Definition at line 24 of file ORB_Core.i. References ACE_GUARD_RETURN, fini(), and TAO_SYNCH_MUTEX. Referenced by TAO_ORB_Core_Auto_Ptr::reset(), TAO::ORB_Core_Ref_Counter::~ORB_Core_Ref_Counter(), and TAO_ORB_Core_Auto_Ptr::~TAO_ORB_Core_Auto_Ptr().
00025 { 00026 { 00027 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 0); 00028 --this->refcount_; 00029 if (this->refcount_ != 0) 00030 return this->refcount_; 00031 } 00032 00033 this->fini (); 00034 return 0; 00035 } |
|
Reference counting...
Definition at line 17 of file ORB_Core.i. References ACE_GUARD_RETURN, and TAO_SYNCH_MUTEX. Referenced by TAO::ORB_Table::find(), initialize_object_i(), TAO::Collocated_Invocation::invoke(), and TAO::ORB_Core_Ref_Counter::ORB_Core_Ref_Counter().
00018 { 00019 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, guard, this->lock_, 0); 00020 return this->refcount_++; 00021 } |
|
This is where the tss resources for this ORB are stored.
|
|
Get the adapter registry.
Definition at line 192 of file ORB_Core.i. References adapter_registry_. Referenced by create_object(), TAO_Request_Dispatcher::dispatch(), initialize_object_i(), TAO_GIOP_Message_Lite::process_locate_request(), and TAO_GIOP_Message_Lite::process_request().
00193 { 00194 return &this->adapter_registry_; 00195 } |
|
Register an IOR interceptor.
Definition at line 3227 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_ERROR, ACE_TEXT, ACE_THROW, TAO_IORInterceptor_Adapter::add_interceptor(), ior_interceptor_adapter(), ior_interceptor_adapter_, PortableInterceptor::IORInterceptor_ptr, and LM_ERROR.
03230 { 03231 if (this->ior_interceptor_adapter ()) 03232 { 03233 this->ior_interceptor_adapter_->add_interceptor (interceptor 03234 ACE_ENV_ARG_PARAMETER); 03235 ACE_CHECK; 03236 } 03237 else 03238 { 03239 ACE_ERROR ((LM_ERROR, 03240 ACE_TEXT ("(%P|%t) %p\n"), 03241 ACE_TEXT ("ERROR: ORB Core unable to find the ") 03242 ACE_TEXT ("IORInterceptor Adapter Factory instance"))); 03243 03244 ACE_THROW (CORBA::INTERNAL ()); 03245 } 03246 } |
|
Register a server request interceptor with policies.
Definition at line 3393 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_ERROR, ACE_TEXT, ACE_THROW, TAO::ServerRequestInterceptor_Adapter::add_interceptor(), LM_ERROR, server_request_interceptor_adapter_, serverrequestinterceptor_adapter_i(), and PortableInterceptor::ServerRequestInterceptor_ptr.
03397 { 03398 if (this->serverrequestinterceptor_adapter_i ()) 03399 { 03400 this->server_request_interceptor_adapter_->add_interceptor ( 03401 interceptor, 03402 policies 03403 ACE_ENV_ARG_PARAMETER); 03404 03405 ACE_CHECK; 03406 } 03407 else 03408 { 03409 ACE_ERROR ((LM_ERROR, 03410 ACE_TEXT ("(%P|%t) %p\n"), 03411 ACE_TEXT ("ERROR: ORB Core unable to find the ") 03412 ACE_TEXT ("Server Request Interceptor Adapter Factory ") 03413 ACE_TEXT ("instance"))); 03414 03415 ACE_THROW (CORBA::INTERNAL ()); 03416 } 03417 } |
|
Register a client request interceptor with policies.
Definition at line 3366 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_ERROR, ACE_TEXT, ACE_THROW, TAO::ClientRequestInterceptor_Adapter::add_interceptor(), client_request_interceptor_adapter_, clientrequestinterceptor_adapter_i(), PortableInterceptor::ClientRequestInterceptor_ptr, and LM_ERROR.
03370 { 03371 if (this->clientrequestinterceptor_adapter_i ()) 03372 { 03373 this->client_request_interceptor_adapter_->add_interceptor ( 03374 interceptor, 03375 policies 03376 ACE_ENV_ARG_PARAMETER); 03377 03378 ACE_CHECK; 03379 } 03380 else 03381 { 03382 ACE_ERROR ((LM_ERROR, 03383 ACE_TEXT ("(%P|%t) %p\n"), 03384 ACE_TEXT ("ERROR: ORB Core unable to find the ") 03385 ACE_TEXT ("Client Request Interceptor Adapter Factory ") 03386 ACE_TEXT ("instance"))); 03387 03388 ACE_THROW (CORBA::INTERNAL ()); 03389 } 03390 } |
|
Register a server request interceptor.
Definition at line 3343 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_ERROR, ACE_TEXT, ACE_THROW, TAO::ServerRequestInterceptor_Adapter::add_interceptor(), LM_ERROR, server_request_interceptor_adapter_, serverrequestinterceptor_adapter_i(), and PortableInterceptor::ServerRequestInterceptor_ptr.
03346 { 03347 if (this->serverrequestinterceptor_adapter_i ()) 03348 { 03349 this->server_request_interceptor_adapter_->add_interceptor (interceptor 03350 ACE_ENV_ARG_PARAMETER); 03351 ACE_CHECK; 03352 } 03353 else 03354 { 03355 ACE_ERROR ((LM_ERROR, 03356 ACE_TEXT ("(%P|%t) %p\n"), 03357 ACE_TEXT ("ERROR: ORB Core unable to find the ") 03358 ACE_TEXT ("Server Request Interceptor Adapter Factory ") 03359 ACE_TEXT ("instance"))); 03360 03361 ACE_THROW (CORBA::INTERNAL ()); 03362 } 03363 } |
|
Register a client request interceptor.
Definition at line 3292 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_ERROR, ACE_TEXT, ACE_THROW, TAO::ClientRequestInterceptor_Adapter::add_interceptor(), client_request_interceptor_adapter_, clientrequestinterceptor_adapter_i(), PortableInterceptor::ClientRequestInterceptor_ptr, and LM_ERROR.
03295 { 03296 if (this->clientrequestinterceptor_adapter_i ()) 03297 { 03298 this->client_request_interceptor_adapter_->add_interceptor (interceptor 03299 ACE_ENV_ARG_PARAMETER); 03300 ACE_CHECK; 03301 } 03302 else 03303 { 03304 ACE_ERROR ((LM_ERROR, 03305 ACE_TEXT ("(%P|%t) %p\n"), 03306 ACE_TEXT ("ERROR: ORB Core unable to find the ") 03307 ACE_TEXT ("Client Request Interceptor Adapter Factory ") 03308 ACE_TEXT ("instance"))); 03309 03310 ACE_THROW (CORBA::INTERNAL ()); 03311 } 03312 } |
|
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. Definition at line 2993 of file ORB_Core.cpp. References TAO_Cleanup_Func_Registry::register_cleanup_function(), and tss_cleanup_funcs_.
02995 { 02996 return this->tss_cleanup_funcs_.register_cleanup_function (cleanup, 02997 slot_id); 02998 } |
|
Definition at line 53 of file ORB_Core.i. References bidir_giop_policy_.
00054 { 00055 this->bidir_giop_policy_ = val; 00056 } |
|
Set and Get methods to indicate whether a BiDir IIOP policy has been set in the POA.
Definition at line 47 of file ORB_Core.i. References bidir_giop_policy_. Referenced by TAO_IIOP_Transport::generate_request_header(), and TAO_GIOP_Message_Generator_Parser_12::parse_request_header().
00048 { 00049 return this->bidir_giop_policy_; 00050 } |
|
Definition at line 2940 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), Sync_Scope_Hook, TAO_ORB_Core_Static_Resources::sync_scope_hook_, and Messaging::SyncScope. Referenced by TAO::Invocation_Adapter::set_response_flags().
02943 { 02944 Sync_Scope_Hook sync_scope_hook = 02945 TAO_ORB_Core_Static_Resources::instance ()->sync_scope_hook_; 02946 02947 if (sync_scope_hook == 0) 02948 { 02949 has_synchronization = false; 02950 return; 02951 } 02952 02953 (*sync_scope_hook) (this, stub, has_synchronization, scope); 02954 } |
|
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
Definition at line 3001 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), Timeout_Hook, and TAO_ORB_Core_Static_Resources::timeout_hook_. Referenced by TAO::LocateRequest_Invocation_Adapter::get_timeout(), and TAO::Invocation_Adapter::get_timeout().
03004 { 03005 Timeout_Hook timeout_hook = 03006 TAO_ORB_Core_Static_Resources::instance ()->timeout_hook_; 03007 03008 if (timeout_hook == 0) 03009 { 03010 has_timeout = false; 03011 return; 03012 } 03013 (*timeout_hook) (this, stub, has_timeout, time_value); 03014 } |
|
Check if ORB has shutdown. If it has, throw an exception.
Definition at line 2352 of file ORB_Core.cpp. References ACE_THROW, and has_shutdown(). Referenced by CORBA::ORB::check_shutdown().
02353 { 02354 if (this->has_shutdown ()) 02355 { 02356 // As defined by the CORBA 2.3 specification, throw a 02357 // CORBA::BAD_INV_ORDER exception with minor code 4 if the ORB 02358 // has shutdown by the time an ORB function is called. 02359 02360 ACE_THROW (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 4, 02361 CORBA::COMPLETED_NO)); 02362 } 02363 } |
|
Returns pointer to the client factory.
Definition at line 1783 of file ORB_Core.cpp. References ACE_TEXT, client_factory_, and configuration(). Referenced by TAO_Connector::create_connect_strategy(), TAO::Transport_Cache_Manager::find_transport(), TAO_Fault_Tolerance_Service::init(), TAO_Muxed_TMS::TAO_Muxed_TMS(), TAO_Profile::TAO_Profile(), TAO_Transport::TAO_Transport(), TAO::Profile_Transport_Resolver::use_parallel_connect(), and TAO_Wait_On_Read::wait().
01784 { 01785 if (this->client_factory_ == 0) 01786 { 01787 // Look in the service repository for an instance. 01788 this->client_factory_ = 01789 ACE_Dynamic_Service<TAO_Client_Strategy_Factory>::instance 01790 (this->configuration (), 01791 ACE_TEXT ("Client_Strategy_Factory")); 01792 } 01793 01794 return this->client_factory_; 01795 } |
|
Get the Client Request Interceptor adapter. Will not create a new one if not available yet. Definition at line 621 of file ORB_Core.i. References client_request_interceptor_adapter_.
00622 { 00623 return this->client_request_interceptor_adapter_; 00624 } |
|
Get the Client Request Interceptor adapter. If not created, this method will try to create one if needed. Definition at line 3315 of file ORB_Core.cpp. References ACE_GUARD_RETURN, ACE_TEXT, client_request_interceptor_adapter_, configuration(), TAO_ClientRequestInterceptor_Adapter_Factory::create(), and TAO_SYNCH_MUTEX. Referenced by add_interceptor().
03316 { 03317 if (this->client_request_interceptor_adapter_ == 0) 03318 { 03319 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 03320 ace_mon, 03321 this->lock_, 03322 0); 03323 03324 if (this->client_request_interceptor_adapter_ == 0) 03325 { 03326 TAO_ClientRequestInterceptor_Adapter_Factory *factory = 03327 ACE_Dynamic_Service<TAO_ClientRequestInterceptor_Adapter_Factory>::instance 03328 (this->configuration (), 03329 ACE_TEXT ("ClientRequestInterceptor_Adapter_Factory")); 03330 03331 if (factory) 03332 { 03333 this->client_request_interceptor_adapter_ = 03334 factory->create (); 03335 } 03336 } 03337 } 03338 03339 return this->client_request_interceptor_adapter_; 03340 } |
|
Get Code Set Manager.
Definition at line 440 of file ORB_Core.i. References TAO_Resource_Factory::codeset_manager(), TAO_ORB_Parameters::negotiate_codesets(), orb_params(), and resource_factory(). Referenced by TAO_IIOP_Acceptor::create_new_profile(), TAO_IIOP_Acceptor::create_shared_profile(), TAO_Transport::generate_request_header(), TAO_GIOP_Message_Lite::process_request(), and TAO_GIOP_Message_Base::process_request().
00441 { 00442 if (this->orb_params()->negotiate_codesets() == 0) 00443 return 0; 00444 if (this->codeset_manager_ == 0) 00445 { 00446 // This causes a factory to be loaded which will call 00447 // the codeset_manager setter in this thread. 00448 this->codeset_manager_ = 00449 this->resource_factory()->codeset_manager(); 00450 if (this->codeset_manager_ == 0) 00451 this->orb_params()->negotiate_codesets(false); 00452 } 00453 return this->codeset_manager_; 00454 } |
|
Returns a pointer to the Collocation Resolver.
Definition at line 1568 of file ORB_Core.cpp. References ACE_CString, ACE_TEXT_CHAR_TO_TCHAR, collocation_resolver_, TAO_ORB_Core_Static_Resources::collocation_resolver_name_, configuration(), and TAO_ORB_Core_Static_Resources::instance(). Referenced by collocation_strategy().
01569 { 01570 // Check if there is a cached reference. 01571 if (this->collocation_resolver_ != 0) 01572 return *this->collocation_resolver_; 01573 01574 // If not, lookup it up. 01575 const ACE_CString &collocation_resolver_name = 01576 TAO_ORB_Core_Static_Resources::instance ()->collocation_resolver_name_; 01577 01578 this->collocation_resolver_ = 01579 ACE_Dynamic_Service<TAO_Collocation_Resolver>::instance 01580 (this->configuration (), 01581 ACE_TEXT_CHAR_TO_TCHAR (collocation_resolver_name.c_str())); 01582 01583 return *this->collocation_resolver_; 01584 } |
|
This method returns the right collocation strategy, if any, to be used to perform a method invocation on the given object.
Definition at line 3540 of file ORB_Core.cpp. References ACE_ASSERT, ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, collocation_resolver(), DIRECT, TAO_Pseudo_Var_T< T >::in(), TAO_Collocation_Resolver::is_collocated(), CORBA::is_nil(), CORBA::Object_ptr, and TAO_Stub::servant_orb_var(). Referenced by TAO::Invocation_Adapter::invoke_i().
03542 { 03543 TAO_Stub *stub = object->_stubobj (); 03544 if (!CORBA::is_nil (stub->servant_orb_var ().in ()) && 03545 stub->servant_orb_var ()->orb_core () != 0) 03546 { 03547 TAO_ORB_Core *orb_core = 03548 stub->servant_orb_var ()->orb_core (); 03549 03550 const int collocated = 03551 orb_core->collocation_resolver ().is_collocated (object 03552 ACE_ENV_ARG_PARAMETER); 03553 ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY); 03554 03555 if (collocated) 03556 { 03557 switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ()) 03558 { 03559 case THRU_POA: 03560 return TAO::TAO_CS_THRU_POA_STRATEGY; 03561 03562 case DIRECT: 03563 { 03564 ///////////////////////////////////////////////////////////// 03565 // If the servant is null and you are collocated this means 03566 // that the POA policy NON-RETAIN is set, and with that policy 03567 // using the DIRECT collocation strategy is just insane. 03568 ///////////////////////////////////////////////////////////// 03569 ACE_ASSERT (object->_servant () != 0); 03570 return TAO::TAO_CS_DIRECT_STRATEGY; 03571 } 03572 } 03573 } 03574 } 03575 03576 // In this case the Object is a client. 03577 return TAO::TAO_CS_REMOTE_STRATEGY; 03578 } |
|
Configuration accessor method.
Definition at line 11 of file ORB_Core.i. Referenced by client_factory(), clientrequestinterceptor_adapter_i(), collocation_resolver(), endpoint_selector_factory(), ior_interceptor_adapter(), load_policy_validators(), TAO_Parser_Registry::open(), orbinitializer_registry_i(), TAO_DLL_Parser::parse_string(), policy_factory_registry_i(), resolve_codecfactory_i(), resolve_dynanyfactory_i(), resolve_ior_table_i(), resolve_iormanipulation_i(), resolve_picurrent_i(), resolve_poa_current_i(), resolve_typecodefactory_i(), resource_factory(), root_poa(), server_factory(), serverrequestinterceptor_adapter_i(), stub_factory(), and thread_lane_resources_manager().
00012 { 00013 return this->config_; 00014 } |
|
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
Definition at line 3024 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::alt_connection_timeout_hook_, connection_timeout_hook(), TAO_ORB_Core_Static_Resources::connection_timeout_hook_, TAO_ORB_Core_Static_Resources::instance(), and Timeout_Hook. Referenced by TAO::Profile_Transport_Resolver::get_connection_timeout().
03027 { 03028 Timeout_Hook connection_timeout_hook = 03029 TAO_ORB_Core_Static_Resources::instance ()->connection_timeout_hook_; 03030 03031 if (connection_timeout_hook == 0) 03032 { 03033 has_timeout = false; 03034 return; 03035 } 03036 03037 (*connection_timeout_hook) (this, stub, has_timeout, time_value); 03038 03039 Timeout_Hook alt_connection_timeout_hook = 03040 TAO_ORB_Core_Static_Resources::instance ()->alt_connection_timeout_hook_; 03041 03042 if (alt_connection_timeout_hook == 0) 03043 return; 03044 03045 if (!has_timeout || time_value == ACE_Time_Value::zero ) 03046 { 03047 (*alt_connection_timeout_hook) (this, stub, has_timeout,time_value); 03048 return; 03049 } 03050 03051 // At this point, both the primary and alternate hooks are defined, and 03052 // the primary did indeed set a value 03053 ACE_Time_Value tv1; 03054 bool ht1; 03055 (*alt_connection_timeout_hook) (this, stub, ht1,tv1); 03056 if (ht1 && tv1 > ACE_Time_Value::zero && tv1 < time_value) 03057 time_value = tv1; 03058 } |
|
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. Definition at line 3061 of file ORB_Core.cpp. References ACE_DEBUG, ACE_TEXT, LM_DEBUG, TAO_debug_level, Timeout_Hook, and TOCSRi. Referenced by connection_timeout().
03062 { 03063 // Saving the hook pointer so that we can use it later when needed. 03064 // For now there are only two entry points that may supply a connection 03065 // timeout hook. But there might be future entry points, so this should 03066 // probably be addressed by a more sophisticated mechanism. 03067 03068 #define TOCSRi TAO_ORB_Core_Static_Resources::instance () 03069 03070 // A consern was raised that since this function is called by two 03071 // different initializers there may be a race condition that might 03072 // require a lock. We are not using a lock at this time because of 03073 // two callers, one happens only during service directive processing 03074 // and the other only during ORB Initialization time. The former 03075 // happens when the OC_Endpoint_Selector_Factory is loaded, the 03076 // latter is part of the messaging library. The messaging library 03077 // calls this function as part of pre_init processing, and this call 03078 // happes for every ORB instance. This was the case before these The 03079 // latter call occurs when the messaging library is loaded. The 03080 // redundant calls occured then as well. Second, it isn't clear how 03081 // a lock in this static method would react in the face of windows 03082 // dlls, shared memory segments, etc. Therefore we are continuing to 03083 // keep this code lockless as it always was, assuming no 03084 // simultanious overwrite will occur. 03085 03086 if (TOCSRi->connection_timeout_hook_ == 0) 03087 { 03088 if (TAO_debug_level > 2) 03089 ACE_DEBUG ((LM_DEBUG, 03090 ACE_TEXT("TAO (%P|%t) setting primary hook\n"))); 03091 TOCSRi->connection_timeout_hook_ = hook; 03092 } 03093 else if (TOCSRi->connection_timeout_hook_ != hook && 03094 TOCSRi->alt_connection_timeout_hook_ == 0) 03095 { 03096 if (TAO_debug_level > 2) 03097 ACE_DEBUG ((LM_DEBUG, 03098 ACE_TEXT("TAO (%P|%t) setting alternate hook\n"))); 03099 TOCSRi->alt_connection_timeout_hook_ = hook; 03100 } 03101 else 03102 if (TAO_debug_level > 2) 03103 ACE_DEBUG ((LM_DEBUG, 03104 ACE_TEXT ("TAO (%P|%t) not overwriting alternate hook.") 03105 ACE_TEXT (" Is it still null? %d\n"), 03106 TOCSRi->alt_connection_timeout_hook_ == 0)); 03107 03108 #undef TOCSRi 03109 } |
|
Get the connector registry.
Definition at line 2883 of file ORB_Core.cpp. References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, TAO_Thread_Lane_Resources::connector_registry(), and lane_resources(). Referenced by operator>>(), resolve_rir(), CORBA::Object::tao_object_initialize(), TAO::Profile_Transport_Resolver::try_connect_i(), and CORBA::ORB::url_ior_string_to_object().
02884 { 02885 TAO_Connector_Registry *conn = 02886 this->lane_resources ().connector_registry (ACE_ENV_SINGLE_ARG_PARAMETER); 02887 ACE_CHECK_RETURN (0); 02888 02889 return conn; 02890 } |
|
Routine that creates a ACE_Data_Block given the lock and allocators.
Definition at line 2859 of file ORB_Core.cpp. References ACE_Data_Block, ACE_NEW_MALLOC_RETURN, and ACE_Allocator::malloc(). Referenced by create_input_cdr_data_block().
02863 { 02864 ACE_Data_Block *nb = 0; 02865 02866 ACE_NEW_MALLOC_RETURN ( 02867 nb, 02868 static_cast<ACE_Data_Block*> ( 02869 dblock_allocator->malloc (sizeof (ACE_Data_Block))), 02870 ACE_Data_Block (size, 02871 ACE_Message_Block::MB_DATA, 02872 0, 02873 buffer_allocator, 02874 lock_strategy, 02875 0, 02876 dblock_allocator), 02877 0); 02878 02879 return nb; 02880 } |
|
The Message Blocks used for input CDRs must have appropiate locking strategies. Definition at line 2835 of file ORB_Core.cpp. References create_data_block_i(), data_block_lock_, input_cdr_buffer_allocator(), input_cdr_dblock_allocator(), resource_factory(), and TAO_Resource_Factory::use_locked_data_blocks(). Referenced by TAO_GIOP_Message_Lite::make_queued_data(), and TAO_GIOP_Message_Base::make_queued_data().
02836 { 02837 02838 ACE_Allocator *dblock_allocator = 0; 02839 ACE_Allocator *buffer_allocator = 0; 02840 02841 dblock_allocator = 02842 this->input_cdr_dblock_allocator (); 02843 buffer_allocator = 02844 this->input_cdr_buffer_allocator (); 02845 02846 ACE_Lock* lock_strategy = 0; 02847 if (this->resource_factory ()->use_locked_data_blocks ()) 02848 { 02849 lock_strategy = &this->data_block_lock_; 02850 } 02851 02852 return this->create_data_block_i (size, 02853 buffer_allocator, 02854 dblock_allocator, 02855 lock_strategy); 02856 } |
|
Create a new object, use the adapter registry to create a collocated object, if not possible then create a regular object. Definition at line 1969 of file ORB_Core.cpp. References ACE_GUARD_RETURN, ACE_NEW_RETURN, adapter_registry(), TAO_Stub::base_profiles(), TAO::ORB_Table::begin(), TAO_Adapter_Registry::create_collocated_object(), TAO::ORB_Table::end(), TAO_ORB_Core_Auto_Ptr::get(), TAO::ORB_Table::instance(), is_collocation_enabled(), CORBA::Object_ptr, and TAO_SYNCH_MUTEX. Referenced by operator>>(), and CORBA::ORB::url_ior_string_to_object().
01970 { 01971 // @@ What about forwarding. With this approach we are never forwarded 01972 // when we use collocation! 01973 const TAO_MProfile &mprofile = stub->base_profiles (); 01974 01975 // @@ We should thow CORBA::NO_MEMORY in platforms with exceptions, 01976 // but we are stuck in platforms without exceptions! 01977 TAO_ORB_Core_Auto_Ptr collocated_orb_core; 01978 CORBA::Object_ptr x = 0; 01979 01980 { 01981 // Lock the ORB_Table against concurrent modification while we 01982 // iterate through the ORBs. 01983 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 01984 guard, 01985 TAO::ORB_Table::instance()->lock_, 01986 CORBA::Object::_nil ()); 01987 01988 TAO::ORB_Table * const table = TAO::ORB_Table::instance (); 01989 TAO::ORB_Table::iterator const end = table->end (); 01990 for (TAO::ORB_Table::iterator i = table->begin (); i != end; ++i) 01991 { 01992 ::TAO_ORB_Core * const other_core = (*i).second.core (); 01993 01994 if (this->is_collocation_enabled (other_core, 01995 mprofile)) 01996 { 01997 other_core->_incr_refcnt(); 01998 TAO_ORB_Core_Auto_Ptr tmp_auto_ptr (other_core); 01999 collocated_orb_core = tmp_auto_ptr; 02000 break; 02001 } 02002 } 02003 } 02004 02005 if (collocated_orb_core.get ()) 02006 { 02007 TAO_Adapter_Registry *ar = 02008 collocated_orb_core.get ()->adapter_registry (); 02009 02010 x = ar->create_collocated_object (stub, 02011 mprofile); 02012 } 02013 02014 02015 if (!x) 02016 { 02017 // The constructor sets the proxy broker as the 02018 // Remote one. 02019 ACE_NEW_RETURN (x, 02020 CORBA::Object (stub, 0), 02021 0); 02022 } 02023 02024 return x; 02025 } |
|
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. Definition at line 1892 of file ORB_Core.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Stub_Factory::create_stub(), and stub_factory(). Referenced by create_stub_object(), operator>>(), CORBA::Object::tao_object_initialize(), and CORBA::ORB::url_ior_string_to_object().
01895 { 01896 TAO_Stub *retval = 01897 this->stub_factory ()->create_stub (repository_id, 01898 profiles, 01899 this 01900 ACE_ENV_ARG_PARAMETER); 01901 ACE_CHECK_RETURN(0); 01902 return retval; 01903 } |
|
Makes sure that the ORB is open and then creates a TAO_Stub based on the endpoint. Definition at line 1915 of file ORB_Core.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Stub::base_profiles(), create_stub(), TAO_MProfile::get_profile(), TAO_Profile::policies(), TAO_MProfile::policy_list(), and TAO_MProfile::profile_count().
01919 { 01920 // Add the Polices contained in "policy_list" to each profile so 01921 // that those policies will be exposed to the client in the IOR. In 01922 // particular each CORBA::Policy has to be converted in to 01923 // Messaging::PolicyValue, and then all the Messaging::PolicyValue 01924 // should be embedded inside a Messaging::PolicyValueSeq which 01925 // became in turns the "body" of the IOP::TaggedComponent. This 01926 // conversion is a responsability of the CORBA::Profile class. (See 01927 // orbos\98-05-05.pdf Section 5.4) 01928 if (policy_list->length () != 0) 01929 { 01930 TAO_Profile * profile; 01931 01932 const CORBA::ULong count = mprofile.profile_count (); 01933 for (CORBA::ULong i = 0; i < count; ++i) 01934 { 01935 // Get the ith profile 01936 profile = mprofile.get_profile (i); 01937 profile->policies (policy_list ACE_ENV_ARG_PARAMETER); 01938 ACE_CHECK_RETURN (0); 01939 } 01940 } 01941 01942 /// Initialize a TAO_Stub object with the mprofile thats passed. 01943 TAO_Stub *stub = 01944 this->create_stub (type_id, mprofile ACE_ENV_ARG_PARAMETER); 01945 ACE_CHECK_RETURN (stub); 01946 01947 stub->base_profiles ().policy_list (policy_list); 01948 01949 return stub; 01950 } |
|
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.
Definition at line 3221 of file ORB_Core.cpp. References TAO_TSS_Resources::default_environment_, and TAO_TSS_Resources::instance().
03222 { 03223 TAO_TSS_Resources::instance ()->default_environment_ = env; 03224 } |
|
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.
Definition at line 3215 of file ORB_Core.cpp. References TAO_TSS_Resources::default_environment_, and TAO_TSS_Resources::instance(). Referenced by CORBA::Environment::default_environment(), CORBA::Environment::Environment(), and CORBA::Environment::~Environment().
03216 { 03217 return TAO_TSS_Resources::instance ()->default_environment_; 03218 } |
|
This strategy is the default, no explicit queueing and no explicit flush Definition at line 544 of file ORB_Core.i. References default_transport_queueing_strategy_. Referenced by get_transport_queueing_strategy().
00545 { 00546 return *this->default_transport_queueing_strategy_; 00547 } |
|
Definition at line 530 of file ORB_Core.i. References delayed_transport_queueing_strategy_. Referenced by get_transport_queueing_strategy().
00531 { 00532 return *this->delayed_transport_queueing_strategy_; 00533 } |
|
Shutdown the ORB and free resources.
Definition at line 2322 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, destroy_interceptors(), TAO::ORB_Table::instance(), and shutdown(). Referenced by CORBA::ORB::destroy().
02323 { 02324 // 02325 // All destroy() should do is (a) call shutdown() and (b) unbind() 02326 // from the ORB table. Nothing else should really be added to this 02327 // method. Everything else should go to the shutdown() method. 02328 // Remember when the ORB Core is finally removed from the ORB table, 02329 // the reference count goes to zero and fini() is called. fini() 02330 // calls shutdown() and does not call destroy() since destroy() will 02331 // try to unbind from the ORB table again. Additional code should 02332 // not be added to destroy() since there is no guarantee that 02333 // orb->destroy() will ever be called by the user. Since TAO 02334 // guarantees that shutdown() will be called, all cleanup code 02335 // should go there. 02336 // 02337 02338 // Shutdown the ORB and block until the shutdown is complete. 02339 this->shutdown (1 ACE_ENV_ARG_PARAMETER); 02340 ACE_CHECK; 02341 02342 // Invoke Interceptor::destroy() on all registered interceptors. 02343 this->destroy_interceptors (ACE_ENV_SINGLE_ARG_PARAMETER); 02344 ACE_CHECK; 02345 02346 // Now remove it from the ORB table so that it's ORBid may be 02347 // reused. 02348 TAO::ORB_Table::instance ()->unbind (this->orbid_); 02349 } |
|
Helper method that invokes Interceptor::destroy() on all registered interceptors when ORB::destroy() is called. Prevents exceptions from propagating up the call chain. Definition at line 2366 of file ORB_Core.cpp. References ACE_CATCHALL, ACE_DEBUG, ACE_ENDTRY, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD, ACE_TEXT, ACE_TRY, ACE_TRY_CHECK, client_request_interceptor_adapter_, TAO_IORInterceptor_Adapter::destroy_interceptors(), TAO::ServerRequestInterceptor_Adapter::destroy_interceptors(), TAO::ClientRequestInterceptor_Adapter::destroy_interceptors(), ior_interceptor_adapter_, LM_DEBUG, server_request_interceptor_adapter_, TAO_debug_level, and TAO_SYNCH_MUTEX. Referenced by destroy().
02367 { 02368 ACE_TRY 02369 { 02370 ACE_GUARD (TAO_SYNCH_MUTEX, monitor, this->lock_); 02371 02372 #if TAO_HAS_INTERCEPTORS == 1 02373 if (this->client_request_interceptor_adapter_ != 0) 02374 { 02375 this->client_request_interceptor_adapter_->destroy_interceptors ( 02376 ACE_ENV_SINGLE_ARG_PARAMETER); 02377 ACE_TRY_CHECK; 02378 02379 delete this->client_request_interceptor_adapter_; 02380 this->client_request_interceptor_adapter_ = 0; 02381 } 02382 02383 if (this->server_request_interceptor_adapter_ != 0) 02384 { 02385 this->server_request_interceptor_adapter_->destroy_interceptors ( 02386 ACE_ENV_SINGLE_ARG_PARAMETER); 02387 ACE_TRY_CHECK; 02388 02389 delete this->server_request_interceptor_adapter_; 02390 this->server_request_interceptor_adapter_ = 0; 02391 } 02392 02393 #endif /* TAO_HAS_INTERCEPTORS == 1 */ 02394 02395 if (this->ior_interceptor_adapter_ != 0) 02396 { 02397 this->ior_interceptor_adapter_->destroy_interceptors ( 02398 ACE_ENV_SINGLE_ARG_PARAMETER); 02399 ACE_TRY_CHECK; 02400 02401 this->ior_interceptor_adapter_ = 0; 02402 } 02403 02404 } 02405 ACE_CATCHALL 02406 { 02407 // .. catch all the exceptions.. 02408 if (TAO_debug_level > 3) 02409 { 02410 ACE_DEBUG ((LM_DEBUG, 02411 ACE_TEXT ("TAO (%P|%t) - Exception in TAO_ORB_Core") 02412 ACE_TEXT ("::destroy_interceptors () \n"))); 02413 } 02414 } 02415 ACE_ENDTRY; 02416 02417 return; 02418 } |
|
Gets the value of TAO_ORB_Core::dynamic_adapter_name_.
Definition at line 1464 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::dynamic_adapter_name_, and TAO_ORB_Core_Static_Resources::instance().
01465 { 01466 return TAO_ORB_Core_Static_Resources::instance ()->dynamic_adapter_name_.c_str(); 01467 } |
|
Sets the value of TAO_ORB_Core::dynamic_adapter_name_.
Definition at line 1458 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::dynamic_adapter_name_, and TAO_ORB_Core_Static_Resources::instance().
01459 { 01460 TAO_ORB_Core_Static_Resources::instance ()->dynamic_adapter_name_ = name; 01461 } |
|
Definition at line 524 of file ORB_Core.i. References eager_transport_queueing_strategy_. Referenced by get_transport_queueing_strategy().
00525 { 00526 return *this->eager_transport_queueing_strategy_; 00527 } |
|
Returns a pointer to the endpoint selector factory.
Definition at line 1690 of file ORB_Core.cpp. References ACE_CString, ACE_TEXT_CHAR_TO_TCHAR, configuration(), endpoint_selector_factory_, TAO_ORB_Core_Static_Resources::endpoint_selector_factory_name_, and TAO_ORB_Core_Static_Resources::instance().
01691 { 01692 // Check if there is a cached reference. 01693 if (this->endpoint_selector_factory_ != 0) 01694 return this->endpoint_selector_factory_; 01695 01696 // If not, look in the service repository for an instance. 01697 const ACE_CString &endpoint_selector_factory_name = 01698 TAO_ORB_Core_Static_Resources::instance ()->endpoint_selector_factory_name_; 01699 01700 this->endpoint_selector_factory_ = 01701 ACE_Dynamic_Service<TAO_Endpoint_Selector_Factory>::instance 01702 (this->configuration (), 01703 ACE_TEXT_CHAR_TO_TCHAR (endpoint_selector_factory_name.c_str())); 01704 01705 return this->endpoint_selector_factory_; 01706 } |
|
Return a reference to the Fault Tolerant service object.
Definition at line 174 of file ORB_Core.i. References ft_service_. Referenced by CORBA::ORB::_tao_ft_client_id().
00175 { 00176 return this->ft_service_; 00177 } |
|
Final termination hook, typically called by CORBA::ORB's destructor. Definition at line 1348 of file ORB_Core.cpp. References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CString, ACE_DEBUG, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_PRINT_EXCEPTION, ACE_TEXT, ACE_TEXT_CHAR_TO_TCHAR, ACE_TRY_CHECK, ACE_TRY_NEW_ENV, TAO::ORB::close_services(), codec_factory_, TAO::ObjectKey_Table::destroy(), dynany_factory_, TAO_Thread_Lane_Resources_Manager::finalize(), implrepo_service_, ior_manip_factory_, ior_table_, LM_DEBUG, object_key_table_, orbid_, shutdown(), TAO_debug_level, thr_mgr(), thread_lane_resources_manager_, typecode_factory_, and ACE_Thread_Manager::wait(). Referenced by _decr_refcnt().
01349 { 01350 ACE_TRY_NEW_ENV 01351 { 01352 // Shutdown the ORB and block until the shutdown is complete. 01353 this->shutdown (1 01354 ACE_ENV_ARG_PARAMETER); 01355 ACE_TRY_CHECK; 01356 } 01357 ACE_CATCHANY 01358 { 01359 ACE_CString message = 01360 "Exception caught in trying to shutdown "; 01361 message += this->orbid_; 01362 message += "\n"; 01363 01364 ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, 01365 message.c_str ()); 01366 } 01367 ACE_ENDTRY; 01368 01369 // Wait for any server threads, ignoring any failures. 01370 (void) this->thr_mgr ()->wait (); 01371 01372 ::CORBA::release (this->implrepo_service_); 01373 01374 ::CORBA::release (this->typecode_factory_); 01375 01376 ::CORBA::release (this->codec_factory_); 01377 01378 ::CORBA::release (this->dynany_factory_); 01379 01380 ::CORBA::release (this->ior_manip_factory_); 01381 01382 ::CORBA::release (this->ior_table_); 01383 01384 if (TAO_debug_level > 2) 01385 { 01386 ACE_DEBUG ((LM_DEBUG, 01387 ACE_TEXT ("Destroying ORB <%s>\n"), 01388 ACE_TEXT_CHAR_TO_TCHAR (this->orbid_))); 01389 } 01390 01391 // Finalize lane resources. 01392 // 01393 // @@ Do not call this->thread_lane_resources_manager().finalize(). 01394 // this->thread_lane_manager_resources() can seg fault if the 01395 // factory method it invokes returns a zero pointer, which can 01396 // easily occur if the ORB is partially initialized due to a Service 01397 // Configurator initialization failure. Instead check if the 01398 // cached pointer is non-zero and then finalize. 01399 // 01400 // @todo Fix potential seg fault in 01401 // TAO_ORB_Core::thread_lane_resources_manager(). 01402 if (this->thread_lane_resources_manager_ != 0) 01403 this->thread_lane_resources_manager_->finalize (); 01404 01405 (void) TAO::ORB::close_services (this->configuration ()); 01406 01407 // Destroy the object_key table 01408 this->object_key_table_.destroy (); 01409 01410 delete this; 01411 01412 return 0; 01413 } |
|
Definition at line 536 of file ORB_Core.i. References flush_transport_queueing_strategy_. Referenced by get_transport_queueing_strategy().
00537 { 00538 return *this->flush_transport_queueing_strategy_; 00539 } |
|
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. Definition at line 71 of file ORB_Core.i. References flushing_strategy_. Referenced by TAO_Transport::drain_queue(), TAO_Transport::handle_timeout(), TAO_Transport::post_open(), TAO_Transport::send_asynchronous_message_i(), TAO_Transport::send_reply_message_i(), and TAO_Transport::send_synchronous_message_i().
00072 { 00073 return this->flushing_strategy_; 00074 } |
|
Get outgoing fragmentation strategy.
Definition at line 2893 of file ORB_Core.cpp. References TAO_Resource_Factory::create_fragmentation_strategy(), and resource_factory().
02894 { 02895 return 02896 this->resource_factory ()->create_fragmentation_strategy ( 02897 transport, 02898 this->orb_params_.max_message_size ()); 02899 } |
|
Get a cached policy. First, check the ORB-level Policy Manager, then check the ORB defaults. Definition at line 3162 of file ORB_Core.cpp. References TAO_Objref_Var_T< T >::_retn(), ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Policy_Set::get_cached_policy(), TAO_Policy_Manager::get_cached_policy(), get_default_policies(), TAO_Objref_Var_T< T >::in(), CORBA::is_nil(), policy_manager(), and CORBA::Policy_var. Referenced by get_cached_policy_including_current().
03164 { 03165 CORBA::Policy_var result; 03166 03167 TAO_Policy_Manager *policy_manager = 03168 this->policy_manager (); 03169 if (policy_manager != 0) 03170 { 03171 result = 03172 policy_manager->get_cached_policy (type 03173 ACE_ENV_ARG_PARAMETER); 03174 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03175 } 03176 03177 if (CORBA::is_nil (result.in ())) 03178 { 03179 result = 03180 this->get_default_policies ()->get_cached_policy (type 03181 ACE_ENV_ARG_PARAMETER); 03182 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03183 } 03184 03185 return result._retn (); 03186 } |
|
Get a cached policy. First, check the thread current, then check the ORB-level Policy Manager, then check the ORB defaults. Definition at line 3189 of file ORB_Core.cpp. References TAO_Objref_Var_T< T >::_retn(), ACE_CHECK, ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, get_cached_policy(), TAO_Policy_Current::get_cached_policy(), TAO_Objref_Var_T< T >::in(), CORBA::is_nil(), policy_current(), and CORBA::Policy_var.
03192 { 03193 TAO_Policy_Current &policy_current = 03194 this->policy_current (); 03195 03196 CORBA::Policy_var result = 03197 policy_current.get_cached_policy (type 03198 ACE_ENV_ARG_PARAMETER); 03199 ACE_CHECK (CORBA::Policy::_nil ()); 03200 03201 if (CORBA::is_nil (result.in ())) 03202 { 03203 result = 03204 this->get_cached_policy (type 03205 ACE_ENV_ARG_PARAMETER); 03206 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03207 } 03208 03209 return result._retn (); 03210 } |
|
Definition at line 248 of file ORB_Core.i. References collocation_strategy_.
00249 { 00250 return this->collocation_strategy_; 00251 } |
|
Accessor method for the default_policies_.
Definition at line 575 of file ORB_Core.i. References default_policies_. Referenced by get_cached_policy(), and get_policy().
00576 { 00577 return this->default_policies_; 00578 } |
|
Get a policy. First, check the ORB-level Policy Manager, then check the ORB defaults. Definition at line 3114 of file ORB_Core.cpp. References TAO_Objref_Var_T< T >::_retn(), ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, get_default_policies(), TAO_Policy_Set::get_policy(), TAO_Policy_Manager::get_policy(), TAO_Objref_Var_T< T >::in(), CORBA::is_nil(), policy_manager(), CORBA::Policy_var, and CORBA::PolicyType. Referenced by get_policy_including_current().
03116 { 03117 CORBA::Policy_var result; 03118 03119 TAO_Policy_Manager *policy_manager = 03120 this->policy_manager (); 03121 if (policy_manager != 0) 03122 { 03123 result = policy_manager->get_policy (type 03124 ACE_ENV_ARG_PARAMETER); 03125 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03126 } 03127 03128 if (CORBA::is_nil (result.in ())) 03129 { 03130 result = 03131 this->get_default_policies ()->get_policy (type 03132 ACE_ENV_ARG_PARAMETER); 03133 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03134 } 03135 03136 return result._retn (); 03137 } |
|
Get a policy. First, check the thread current, then check the ORB-level Policy Manager, then check the ORB defaults. Definition at line 3140 of file ORB_Core.cpp. References TAO_Objref_Var_T< T >::_retn(), ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, get_policy(), TAO_Policy_Current::get_policy(), TAO_Objref_Var_T< T >::in(), CORBA::is_nil(), policy_current(), CORBA::Policy_var, and CORBA::PolicyType.
03142 { 03143 TAO_Policy_Current &policy_current = 03144 this->policy_current (); 03145 03146 CORBA::Policy_var result = 03147 policy_current.get_policy (type 03148 ACE_ENV_ARG_PARAMETER); 03149 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03150 03151 if (CORBA::is_nil (result.in ())) 03152 { 03153 result = this->get_policy (type 03154 ACE_ENV_ARG_PARAMETER); 03155 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 03156 } 03157 03158 return result._retn (); 03159 } |
|
Gets the value of TAO_ORB_Core::protocols_hooks__.
Definition at line 77 of file ORB_Core.i. References protocols_hooks_. Referenced by TAO_IIOP_Connection_Handler::open(), TAO::Remote_Invocation::send_message(), and TAO_IIOP_Connection_Handler::set_dscp_codepoint().
00078 { 00079 return this->protocols_hooks_; 00080 } |
|
Definition at line 2959 of file ORB_Core.cpp. References default_transport_queueing_strategy(), delayed_transport_queueing_strategy(), eager_transport_queueing_strategy(), flush_transport_queueing_strategy(), and Messaging::SyncScope.
02961 { 02962 02963 if (scope == Messaging::SYNC_WITH_TRANSPORT 02964 || scope == Messaging::SYNC_WITH_SERVER 02965 || scope == Messaging::SYNC_WITH_TARGET) 02966 { 02967 return this->flush_transport_queueing_strategy (); 02968 } 02969 02970 if (scope == Messaging::SYNC_NONE 02971 || scope == TAO::SYNC_EAGER_BUFFERING) 02972 { 02973 return this->eager_transport_queueing_strategy (); 02974 } 02975 02976 if (scope == TAO::SYNC_DELAYED_BUFFERING) 02977 { 02978 return this->delayed_transport_queueing_strategy (); 02979 } 02980 02981 return this->default_transport_queueing_strategy (); 02982 } |
|
Obtain the TSS resource in the given slot.
Definition at line 295 of file ORB_Core.i. References get_tss_resources(), ACE_Array_Base< void * >::size(), and TAO_ORB_Core_TSS_Resources::ts_objects_.
00296 { 00297 TAO_ORB_Core_TSS_Resources *tss_resources = 00298 this->get_tss_resources (); 00299 00300 if (slot_id >= tss_resources->ts_objects_.size ()) 00301 return 0; 00302 00303 return tss_resources->ts_objects_[slot_id]; 00304 } |
|
Obtain the TSS resources of this orb.
Definition at line 289 of file ORB_Core.i. References ACE_TSS_GET. Referenced by TAO::Wait_On_LF_No_Upcall::can_process_upcalls(), get_tss_resource(), TAO_Leader_Follower::get_tss_resources(), TAO::Nested_Upcall_Guard::Nested_Upcall_Guard(), set_tss_resource(), and TAO::Nested_Upcall_Guard::~Nested_Upcall_Guard().
00290 { 00291 return ACE_TSS_GET (&this->tss_resources_,TAO_ORB_Core_TSS_Resources); 00292 } |
|
Returns pointer to the factory for creating gui resources.
Definition at line 1539 of file ORB_Core.cpp. References TAO_TSS_Resources::gui_resource_factory_, and TAO_TSS_Resources::instance(). Referenced by TAO_Leader_Follower::reactor(), and TAO_Leader_Follower::~TAO_Leader_Follower().
01540 { 01541 return TAO_TSS_Resources::instance ()->gui_resource_factory_; 01542 } |
|
Get the shutdown flag value.
Definition at line 354 of file ORB_Core.i. References has_shutdown_. Referenced by check_shutdown(), TAO_Connection_Handler::close_connection_eh(), TAO_Leader_Follower::reset_client_thread(), run(), TAO_Leader_Follower::set_client_thread(), shutdown(), and TAO_Connection_Handler::svc_i().
00355 { 00356 return this->has_shutdown_; 00357 } |
|
For details on how this is used please see the FT service Definition at line 162 of file ORB_Core.i. References ft_service_, TAO_Service_Callbacks::hash_ft(), and TAO_Fault_Tolerance_Service::service_callback(). Referenced by TAO_Profile::hash_service_i().
00164 { 00165 if (this->ft_service_.service_callback ()) 00166 { 00167 return this->ft_service_.service_callback ()->hash_ft (p, m); 00168 } 00169 00170 return 0; 00171 } |
|
Gets the value of TAO_ORB_Core::ifr_client_adapter_name_.
Definition at line 1476 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::ifr_client_adapter_name_, and TAO_ORB_Core_Static_Resources::instance().
01477 { 01478 return TAO_ORB_Core_Static_Resources::instance ()->ifr_client_adapter_name_.c_str(); 01479 } |
|
Sets the value of TAO_ORB_Core::ifr_client_adapter_name_.
Definition at line 1470 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::ifr_client_adapter_name_, and TAO_ORB_Core_Static_Resources::instance().
01471 { 01472 TAO_ORB_Core_Static_Resources::instance ()->ifr_client_adapter_name_ = name; 01473 } |
|
Definition at line 373 of file ORB_Core.i. References implrepo_service_, and CORBA::Object_ptr.
00374 { 00375 this->implrepo_service_ = ir; 00376 } |
|
Definition at line 2908 of file ORB_Core.cpp. References CORBA::Object::_duplicate(), CORBA::Object::_nil(), TAO_Pseudo_Var_T< T >::_retn(), ACE_CATCHANY, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_GUARD_RETURN, ACE_TRY_CHECK, ACE_TRY_NEW_ENV, implrepo_service_, CORBA::is_nil(), CORBA::Object_var, orb_, CORBA::ORB::resolve_initial_references(), TAO_SYNCH_MUTEX, and use_implrepo_.
02909 { 02910 if (!this->use_implrepo_) 02911 return CORBA::Object::_nil (); 02912 02913 if (CORBA::is_nil (this->implrepo_service_)) 02914 { 02915 02916 ACE_TRY_NEW_ENV 02917 { 02918 CORBA::Object_var temp = 02919 this->orb_->resolve_initial_references ("ImplRepoService" ACE_ENV_ARG_PARAMETER); 02920 ACE_TRY_CHECK; 02921 02922 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::Object::_nil ()); 02923 02924 // @@ Worry about assigning a different IOR? (brunsch) 02925 this->implrepo_service_ = temp._retn (); 02926 } 02927 ACE_CATCHANY 02928 { 02929 // Just make sure that we have a null pointer. Ignore the exception 02930 // anyway. 02931 this->implrepo_service_ = CORBA::Object::_nil (); 02932 } 02933 ACE_ENDTRY; 02934 } 02935 02936 return CORBA::Object::_duplicate (this->implrepo_service_); 02937 } |
|
Do we put the ImR's endpoints into persistent object references we create.
Definition at line 385 of file ORB_Core.i. References imr_endpoints_in_ior_.
00386 { 00387 return imr_endpoints_in_ior_; 00388 } |
|
Initialize the guts of the ORB Core. It is intended that this be called by <CORBA::ORB_init>. |
|
Return a pointer to the -ORBInitRef map.
Definition at line 204 of file ORB_Core.i. References init_ref_map_. Referenced by CORBA::ORB::resolve_initial_references().
00205 { 00206 return &this->init_ref_map_; 00207 } |
|
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. Definition at line 2028 of file ORB_Core.cpp. References TAO_Stub::base_profiles(), initialize_object_i(), and CORBA::Object_ptr. Referenced by CORBA::Object::tao_object_initialize().
02030 { 02031 // @@ What about forwarding. With this approach we are never forwarded 02032 // when we use collocation! 02033 const TAO_MProfile &mprofile = 02034 stub->base_profiles (); 02035 02036 return initialize_object_i (stub, 02037 mprofile); 02038 } |
|
Common code from ::initialize_object and ::reinitialize_object.
Definition at line 2049 of file ORB_Core.cpp. References _incr_refcnt(), ACE_GUARD_RETURN, adapter_registry(), TAO::ORB_Table::begin(), TAO::ORB_Table::end(), TAO_ORB_Core_Auto_Ptr::get(), TAO_Adapter_Registry::initialize_collocated_object(), TAO::ORB_Table::instance(), is_collocation_enabled(), and TAO_SYNCH_MUTEX. Referenced by initialize_object(), and reinitialize_object().
02052 { 02053 CORBA::Long retval = 0; 02054 TAO_ORB_Core_Auto_Ptr collocated_orb_core; 02055 02056 { 02057 // Lock the ORB_Table against concurrent modification while we 02058 // iterate through the ORBs. 02059 ACE_MT (ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 02060 guard, 02061 TAO::ORB_Table::instance()->lock_, 02062 0)); 02063 02064 TAO::ORB_Table * const table = TAO::ORB_Table::instance (); 02065 TAO::ORB_Table::iterator const end = table->end (); 02066 for (TAO::ORB_Table::iterator i = table->begin (); i != end; ++i) 02067 { 02068 TAO_ORB_Core * const other_core = (*i).second.core (); 02069 02070 if (this->is_collocation_enabled (other_core, 02071 mprofile)) 02072 { 02073 other_core->_incr_refcnt (); 02074 TAO_ORB_Core_Auto_Ptr tmp_auto_ptr (other_core); 02075 collocated_orb_core = tmp_auto_ptr; 02076 break; 02077 } 02078 } 02079 } 02080 02081 if (collocated_orb_core.get ()) 02082 { 02083 TAO_Adapter_Registry *ar = 02084 collocated_orb_core.get ()->adapter_registry (); 02085 02086 retval = ar->initialize_collocated_object (stub); 02087 } 02088 02089 return retval; 02090 } |
|
This allocator is always global and has no locks. It is intended for allocating the buffers used in *incoming* CDR streams. Definition at line 2795 of file ORB_Core.cpp. References TAO_Thread_Lane_Resources::input_cdr_buffer_allocator(), and lane_resources(). Referenced by create_input_cdr_data_block(), and CORBA::Object::tao_object_initialize().
02796 { 02797 return this->lane_resources ().input_cdr_buffer_allocator (); 02798 } |
|
This allocator is global, may or may not have locks. It is intended for allocating the ACE_Data_Blocks used in *incoming* CDR streams. Definition at line 2789 of file ORB_Core.cpp. References TAO_Thread_Lane_Resources::input_cdr_dblock_allocator(), and lane_resources(). Referenced by create_input_cdr_data_block(), TAO_Transport::handle_input_parse_data(), TAO_GIOP_Message_Base::process_request_message(), and CORBA::Object::tao_object_initialize().
02790 { 02791 return this->lane_resources ().input_cdr_dblock_allocator (); 02792 } |
|
This allocator is always global and has no locks. It is intended for allocating the buffers used in *incoming* CDR streams. Definition at line 2801 of file ORB_Core.cpp. References TAO_Thread_Lane_Resources::input_cdr_msgblock_allocator(), and lane_resources(). Referenced by TAO_GIOP_Message_Lite::make_queued_data(), TAO_GIOP_Message_Base::make_queued_data(), TAO_GIOP_Message_Base::process_request_message(), and CORBA::Object::tao_object_initialize().
02802 { 02803 return this->lane_resources ().input_cdr_msgblock_allocator (); 02804 } |
|
Get the IOR Interceptor adapter. If not created, this method will try to create one. Definition at line 3249 of file ORB_Core.cpp. References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK_RETURN, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, ACE_PRINT_EXCEPTION, ACE_TEXT_CHAR_TO_TCHAR, ACE_TRY, ACE_TRY_CHECK, configuration(), TAO_IORInterceptor_Adapter_Factory::create(), ior_interceptor_adapter_, iorinterceptor_adapter_factory_name(), and TAO_SYNCH_MUTEX. Referenced by add_interceptor().
03250 { 03251 if (this->ior_interceptor_adapter_ == 0) 03252 { 03253 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 03254 ace_mon, 03255 this->lock_, 03256 0); 03257 03258 if (this->ior_interceptor_adapter_ == 0) 03259 { 03260 ACE_DECLARE_NEW_CORBA_ENV; 03261 ACE_TRY 03262 { 03263 TAO_IORInterceptor_Adapter_Factory * ior_ap_factory = 03264 ACE_Dynamic_Service<TAO_IORInterceptor_Adapter_Factory>::instance 03265 (this->configuration (), 03266 ACE_TEXT_CHAR_TO_TCHAR (TAO_ORB_Core::iorinterceptor_adapter_factory_name ())); 03267 03268 if (ior_ap_factory) 03269 { 03270 this->ior_interceptor_adapter_ = 03271 ior_ap_factory->create (ACE_ENV_SINGLE_ARG_PARAMETER); 03272 ACE_TRY_CHECK; 03273 } 03274 } 03275 ACE_CATCHANY 03276 { 03277 ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, 03278 "Cannot initialize the " 03279 "ior_interceptor_adapter \n"); 03280 } 03281 ACE_ENDTRY; 03282 ACE_CHECK_RETURN(0); 03283 } 03284 } 03285 03286 return this->ior_interceptor_adapter_; 03287 } |
|
Gets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_.
Definition at line 1500 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::iorinterceptor_adapter_factory_name_.
01501 { 01502 return TAO_ORB_Core_Static_Resources::instance ()->iorinterceptor_adapter_factory_name_.c_str(); 01503 } |
|
Sets the value of TAO_ORB_Core::iorinterceptor_adapter_factory_name_.
Definition at line 1494 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::iorinterceptor_adapter_factory_name_. Referenced by ior_interceptor_adapter().
01495 { 01496 TAO_ORB_Core_Static_Resources::instance ()->iorinterceptor_adapter_factory_name_ = name; 01497 } |
|
See if we have a collocated address, if yes, return the POA associated with the address. Definition at line 2109 of file ORB_Core.cpp. References TAO_Thread_Lane_Resources_Manager::is_collocated(), and thread_lane_resources_manager(). Referenced by is_collocation_enabled().
02110 { 02111 // @@ Lots of issues arise when dealing with collocation. What about 02112 // forwarding or what if this is a multi-profile IOR where the order is 02113 // significant and only one of the profiles is collocated. For example 02114 // when using a multiple servers for fault tolerance. For now, we just 02115 // look through all profiles and if any are colocated then we assume 02116 // the object is collocated. 02117 // @@ Note, if collocated we can not be forwarded! 02118 // Also, acceptor_registry_->is_collocated (...) will check the 02119 // address (ORB Host) but not the object_key. This should be checked 02120 // also. 02121 02122 return this->thread_lane_resources_manager ().is_collocated (mprofile); 02123 } |
|
Checks to see whether collocation optimizations have to be applied on objects in the other_orb Definition at line 2093 of file ORB_Core.cpp. References is_collocated(), optimize_collocation_objects(), and use_global_collocation(). Referenced by create_object(), and initialize_object_i().
02095 { 02096 if (!orb_core->optimize_collocation_objects ()) 02097 return 0; 02098 02099 if (!orb_core->use_global_collocation () && orb_core != this) 02100 return 0; 02101 02102 if (!orb_core->is_collocated (mp)) 02103 return 0; 02104 02105 return 1; 02106 } |
|
Verify condition for permanent forward is given, both parameters must provide group attributes. Definition at line 638 of file ORB_Core.i. References TAO_Service_Callbacks::is_permanent_forward_condition(), and CORBA::Object_ptr. Referenced by TAO::Synch_Twoway_Invocation::check_reply_status(), TAO_ServerRequest::init_reply(), and TAO_GIOP_Message_Base::process_request().
00640 { 00641 const TAO_Service_Callbacks *service_callback = 00642 this->fault_tolerance_service ().service_callback (); 00643 00644 const CORBA::Boolean permanent_forward_condition = 00645 service_callback && 00646 service_callback->is_permanent_forward_condition (obj, 00647 service_context); 00648 00649 return permanent_forward_condition; 00650 } |
|
For details on how this is used please see the FT service Definition at line 145 of file ORB_Core.i. References ft_service_, TAO_Service_Callbacks::is_profile_equivalent(), and TAO_Fault_Tolerance_Service::service_callback(). Referenced by TAO_Profile::is_equivalent_hook().
00147 { 00148 TAO_Service_Callbacks::Profile_Equivalence retval 00149 = TAO_Service_Callbacks::DONT_KNOW; 00150 00151 if (this->ft_service_.service_callback ()) 00152 { 00153 retval = 00154 this->ft_service_.service_callback ()->is_profile_equivalent (this_p, 00155 that_p); 00156 } 00157 00158 return retval; 00159 } |
|
Get access to the thread lane resources.
Definition at line 2421 of file ORB_Core.cpp. References TAO_Thread_Lane_Resources_Manager::lane_resources(), and thread_lane_resources_manager(). Referenced by TAO_IIOP_Connection_Handler::add_transport_to_cache(), TAO_Connector::connect(), connector_registry(), TAO_Tagged_Profile::extract_object_key(), TAO::Profile_Transport_Resolver::find_transport(), input_cdr_buffer_allocator(), input_cdr_dblock_allocator(), input_cdr_msgblock_allocator(), leader_follower(), TAO_Creation_Strategy< SVC_HANDLER >::make_svc_handler(), output_cdr_buffer_allocator(), output_cdr_dblock_allocator(), output_cdr_msgblock_allocator(), TAO_Connector::parallel_connect(), TAO_IIOP_Transport::set_bidir_context_info(), TAO_Transport::transport_cache_manager(), and transport_message_buffer_allocator().
02422 { 02423 return this->thread_lane_resources_manager ().lane_resources (); 02424 } |
|
Get access to the leader_follower class.
Definition at line 2128 of file ORB_Core.cpp. References lane_resources(), and TAO_Thread_Lane_Resources::leader_follower(). Referenced by TAO_Leader_Follower_Flushing_Strategy::flush_message(), reactor(), run(), TAO_Wait_On_Leader_Follower::wait(), and TAO_LF_Connect_Strategy::wait_i().
02129 { 02130 return this->lane_resources ().leader_follower (); 02131 } |
|
Get access to the leader follower strategy.
Definition at line 2134 of file ORB_Core.cpp. References TAO_Thread_Lane_Resources_Manager::lf_strategy(), and thread_lane_resources_manager(). Referenced by TAO_GIOP_Message_Lite::process_request_message(), TAO_GIOP_Message_Base::process_request_message(), and run().
02135 { 02136 return this->thread_lane_resources_manager ().lf_strategy (); 02137 } |
|
List all the service known by the ORB.
Definition at line 2730 of file ORB_Core.cpp. References TAO_Seq_Var_Base_T< T >::_retn(), ACE_CHECK_RETURN, ACE_NEW_THROW_EX, ACE_Array_Map< Key, Value, EqualTo >::begin(), TAO_Object_Ref_Table::begin(), TAO_Object_Ref_Table::current_size(), ACE_Array_Map< Key, Value, EqualTo >::end(), TAO_Object_Ref_Table::end(), init_ref_map_, object_ref_table_, CORBA::ORB::ObjectIdList, CORBA::ORB::ObjectIdList_var, ACE_Array_Map< Key, Value, EqualTo >::size(), CORBA::string_dup(), and TAO_LIST_OF_INITIAL_SERVICES. Referenced by CORBA::ORB::list_initial_services().
02731 { 02732 // Unsupported initial services should NOT be included in the below list! 02733 static const char *initial_services[] = { TAO_LIST_OF_INITIAL_SERVICES }; 02734 // Make sure the "terminating" zero is the last array element so 02735 // that there is a stop condition when iterating through the list. 02736 02737 static const size_t initial_services_size = 02738 sizeof (initial_services) / sizeof (initial_services[0]); 02739 02740 const size_t total_size = 02741 initial_services_size 02742 + this->init_ref_map_.size () 02743 + this->object_ref_table_.current_size (); 02744 02745 CORBA::ORB::ObjectIdList *tmp = 0; 02746 02747 ACE_NEW_THROW_EX (tmp, 02748 CORBA::ORB::ObjectIdList ( 02749 static_cast<CORBA::ULong> (total_size)), 02750 CORBA::NO_MEMORY ()); 02751 ACE_CHECK_RETURN (0); 02752 02753 CORBA::ORB::ObjectIdList_var list (tmp); 02754 list->length (static_cast<CORBA::ULong> (total_size)); 02755 02756 CORBA::ULong index = 0; 02757 // Index for ObjectIdList members. 02758 02759 // Iterate over the registered initial references. 02760 for (index = 0; index < initial_services_size; ++index) 02761 list[index] = initial_services[index]; 02762 02763 // Now iterate over the initial references created by the user and 02764 // add them to the sequence. 02765 02766 // References registered via 02767 // ORBInitInfo::register_initial_reference(). 02768 TAO_Object_Ref_Table::iterator const obj_ref_end = 02769 this->object_ref_table_.end (); 02770 02771 for (TAO_Object_Ref_Table::iterator i = this->object_ref_table_.begin (); 02772 i != obj_ref_end; 02773 ++i, ++index) 02774 list[index] = CORBA::string_dup ((*i).first.in ()); 02775 02776 // References registered via INS. 02777 InitRefMap::iterator const end = this->init_ref_map_.end (); 02778 02779 for (InitRefMap::iterator j = this-> init_ref_map_.begin (); 02780 j != end; 02781 ++j, ++index) 02782 list[index] = (*j).second.c_str (); 02783 02784 return list._retn (); 02785 } |
|
Call the libraries to handover the validators if they havent registered yet with the list of validators. Definition at line 1953 of file ORB_Core.cpp. References ACE_ENV_ARG_PARAMETER, ACE_TEXT, bidir_adapter_, configuration(), and TAO_BiDir_Adapter::load_policy_validators().
01955 { 01956 if (this->bidir_adapter_ == 0) 01957 { 01958 this->bidir_adapter_ = 01959 ACE_Dynamic_Service<TAO_BiDir_Adapter>::instance 01960 (this->configuration (), ACE_TEXT ("BiDirGIOP_Loader")); 01961 } 01962 01963 // Call the BiDir library if it has been loaded 01964 if (this->bidir_adapter_) 01965 this->bidir_adapter_->load_policy_validators (validator ACE_ENV_ARG_PARAMETER); 01966 } |
|
Return the locking strategy used for the data blocks.
Definition at line 38 of file ORB_Core.i. References data_block_lock_, resource_factory(), and TAO_Resource_Factory::use_locked_data_blocks(). Referenced by TAO_Transport::handle_input_parse_data().
00039 { 00040 if (this->resource_factory ()->use_locked_data_blocks ()) 00041 return &this->data_block_lock_; 00042 00043 return 0; 00044 } |
|
Choose to be not a default ORB when there is more than one ORB.
Definition at line 217 of file ORB_Core.i. References TAO::ORB_Table::instance(), and TAO::ORB_Table::not_default().
00218 { 00219 TAO::ORB_Table * const table = TAO::ORB_Table::instance (); 00220 table->not_default (orb_id); 00221 } |
|
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. Definition at line 132 of file ORB_Core.i. References ft_service_, TAO_Service_Callbacks::object_is_nil(), CORBA::Object_ptr, and TAO_Fault_Tolerance_Service::service_callback(). Referenced by CORBA::Object::is_nil_i().
00133 { 00134 CORBA::Boolean retval = 0; 00135 if (this->ft_service_.service_callback ()) 00136 { 00137 retval = 00138 this->ft_service_.service_callback ()->object_is_nil (obj); 00139 } 00140 return retval; 00141 } |
|
Acceessor to the table that stores the object_keys.
Definition at line 65 of file ORB_Core.i. References object_key_table_. Referenced by TAO_Profile::decode(), TAO_IIOP_Profile::parse_string_i(), TAO_Profile::TAO_Profile(), and TAO_Profile::~TAO_Profile().
00066 { 00067 return this->object_key_table_; 00068 } |
|
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. Definition at line 59 of file ORB_Core.i. References object_ref_table_. Referenced by CORBA::ORB::register_initial_reference(), CORBA::ORB::resolve_initial_references(), and resolve_rt_orb().
00060 { 00061 return this->object_ref_table_; 00062 } |
|
|
|
Definition at line 230 of file ORB_Core.i. References opt_for_collocation_.
00231 { 00232 return this->opt_for_collocation_; 00233 } |
|
Definition at line 224 of file ORB_Core.i. References opt_for_collocation_. Referenced by is_collocation_enabled().
00225 { 00226 this->opt_for_collocation_ = opt; 00227 } |
|
Get pointer to the ORB.
Definition at line 186 of file ORB_Core.i. References orb_. Referenced by TAO_Profile::get_policies(), TAO_ServerRequest::orb(), resolve_rir(), and TAO_Profile::verify_orb_configuration().
00187 { 00188 return this->orb_; 00189 } |
|
|
Return ORBid string.
Definition at line 367 of file ORB_Core.i. References orbid_.
00368 { 00369 return this->orbid_; 00370 } |
|
Return pointer to the orb initializer registry associated with this ORB core. Tries to load the PI library if it is not loaded yet Definition at line 457 of file ORB_Core.i. References ACE_GUARD_RETURN, orbinitializer_registry_, orbinitializer_registry_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB_init().
00458 { 00459 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00460 0); 00461 if (orbinitializer_registry_ == 0) 00462 { 00463 return this->orbinitializer_registry_i (); 00464 } 00465 return this->orbinitializer_registry_; 00466 } |
|
Return pointer to the orb initializer registry associated with this ORB core. Definition at line 1618 of file ORB_Core.cpp. References ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_TEXT, configuration(), orbinitializer_registry_, and ACE_Service_Gestalt::process_directive(). Referenced by orbinitializer_registry().
01619 { 01620 // If not, lookup it up. 01621 this->orbinitializer_registry_ = 01622 ACE_Dynamic_Service<TAO::ORBInitializer_Registry_Adapter>::instance 01623 (this->configuration (), 01624 ACE_TEXT ("ORBInitializer_Registry")); 01625 01626 #if !defined (TAO_AS_STATIC_LIBS) 01627 // In case we build shared, try to load the PI Client library, in a 01628 // static build we just can't do this, so don't try it, lower layers 01629 // output an error then. 01630 if (orbinitializer_registry_ == 0) 01631 { 01632 this->configuration ()->process_directive ( 01633 ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry", 01634 "TAO_PI", 01635 "_make_ORBInitializer_Registry", 01636 "")); 01637 orbinitializer_registry_ = 01638 ACE_Dynamic_Service<TAO::ORBInitializer_Registry_Adapter>::instance 01639 (this->configuration (), 01640 ACE_TEXT ("ORBInitializer_Registry")); 01641 } 01642 #endif /* !TAO_AS_STATIC_LIBS */ 01643 01644 return this->orbinitializer_registry_; 01645 } |
|
This allocator is always TSS and has no locks. It is intended for allocating the buffers used in *outgoing* CDR streams. Definition at line 2814 of file ORB_Core.cpp. References lane_resources(), and TAO_Thread_Lane_Resources::output_cdr_buffer_allocator(). Referenced by TAO_GIOP_Message_Lite::send_reply_exception().
02815 { 02816 return this->lane_resources ().output_cdr_buffer_allocator (); 02817 } |
|
This allocator is always TSS and has no locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* CDR streams. Definition at line 2807 of file ORB_Core.cpp. References lane_resources(), and TAO_Thread_Lane_Resources::output_cdr_dblock_allocator(). Referenced by TAO_Profile::create_tagged_profile(), TAO_Profile::encode(), CORBA::ORB::object_to_string(), TAO_GIOP_Message_Lite::process_request_message(), TAO_ServerRequest::send_cached_reply(), TAO_GIOP_Message_Lite::send_reply_exception(), and TAO_ServerRequest::tao_send_reply_exception().
02808 { 02809 02810 return this->lane_resources ().output_cdr_dblock_allocator (); 02811 } |
|
This allocator is always TSS and has no locks. It is intended for allocating the ACE_Data_Blocks used in *outgoing* CDR streams. Definition at line 2821 of file ORB_Core.cpp. References lane_resources(), and TAO_Thread_Lane_Resources::output_cdr_msgblock_allocator(). Referenced by TAO_Profile::create_tagged_profile(), TAO_Profile::encode(), CORBA::ORB::object_to_string(), TAO_GIOP_Message_Lite::process_request_message(), TAO_ServerRequest::send_cached_reply(), TAO_GIOP_Message_Lite::send_reply_exception(), and TAO_ServerRequest::tao_send_reply_exception().
02822 { 02823 return this->lane_resources ().output_cdr_msgblock_allocator (); 02824 } |
|
Get the IOR parser registry.
Definition at line 271 of file ORB_Core.i. References parser_registry_. Referenced by CORBA::ORB::string_to_object().
00272 { 00273 return &this->parser_registry_; 00274 } |
|
Set the pointer to the cached TAO::PICurrent object.
Definition at line 613 of file ORB_Core.i. References CORBA::Object_ptr, and pi_current_.
00614 { 00615 // Not duplicated since the ORB Core's "object_ref_table" already 00616 // contains a duplicate of the PICurrent object. 00617 this->pi_current_ = current; 00618 } |
|
Return a pointer to the cached TAO::PICurrent object.
Definition at line 603 of file ORB_Core.i. References pi_current_.
00604 { 00605 // A pointer/reference to PICurrent is cached in the ORB Core since 00606 // it is accessed in the critical path (i.e. the request invocation 00607 // path). Caching it prevents additional overhead to due object 00608 // resolution from occurring. 00609 return this->pi_current_; 00610 } |
|
Get the adapter named "RootPOA" and cache the result, this is an optimization for the POA. Definition at line 1877 of file ORB_Core.cpp. References ACE_GUARD_RETURN, adapter_registry_, TAO_Adapter_Registry::find_adapter(), poa_adapter_, and TAO_SYNCH_MUTEX. Referenced by root_poa().
01878 { 01879 if (this->poa_adapter_ == 0) 01880 { 01881 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); 01882 if (this->poa_adapter_ == 0) 01883 { 01884 this->poa_adapter_ = 01885 this->adapter_registry_.find_adapter ("RootPOA"); 01886 } 01887 } 01888 return this->poa_adapter_; 01889 } |
|
|
|
Access the POA factory name.
Definition at line 1677 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::poa_factory_name_.
01678 { 01679 return TAO_ORB_Core_Static_Resources::instance ()->poa_factory_name_; 01680 } |
|
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. Definition at line 552 of file ORB_Core.i. References policy_current_. Referenced by get_cached_policy_including_current(), get_policy_including_current(), and CORBA::ORB::resolve_policy_current().
00553 { 00554 return *this->policy_current_; 00555 } |
|
Return pointer to the policy factory registry associated with this ORB core. Definition at line 469 of file ORB_Core.i. References ACE_GUARD_RETURN, policy_factory_registry_, policy_factory_registry_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::_create_policy(), and CORBA::ORB::create_policy().
00470 { 00471 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00472 0); 00473 if (policy_factory_registry_ == 0) 00474 { 00475 return this->policy_factory_registry_i (); 00476 } 00477 return this->policy_factory_registry_; 00478 } |
|
Return pointer to the policy factory registry associated with this ORB core. Definition at line 1587 of file ORB_Core.cpp. References ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_TEXT, configuration(), TAO_PolicyFactory_Registry_Factory::create(), policy_factory_registry_, and ACE_Service_Gestalt::process_directive(). Referenced by policy_factory_registry().
01588 { 01589 01590 TAO_PolicyFactory_Registry_Factory *loader = 01591 ACE_Dynamic_Service<TAO_PolicyFactory_Registry_Factory>::instance 01592 (this->configuration (), 01593 ACE_TEXT ("PolicyFactory_Loader")); 01594 01595 if (loader == 0) 01596 { 01597 this->configuration ()->process_directive ( 01598 ACE_DYNAMIC_SERVICE_DIRECTIVE("PolicyFactory_Loader", 01599 "TAO_PI", 01600 "_make_TAO_PolicyFactory_Loader", 01601 "")); 01602 loader = 01603 ACE_Dynamic_Service<TAO_PolicyFactory_Registry_Factory>::instance 01604 (this->configuration (), 01605 ACE_TEXT ("PolicyFactory_Loader")); 01606 } 01607 01608 if (loader != 0) 01609 { 01610 this->policy_factory_registry_ = 01611 loader->create (); 01612 } 01613 01614 return this->policy_factory_registry_; 01615 } |
|
Return the Policy_Manager for this ORB.
Definition at line 281 of file ORB_Core.i. References policy_manager_. Referenced by get_cached_policy(), get_policy(), and CORBA::ORB::resolve_policy_manager().
00282 { 00283 return this->policy_manager_; 00284 } |
|
Get the protocol factories.
Definition at line 265 of file ORB_Core.i. References protocol_factories(), and TAO_OC_RETRIEVE. Referenced by TAO_Connector_Registry::open(), TAO_Acceptor_Registry::open(), TAO_Acceptor_Registry::open_default(), and protocol_factories().
00266 { 00267 return TAO_OC_RETRIEVE (protocol_factories); 00268 } |
|
Returns pointer to the Protocols_Hooks.
|
|
Wrappers that forward the request to the concurrency strategy.
Definition at line 2902 of file ORB_Core.cpp. References leader_follower(), and TAO_Leader_Follower::reactor(). Referenced by TAO_Connection_Handler::close_connection_eh(), TAO::Transport_Cache_Manager::find_transport(), TAO_Resume_Handle::handle_input_return_value_hook(), TAO_Transport::notify_reactor(), TAO_Transport::register_handler(), TAO_Leader_Follower::reset_client_thread(), TAO_Resume_Handle::resume_handle(), run(), TAO_Leader_Follower::set_client_thread(), TAO_Wait_On_Read::wait(), TAO_Wait_On_Reactor::wait(), and CORBA::ORB::work_pending().
02903 { 02904 return this->leader_follower ().reactor (); 02905 } |
|
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. |
|
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. Definition at line 2041 of file ORB_Core.cpp. References TAO_Stub::base_profiles(), TAO_Stub::forward_profiles(), and initialize_object_i().
02042 { 02043 return initialize_object_i (stub, stub->forward_profiles () 02044 ? *(stub->forward_profiles ()) 02045 : stub->base_profiles ()); 02046 } |
|
Remove 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. |
|
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. Definition at line 1906 of file ORB_Core.cpp. References request_dispatcher_.
01907 { 01908 // Assume ownership of the request dispatcher. 01909 TAO_Request_Dispatcher *tmp = this->request_dispatcher_; 01910 this->request_dispatcher_ = request_dispatcher; 01911 delete tmp; 01912 } |
|
Return the current request dispatcher strategy.
Definition at line 198 of file ORB_Core.i. References request_dispatcher_. Referenced by TAO::Collocated_Invocation::invoke(), TAO_GIOP_Message_Base::process_locate_request(), and TAO_GIOP_Message_Base::process_request().
00199 { 00200 return this->request_dispatcher_; 00201 } |
|
Reset the flags in the loaded services.
Definition at line 117 of file ORB_Core.i. References ft_service_, TAO_Service_Callbacks::reset_profile_flags(), and TAO_Fault_Tolerance_Service::service_callback().
00118 { 00119 // @@ If different services have the same feature we may want to 00120 // prioritise them here. We need to decide here whose selection of 00121 // profile is more important. 00122 00123 if (this->ft_service_.service_callback ()) 00124 { 00125 this->ft_service_.service_callback ()->reset_profile_flags (); 00126 } 00127 return; 00128 } |
|
Resolve the CodecFactory DLL.
Definition at line 421 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_codecfactory_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00422 { 00423 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00424 CORBA::Object::_nil ()); 00425 if (CORBA::is_nil (this->codec_factory_)) 00426 { 00427 this->resolve_codecfactory_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00428 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00429 } 00430 return CORBA::Object::_duplicate (this->codec_factory_); 00431 } |
|
Obtain and cache the codec factory object reference.
Definition at line 2460 of file ORB_Core.cpp. References ACE_CHECK, ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_TEXT, codec_factory_, configuration(), TAO_Object_Loader::create_object(), and ACE_Service_Gestalt::process_directive(). Referenced by resolve_codecfactory().
02461 { 02462 TAO_Object_Loader *loader = 02463 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02464 (this->configuration (), 02465 ACE_TEXT ("CodecFactory_Loader")); 02466 02467 if (loader == 0) 02468 { 02469 this->configuration()->process_directive 02470 (ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory", 02471 "TAO_CodecFactory", 02472 "_make_TAO_CodecFactory_Loader", 02473 "")); 02474 loader = 02475 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02476 (this->configuration (), ACE_TEXT ("CodecFactory_Loader")); 02477 } 02478 02479 if (loader != 0) 02480 { 02481 this->codec_factory_ = 02482 loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER); 02483 ACE_CHECK; 02484 } 02485 } |
|
Resolve the Dynamic Any Factory.
Definition at line 481 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_dynanyfactory_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00482 { 00483 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00484 CORBA::Object::_nil ()); 00485 if (CORBA::is_nil (this->dynany_factory_)) 00486 { 00487 this->resolve_dynanyfactory_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00488 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00489 } 00490 return CORBA::Object::_duplicate (this->dynany_factory_); 00491 } |
|
Obtain and cache the dynamic any factory object reference.
Definition at line 2552 of file ORB_Core.cpp. References ACE_CHECK, ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_TEXT, configuration(), TAO_Object_Loader::create_object(), dynany_factory_, and ACE_Service_Gestalt::process_directive(). Referenced by resolve_dynanyfactory().
02553 { 02554 TAO_Object_Loader *loader = 02555 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02556 (this->configuration (), 02557 ACE_TEXT ("DynamicAny_Loader")); 02558 02559 if (loader == 0) 02560 { 02561 this->configuration ()->process_directive 02562 (ACE_DYNAMIC_SERVICE_DIRECTIVE("DynamicAny_Loader", 02563 "TAO_DynamicAny", 02564 "_make_TAO_DynamicAny_Loader", 02565 "")); 02566 loader = 02567 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02568 (this->configuration (), 02569 ACE_TEXT ("DynamicAny_Loader")); 02570 } 02571 02572 if (loader != 0) 02573 { 02574 this->dynany_factory_ = 02575 loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER); 02576 ACE_CHECK; 02577 } 02578 } |
|
Resolve the IOR Manipulation reference for this ORB.
Definition at line 494 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_iormanipulation_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00495 { 00496 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00497 CORBA::Object::_nil ()); 00498 if (CORBA::is_nil (this->ior_manip_factory_)) 00499 { 00500 this->resolve_iormanipulation_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00501 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00502 } 00503 return CORBA::Object::_duplicate (this->ior_manip_factory_); 00504 } |
|
Resolve the IOR Table reference for this ORB.
Definition at line 507 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_ior_table_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00508 { 00509 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00510 CORBA::Object::_nil ()); 00511 if (CORBA::is_nil (this->ior_table_)) 00512 { 00513 this->resolve_ior_table_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00514 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00515 } 00516 return CORBA::Object::_duplicate (this->ior_table_); 00517 } |
|
Obtain and cache the dynamic any factory object reference.
Definition at line 2609 of file ORB_Core.cpp. References TAO_Pseudo_Var_T< T >::_retn(), ACE_CHECK, ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_TEXT, adapter_registry_, configuration(), TAO_Adapter_Factory::create(), ACE_Auto_Basic_Ptr< X >::get(), TAO_Adapter_Registry::insert(), ior_table_, CORBA::Object_var, ACE_Service_Gestalt::process_directive(), and ACE_Auto_Basic_Ptr< X >::release(). Referenced by resolve_ior_table().
02610 { 02611 TAO_Adapter_Factory *factory = 02612 ACE_Dynamic_Service<TAO_Adapter_Factory>::instance 02613 (this->configuration (), 02614 ACE_TEXT ("TAO_IORTable")); 02615 02616 if (factory == 0) 02617 { 02618 this->configuration ()->process_directive 02619 (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_IORTable", 02620 "TAO_IORTable", 02621 "_make_TAO_Table_Adapter_Factory", 02622 "")); 02623 factory = 02624 ACE_Dynamic_Service<TAO_Adapter_Factory>::instance 02625 (this->configuration (), ACE_TEXT ("TAO_IORTable")); 02626 } 02627 02628 if (factory != 0) 02629 { 02630 ACE_Auto_Ptr <TAO_Adapter> iortable_adapter (factory->create (this)); 02631 iortable_adapter->open (ACE_ENV_SINGLE_ARG_PARAMETER); 02632 ACE_CHECK; 02633 02634 CORBA::Object_var tmp_root = iortable_adapter->root (); 02635 02636 this->adapter_registry_.insert (iortable_adapter.get () ACE_ENV_ARG_PARAMETER); 02637 ACE_CHECK; 02638 02639 // It is now (exception) safe to release ownership from the auto pointers 02640 this->ior_table_= tmp_root._retn (); 02641 iortable_adapter.release (); 02642 } 02643 } |
|
Obtain and cache the IORManipulation factory object reference.
Definition at line 2581 of file ORB_Core.cpp. References ACE_CHECK, ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_TEXT, configuration(), TAO_Object_Loader::create_object(), ior_manip_factory_, and ACE_Service_Gestalt::process_directive(). Referenced by resolve_ior_manipulation().
02582 { 02583 TAO_Object_Loader *loader = 02584 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02585 (this->configuration (), 02586 ACE_TEXT ("IORManip_Loader")); 02587 02588 if (loader == 0) 02589 { 02590 this->configuration()->process_directive 02591 (ACE_DYNAMIC_SERVICE_DIRECTIVE("IORManip_Loader", 02592 "TAO_IORManip", 02593 "_make_TAO_IORManip_Loader", 02594 "")); 02595 loader = 02596 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02597 (this->configuration (), ACE_TEXT ("IORManip_Loader")); 02598 } 02599 02600 if (loader != 0) 02601 { 02602 this->ior_manip_factory_ = 02603 loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER); 02604 ACE_CHECK; 02605 } 02606 } |
|
Resolve the PICurrent.
Definition at line 406 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_picurrent_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00407 { 00408 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00409 CORBA::Object::_nil ()); 00410 if (CORBA::is_nil (this->pi_current_)) 00411 { 00412 this->resolve_picurrent_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00413 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00414 } 00415 return CORBA::Object::_duplicate (this->pi_current_); 00416 } |
|
Obtain and cache the picurrent factory object reference.
Definition at line 2519 of file ORB_Core.cpp. References ACE_CHECK, ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_TEXT, configuration(), TAO_Object_Loader::create_object(), CORBA::Object_ptr, pi_current_, and ACE_Service_Gestalt::process_directive(). Referenced by resolve_picurrent().
02520 { 02521 TAO_Object_Loader *loader = 02522 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02523 (this->configuration (), 02524 ACE_TEXT ("PICurrent_Loader")); 02525 02526 if (loader == 0) 02527 { 02528 this->configuration ()->process_directive 02529 (ACE_DYNAMIC_SERVICE_DIRECTIVE("PICurrent_Loader", 02530 "TAO_PI", 02531 "_make_TAO_PICurrent_Loader", 02532 "")); 02533 loader = 02534 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02535 (this->configuration (), ACE_TEXT ("PICurrent_Loader")); 02536 } 02537 02538 if (loader != 0) 02539 { 02540 CORBA::Object_ptr pi = 02541 loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER); 02542 ACE_CHECK; 02543 02544 this->pi_current_ = pi; 02545 } 02546 } |
|
Resolve POA Current.
Definition at line 560 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_poa_current_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00561 { 00562 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00563 CORBA::Object::_nil ()); 00564 if (CORBA::is_nil (this->poa_current_.in ())) 00565 { 00566 this->resolve_poa_current_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00567 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00568 } 00569 return CORBA::Object::_duplicate (this->poa_current_.in ()); 00570 } |
|
Obtain and cache the poa current.
Definition at line 2488 of file ORB_Core.cpp. References ACE_CHECK, ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_TEXT, configuration(), TAO_Object_Loader::create_object(), poa_current_, and ACE_Service_Gestalt::process_directive(). Referenced by resolve_poa_current().
02489 { 02490 TAO_Object_Loader *loader = 02491 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02492 (this->configuration(), 02493 ACE_TEXT ("TAO_POA_Current_Factory")); 02494 02495 if (loader == 0) 02496 { 02497 this->configuration()->process_directive 02498 (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_POA_Current_Factory", 02499 "TAO_PortableServer", 02500 "_make_TAO_POA_Current_Factory", 02501 "")); 02502 loader = 02503 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02504 (this->configuration(), ACE_TEXT ("TAO_POA_Current_Factory")); 02505 } 02506 02507 if (loader != 0) 02508 { 02509 this->poa_current_ = 02510 loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER); 02511 ACE_CHECK; 02512 } 02513 } |
|
Resolve an initial reference via the -ORBInitRef and.
Definition at line 2669 of file ORB_Core.cpp. References CORBA::Object::_nil(), ACE_CHECK_RETURN, ACE_CString, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, connector_registry(), TAO_ORB_Parameters::default_init_ref(), TAO::String_var< charT >::in(), TAO_Connector_Registry::object_key_delimiter(), orb(), orb_params(), CORBA::ORB::string_to_object(), CORBA::String_var, ACE_OS::strlen(), and ACE_OS::strncmp(). Referenced by CORBA::ORB::resolve_initial_references().
02671 { 02672 // Get the table of initial references specified through 02673 // -ORBInitRef. 02674 ACE_CString ior; 02675 ACE_CString object_id ((const char *) name); 02676 02677 // Get the list of initial reference prefixes specified through 02678 // -ORBDefaultInitRef. 02679 CORBA::String_var default_init_ref = 02680 this->orb_params ()->default_init_ref (); 02681 02682 // Check if a DefaultInitRef was specified. 02683 if (ACE_OS::strlen (default_init_ref.in ()) != 0) 02684 { 02685 static const char corbaloc_prefix[] = "corbaloc:"; 02686 static const char mcast_prefix[] = "mcast:"; 02687 char object_key_delimiter = 0; 02688 02689 ACE_CString list_of_profiles (default_init_ref.in ()); 02690 02691 // Check if the protocol is corbaloc: or mcast:. 02692 // If it is, set the object_key_delimiter. 02693 if ((ACE_OS::strncmp (default_init_ref.in (), 02694 corbaloc_prefix, 02695 sizeof corbaloc_prefix -1) == 0) || 02696 (ACE_OS::strncmp (default_init_ref.in (), 02697 mcast_prefix, 02698 sizeof mcast_prefix -1) == 0)) 02699 { 02700 object_key_delimiter = '/'; 02701 } 02702 else 02703 { 02704 TAO_Connector_Registry *conn_reg = 02705 this->connector_registry (ACE_ENV_SINGLE_ARG_PARAMETER); 02706 ACE_CHECK_RETURN (0); 02707 02708 // Obtain the appropriate object key delimiter for the 02709 // specified protocol. 02710 object_key_delimiter = 02711 conn_reg->object_key_delimiter (list_of_profiles.c_str ()); 02712 } 02713 02714 // Make sure that the default initial reference doesn't end 02715 // with the object key delimiter character. 02716 if (list_of_profiles[list_of_profiles.length() - 1] != 02717 object_key_delimiter) 02718 list_of_profiles += ACE_CString (object_key_delimiter); 02719 02720 list_of_profiles += object_id; 02721 02722 return this->orb ()->string_to_object (list_of_profiles.c_str () 02723 ACE_ENV_ARG_PARAMETER); 02724 } 02725 02726 return CORBA::Object::_nil (); 02727 } |
|
Resolve the RT ORB reference for this ORB.
Definition at line 583 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_GUARD_RETURN, CORBA::is_nil(), object_ref_table(), TAO_Object_Ref_Table::resolve_initial_reference(), rt_orb_, TAO_OBJID_RTORB, and TAO_SYNCH_MUTEX.
00584 { 00585 if (CORBA::is_nil (this->rt_orb_.in ())) 00586 { 00587 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00588 CORBA::Object::_nil ()); 00589 if (CORBA::is_nil (this->rt_orb_.in ())) 00590 { 00591 // Save a reference to the priority mapping manager. 00592 this->rt_orb_ = 00593 this->object_ref_table ().resolve_initial_reference ( 00594 TAO_OBJID_RTORB); 00595 } 00596 } 00597 00598 return CORBA::Object::_duplicate (this->rt_orb_.in ()); 00599 } |
|
Resolve the TypeCodeFactory DLL.
Definition at line 391 of file ORB_Core.i. References CORBA::Object::_duplicate(), ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, CORBA::is_nil(), resolve_typecodefactory_i(), and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
00392 { 00393 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 00394 CORBA::Object::_nil ()); 00395 if (CORBA::is_nil (this->typecode_factory_)) 00396 { 00397 this->resolve_typecodefactory_i (ACE_ENV_SINGLE_ARG_PARAMETER); 00398 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 00399 } 00400 return CORBA::Object::_duplicate (this->typecode_factory_); 00401 } |
|
Obtain and cache the typecode factory object reference.
Definition at line 2427 of file ORB_Core.cpp. References ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ENV_ARG_PARAMETER, ACE_ERROR, ACE_TEXT, ACE_THROW, configuration(), TAO_Object_Loader::create_object(), LM_ERROR, ACE_Service_Gestalt::process_directive(), and typecode_factory_. Referenced by resolve_typecodefactory().
02428 { 02429 TAO_Object_Loader *loader = 02430 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02431 (this->configuration (), 02432 ACE_TEXT ("TypeCodeFactory_Loader")); 02433 02434 if (loader == 0) 02435 { 02436 this->configuration ()->process_directive 02437 (ACE_DYNAMIC_SERVICE_DIRECTIVE("TypeCodeFactory", 02438 "TAO_TypeCodeFactory", 02439 "_make_TAO_TypeCodeFactory_Loader", 02440 "")); 02441 loader = 02442 ACE_Dynamic_Service<TAO_Object_Loader>::instance 02443 (this->configuration (), 02444 ACE_TEXT ("TypeCodeFactory_Loader")); 02445 02446 if (loader == 0) 02447 { 02448 ACE_ERROR ((LM_ERROR, 02449 ACE_TEXT ("(%P|%t) Unable to instantiate ") 02450 ACE_TEXT ("a TypeCodeFactory_Loader\n"))); 02451 ACE_THROW (CORBA::ORB::InvalidName ()); 02452 } 02453 } 02454 02455 this->typecode_factory_ = 02456 loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER); 02457 } |
|
|
Return the RootPOA, or try to load it if not initialized already.
Definition at line 1813 of file ORB_Core.cpp. References CORBA::Object::_duplicate(), CORBA::Object::_nil(), ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, ACE_TEXT_CHAR_TO_TCHAR, adapter_registry_, configuration(), TAO_Adapter_Factory::create(), TAO_Adapter_Registry::insert(), TAO_ORB_Core_Static_Resources::instance(), CORBA::is_nil(), TAO_Adapter::open(), poa_adapter(), TAO_ORB_Core_Static_Resources::poa_factory_directive_, TAO_ORB_Core_Static_Resources::poa_factory_name_, ACE_Service_Gestalt::process_directive(), TAO_Adapter::root(), root_poa_, and TAO_SYNCH_MUTEX. Referenced by CORBA::ORB::resolve_initial_references().
01814 { 01815 // DCL .. 01816 if (CORBA::is_nil (this->root_poa_.in ())) 01817 { 01818 01819 // Making sure the initialization process in the current thread uses 01820 // the correct service repository (ours), instead of the global one. 01821 ACE_Service_Config_Guard scg (this->configuration ()); 01822 01823 01824 TAO_ORB_Core_Static_Resources* static_resources = 01825 TAO_ORB_Core_Static_Resources::instance (); 01826 01827 TAO_Adapter_Factory *factory = 01828 ACE_Dynamic_Service<TAO_Adapter_Factory>::instance 01829 (this->configuration (), 01830 static_resources->poa_factory_name_.c_str()); 01831 01832 if (factory == 0) 01833 { 01834 this->configuration()->process_directive ( 01835 ACE_TEXT_CHAR_TO_TCHAR ( 01836 static_resources->poa_factory_directive_.c_str())); 01837 01838 factory = 01839 ACE_Dynamic_Service<TAO_Adapter_Factory>::instance 01840 (this->configuration (), 01841 static_resources->poa_factory_name_.c_str()); 01842 } 01843 01844 if (factory == 0) 01845 { 01846 return CORBA::Object::_nil (); 01847 } 01848 01849 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 01850 monitor, 01851 this->open_lock_, 01852 0); 01853 01854 if (CORBA::is_nil (this->root_poa_.in ())) 01855 { 01856 // @@ Not exception safe 01857 TAO_Adapter *poa_adapter = 01858 factory->create (this); 01859 01860 poa_adapter->open (ACE_ENV_SINGLE_ARG_PARAMETER); 01861 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 01862 01863 // @@ Not exception safe 01864 this->root_poa_ = 01865 poa_adapter->root (); 01866 01867 this->adapter_registry_.insert (poa_adapter 01868 ACE_ENV_ARG_PARAMETER); 01869 ACE_CHECK_RETURN (CORBA::Object::_nil ()); 01870 } 01871 } 01872 01873 return CORBA::Object::_duplicate (this->root_poa_.in ()); 01874 } |
|
Run the event loop.
Definition at line 2140 of file ORB_Core.cpp. References ACE_DEBUG, ACE_TEXT, TAO_Server_Strategy_Factory::activate_server_connections(), ETIME, TAO_LF_Event_Loop_Thread_Helper::event_loop_return(), ACE_Reactor::handle_events(), has_shutdown(), leader_follower(), lf_strategy(), LM_DEBUG, ACE_Reactor::owner(), reactor(), server_factory_, TAO_debug_level, and ACE_Thread_Manager::wait(). Referenced by TAO_Reactive_Flushing_Strategy::flush_message(), TAO_Reactive_Flushing_Strategy::flush_transport(), TAO_Leader_Follower_Flushing_Strategy::flush_transport(), CORBA::ORB::perform_work(), CORBA::ORB::run(), and TAO_Reactive_Connect_Strategy::wait_i().
02143 { 02144 // ORB::run may be called from a thread, different from the one that 02145 // did the ORB_init, consequently we must establish the Service 02146 // Gestalt, this thread will consider "global" 02147 02148 ACE_Service_Config_Guard use_orbs (this->configuration()); 02149 02150 if (TAO_debug_level > 2) 02151 { 02152 ACE_DEBUG ((LM_DEBUG, 02153 ACE_TEXT ("TAO (%P|%t) - ORB_Core::run, ") 02154 ACE_TEXT ("start [%s]\n"), 02155 perform_work?ACE_TEXT("perform_work"):ACE_TEXT("run"))); 02156 } 02157 02158 // Fetch the Reactor 02159 ACE_Reactor *r = this->reactor (); 02160 02161 int result = 1; 02162 // 1 to detect that nothing went wrong 02163 02164 // Loop handling client requests until the ORB is shutdown. 02165 02166 // We could use the leader-follower lock to check for the state 02167 // if this variable or use the lock <create_event_loop_lock> in 02168 // the server strategy factory. 02169 // We don't need to do this because we use the Reactor 02170 // mechanisms to shutdown in a thread-safe way. 02171 02172 while (this->has_shutdown () == 0) 02173 { 02174 // Every time we perform an interation we have to become the 02175 // leader again, because it is possible that a client has 02176 // acquired the leader role... 02177 TAO_Leader_Follower &leader_follower = 02178 this->leader_follower (); 02179 02180 TAO_LF_Strategy &lf_strategy = 02181 this->lf_strategy (); 02182 02183 TAO_LF_Event_Loop_Thread_Helper helper (leader_follower, 02184 lf_strategy, 02185 tv); 02186 result = helper.event_loop_return (); 02187 if (result != 0) 02188 { 02189 if (errno == ETIME) 02190 return 0; 02191 else 02192 return result; 02193 } 02194 02195 // Set the owning thread of the Reactor to the one which we're 02196 // currently in. This is necessary b/c it's possible that the 02197 // application is calling us from a thread other than that in which 02198 // the Reactor's CTOR (which sets the owner) was called. 02199 // 02200 // We need to do this on every iteration because the reactor may be 02201 // acquired by one of the client threads in the LF waiting 02202 // strategy 02203 r->owner (ACE_Thread::self ()); 02204 02205 if (TAO_debug_level > 2) 02206 { 02207 ACE_DEBUG ((LM_DEBUG, 02208 ACE_TEXT ("TAO (%P|%t) - ORB_Core::run, ") 02209 ACE_TEXT ( "calling handle_events()\n"))); 02210 } 02211 02212 result = r->handle_events (tv); 02213 02214 if (TAO_debug_level > 2) 02215 { 02216 ACE_DEBUG ((LM_DEBUG, 02217 ACE_TEXT ("TAO (%P|%t) - ORB_Core::run, ") 02218 ACE_TEXT ("handle_events() returns %d\n"), 02219 result)); 02220 } 02221 02222 if (result == -1) 02223 { 02224 // An error, terminate the loop 02225 break; 02226 } 02227 if (result == 0 02228 && tv != 0 02229 && *tv == ACE_Time_Value::zero) 02230 { 02231 // A timeout, terminate the loop... 02232 break; 02233 } 02234 02235 if (perform_work) 02236 { 02237 // This is running on behalf of a perform_work() call, 02238 // The loop should run only once. 02239 break; 02240 } 02241 // Otherwise just continue.. 02242 } 02243 02244 if (this->has_shutdown () == 1 && 02245 this->server_factory_->activate_server_connections ()) 02246 this->tm_.wait (); 02247 02248 if (TAO_debug_level > 2) 02249 { 02250 ACE_DEBUG ((LM_DEBUG, 02251 ACE_TEXT ("TAO (%P|%t) - ORB_Core::run, ") 02252 ACE_TEXT ("ends with result = %d\n"), 02253 result)); 02254 } 02255 02256 return result; 02257 } |
|
Returns pointer to the server factory.
Definition at line 1798 of file ORB_Core.cpp. References ACE_TEXT, configuration(), and server_factory_. Referenced by TAO_Concurrency_Strategy< SVC_HANDLER >::activate_svc_handler().
01799 { 01800 if (this->server_factory_ == 0) 01801 { 01802 // Look in the service repository for an instance. 01803 this->server_factory_ = 01804 ACE_Dynamic_Service<TAO_Server_Strategy_Factory>::instance 01805 (this->configuration (), 01806 ACE_TEXT ("Server_Strategy_Factory")); 01807 } 01808 01809 return this->server_factory_; 01810 } |
|
Resolve the RT Current flyweight for this ORB. Return server_id string. Definition at line 434 of file ORB_Core.i. References server_id_.
00435 { 00436 return this->server_id_.c_str(); 00437 } |
|
Get the Server Request Interceptor adapter. Will not create a new one if not available yet. Definition at line 627 of file ORB_Core.i. References server_request_interceptor_adapter_. Referenced by TAO_ServerRequest::rs_pi_current(), and TAO_ServerRequest::~TAO_ServerRequest().
00628 { 00629 return this->server_request_interceptor_adapter_; 00630 } |
|
Get the Server Request Interceptor adapter. If not created, this method will try to create one if needed. Definition at line 3420 of file ORB_Core.cpp. References ACE_GUARD_RETURN, ACE_TEXT, configuration(), TAO_ServerRequestInterceptor_Adapter_Factory::create(), server_request_interceptor_adapter_, and TAO_SYNCH_MUTEX. Referenced by add_interceptor().
03421 { 03422 if (this->server_request_interceptor_adapter_ == 0) 03423 { 03424 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 03425 ace_mon, 03426 this->lock_, 03427 0); 03428 03429 if (this->server_request_interceptor_adapter_ == 0) 03430 { 03431 TAO_ServerRequestInterceptor_Adapter_Factory *factory = 03432 ACE_Dynamic_Service<TAO_ServerRequestInterceptor_Adapter_Factory>::instance 03433 (this->configuration (), 03434 ACE_TEXT ("ServerRequestInterceptor_Adapter_Factory")); 03435 03436 if (factory) 03437 { 03438 this->server_request_interceptor_adapter_ = 03439 factory->create (); 03440 } 03441 } 03442 } 03443 03444 return this->server_request_interceptor_adapter_; 03445 } |
|
Call the service layers with the Service Context to check whether they would like to add something to the list. Definition at line 1768 of file ORB_Core.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, protocols_hooks_, and TAO_Protocols_Hooks::rt_service_context(). Referenced by TAO::Remote_Invocation::init_target_spec().
01773 { 01774 // @NOTE: Can use Interceptors instead.. 01775 this->protocols_hooks_->rt_service_context (stub, 01776 service_context, 01777 restart 01778 ACE_ENV_ARG_PARAMETER); 01779 ACE_CHECK; 01780 } |
|
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 . The reselction is for the multi-profile IORS. Definition at line 100 of file ORB_Core.i. References ft_service_, TAO_Service_Callbacks::reselect_profile(), and TAO_Fault_Tolerance_Service::service_callback().
00102 { 00103 CORBA::Boolean retval = 0; 00104 // @@ If different services have the same feature we may want to 00105 // prioritise them here. We need to decide here whose selection of 00106 // profile is more important. 00107 if (this->ft_service_.service_callback ()) 00108 { 00109 retval = 00110 this->ft_service_.service_callback ()->reselect_profile (stub, 00111 profile); 00112 } 00113 return retval; 00114 } |
|
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 . Definition at line 83 of file ORB_Core.i. References ft_service_, TAO_Service_Callbacks::select_profile(), and TAO_Fault_Tolerance_Service::service_callback().
00085 { 00086 CORBA::Boolean retval = 0; 00087 // @@ If different services have the same feature we may want to 00088 // prioritise them here. We need to decide here whose selection of 00089 // profile is more important. 00090 if (this->ft_service_.service_callback ()) 00091 { 00092 retval = 00093 this->ft_service_.service_callback ()->select_profile (&mprofile, 00094 profile); 00095 } 00096 return retval; 00097 } |
|
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. Definition at line 1728 of file ORB_Core.cpp. References ACE_ENV_ARG_PARAMETER, ACE_THROW_RETURN, ft_service_, TAO_Fault_Tolerance_Service::service_callback(), and TAO_INVOCATION_RECV_REQUEST_MINOR_CODE.
01732 { 01733 if (this->ft_service_.service_callback ()) 01734 { 01735 return this->ft_service_.service_callback ()-> 01736 raise_comm_failure (clist, 01737 profile 01738 ACE_ENV_ARG_PARAMETER); 01739 } 01740 01741 ACE_THROW_RETURN (CORBA::COMM_FAILURE ( 01742 CORBA::SystemException::_tao_minor_code ( 01743 TAO_INVOCATION_RECV_REQUEST_MINOR_CODE, 01744 errno), 01745 CORBA::COMPLETED_MAYBE), 01746 TAO::TAO_INVOKE_SYSTEM_EXCEPTION); 01747 } |
|
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. Definition at line 1751 of file ORB_Core.cpp. References ACE_ENV_ARG_PARAMETER, ft_service_, TAO_Service_Callbacks::raise_transient_failure(), and TAO_Fault_Tolerance_Service::service_callback().
01755 { 01756 if (this->ft_service_.service_callback ()) 01757 { 01758 return 01759 this->ft_service_.service_callback ()->raise_transient_failure (clist, 01760 profile 01761 ACE_ENV_ARG_PARAMETER); 01762 } 01763 01764 return TAO::TAO_INVOKE_FAILURE; 01765 } |
|
Search the Dynamic service list for well known services that has callbacks which can be dynamically loaded. Definition at line 1717 of file ORB_Core.cpp. References ft_service_, and TAO_Fault_Tolerance_Service::init().
01718 { 01719 // We (should) know what are the services that would need 01720 // callbacks. So, what we do is go through the Service Configurator 01721 // list for looking at the services that we want to load. 01722 this->ft_service_.init (this); 01723 01724 // @@ Other service callbacks can be added here 01725 } |
|
Sets the value of TAO_ORB_Core::collocation_resolver_name_.
Definition at line 1423 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::collocation_resolver_name_, and TAO_ORB_Core_Static_Resources::instance().
01424 { 01425 TAO_ORB_Core_Static_Resources::instance ()->collocation_resolver_name_ = 01426 collocation_resolver_name; 01427 } |
|
Set the ORB related to the orb_id as the default ORB and not the ORB that is first binded in the ORB Table Definition at line 210 of file ORB_Core.i. References TAO::ORB_Table::instance(), and TAO::ORB_Table::set_default().
00211 { 00212 TAO::ORB_Table * const table = TAO::ORB_Table::instance (); 00213 table->set_default (orb_id); 00214 } |
|
Pointer to the list of protocol loaded into this ORB instance. Helper method to hold the common code part for -ORBEndpoint and -ORBListenEndpoint options. Definition at line 2646 of file ORB_Core.cpp. References ACE_ERROR, ACE_TEXT, ACE_TEXT_CHAR_TO_TCHAR, ACE_THROW_RETURN, TAO_ORB_Parameters::add_endpoints(), LM_ERROR, orb_params(), and TAO_ORB_CORE_INIT_LOCATION_CODE.
02649 { 02650 if (this->orb_params ()->add_endpoints (lane, 02651 endpoints) != 0) 02652 { 02653 ACE_ERROR ((LM_ERROR, 02654 ACE_TEXT ("(%P|%t)\n") 02655 ACE_TEXT ("Invalid endpoint(s) specified:\n%s\n"), 02656 ACE_TEXT_CHAR_TO_TCHAR(endpoints.c_str ()))); 02657 ACE_THROW_RETURN (CORBA::BAD_PARAM ( 02658 CORBA::SystemException::_tao_minor_code ( 02659 TAO_ORB_CORE_INIT_LOCATION_CODE, 02660 EINVAL), 02661 CORBA::COMPLETED_NO), 02662 -1); 02663 } 02664 02665 return 0; 02666 } |
|
Sets the value of TAO_ORB_Core::endpoint_selector_factory_.
Definition at line 1683 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::endpoint_selector_factory_name_, and TAO_ORB_Core_Static_Resources::instance().
01684 { 01685 TAO_ORB_Core_Static_Resources::instance ()->endpoint_selector_factory_name_ = 01686 endpoint_selector_factory_name; 01687 } |
|
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. Definition at line 1444 of file ORB_Core.cpp. References ACE_DEBUG, TAO_TSS_Resources::gui_resource_factory_, TAO_TSS_Resources::instance(), and LM_WARNING. Referenced by TAO::FlResource_Loader::FlResource_Loader(), TAO::QtResource_Loader::QtResource_Loader(), TAO::TkResource_Loader::TkResource_Loader(), and TAO::XtResource_Loader::XtResource_Loader().
01445 { 01446 if (TAO_TSS_Resources::instance ()->gui_resource_factory_ != 0) 01447 { 01448 01449 ACE_DEBUG ((LM_WARNING, 01450 "TAO (%P|%t) - Deleting old gui_resource_factory.\n")); 01451 delete TAO_TSS_Resources::instance ()->gui_resource_factory_; 01452 } 01453 01454 TAO_TSS_Resources::instance ()->gui_resource_factory_ = gui_resource_factory; 01455 } |
|
Sets the name of the POA factory and the dynamic service configurator directive to load it if needed. Definition at line 1667 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), TAO_ORB_Core_Static_Resources::poa_factory_directive_, and TAO_ORB_Core_Static_Resources::poa_factory_name_.
01669 { 01670 TAO_ORB_Core_Static_Resources::instance ()->poa_factory_name_ = 01671 poa_factory_name; 01672 TAO_ORB_Core_Static_Resources::instance ()->poa_factory_directive_ = 01673 poa_factory_directive; 01674 } |
|
Sets the value of TAO_ORB_Core::protocols_hooks_.
Definition at line 1709 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::protocols_hooks_name_.
01710 { 01711 // Is synchronization necessary? 01712 TAO_ORB_Core_Static_Resources::instance ()->protocols_hooks_name_ = 01713 protocols_hooks_name; 01714 } |
|
Sets the value of TAO_ORB_Core::resource_factory_.
Definition at line 1437 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::resource_factory_name_.
01438 { 01439 TAO_ORB_Core_Static_Resources::instance ()->resource_factory_name_ = 01440 resource_factory_name; 01441 } |
|
Sets the value of TAO_ORB_Core::stub_factory_name_.
Definition at line 1430 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::stub_factory_name_.
01431 { 01432 TAO_ORB_Core_Static_Resources::instance ()->stub_factory_name_ = 01433 stub_factory_name; 01434 } |
|
Definition at line 2987 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and Sync_Scope_Hook.
02988 { 02989 TAO_ORB_Core_Static_Resources::instance ()-> sync_scope_hook_ = hook; 02990 } |
|
Sets the value of TAO_ORB_Core::thread_lane_resources_manager_factory_name_ Definition at line 1416 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::thread_lane_resources_manager_factory_name_.
01417 { 01418 TAO_ORB_Core_Static_Resources::instance ()->thread_lane_resources_manager_factory_name_ = 01419 thread_lane_resources_manager_factory_name; 01420 } |
|
Definition at line 3017 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), Timeout_Hook, and TAO_ORB_Core_Static_Resources::timeout_hook_.
03018 { 03019 // Saving the hook pointer so that we can use it later when needed. 03020 TAO_ORB_Core_Static_Resources::instance ()->timeout_hook_ = hook; 03021 } |
|
Set the TSS resource at the given slot. Returns 0 on success, and -1 on failure. Definition at line 307 of file ORB_Core.i. References get_tss_resources(), TAO_ORB_Core_TSS_Resources::orb_core_, ACE_Array_Base< void * >::size(), TAO_Cleanup_Func_Registry::size(), TAO_ORB_Core_TSS_Resources::ts_objects_, and tss_cleanup_funcs_.
00308 { 00309 TAO_ORB_Core_TSS_Resources *tss_resources = 00310 this->get_tss_resources (); 00311 00312 // The number of allocated slots is equal to the number of 00313 // registered TSS cleanup functions, *not* the size of the array in 00314 // the ORB core TSS resources. 00315 if (slot_id >= this->tss_cleanup_funcs_.size ()) 00316 { 00317 errno = EINVAL; 00318 return -1; 00319 } 00320 00321 // If the TSS array isn't large enough, then increase its size. 00322 // We're guaranteed not to exceed the number of allocated slots by 00323 // the above check. 00324 const size_t old_size = tss_resources->ts_objects_.size (); 00325 const size_t new_size = slot_id + 1; 00326 if (slot_id >= old_size 00327 && tss_resources->ts_objects_.size (new_size) != 0) 00328 return -1; 00329 00330 // Initialize intermediate array elements to zero, since they 00331 // haven't been initialized yet. This ensures that garbage is not 00332 // returned when accessing any of those elements at a later point in 00333 // time. 00334 for (size_t i = old_size; i < slot_id; ++i) 00335 tss_resources->ts_objects_[i] = 0; 00336 00337 tss_resources->ts_objects_[slot_id] = ts_object; 00338 00339 // Make sure the ORB core pointer is set in the ORB core's TSS 00340 // resources so that the TSS cleanup functions stored in the ORB 00341 // core can be invoked. 00342 tss_resources->orb_core_ = this; 00343 00344 return 0; 00345 } |
|
End the event loop.
Definition at line 2261 of file ORB_Core.cpp. References CORBA::Object::_nil(), ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_GUARD, adapter_registry_, ACE_Thread_Manager::cancel_all(), TAO_Adapter_Registry::check_close(), TAO_Thread_Lane_Resources_Manager::cleanup_rw_transports(), TAO_Adapter_Registry::close(), TAO_Object_Ref_Table::destroy(), has_shutdown(), has_shutdown_, object_ref_table_, pi_current_, CORBA::release(), TAO_Thread_Lane_Resources_Manager::shutdown_reactor(), TAO_SYNCH_MUTEX, thr_mgr(), thread_lane_resources_manager(), valuetype_adapter_, and ACE_Thread_Manager::wait(). Referenced by destroy(), fini(), and CORBA::ORB::shutdown().
02263 { 02264 { 02265 ACE_GUARD (TAO_SYNCH_MUTEX, monitor, this->lock_); 02266 02267 if (this->has_shutdown () != 0) 02268 return; 02269 02270 // Check if we are on the right state, i.e. do not accept 02271 // shutdowns with the 'wait_for_completion' flag set in the middle 02272 // of an upcall (because those deadlock). 02273 this->adapter_registry_.check_close (wait_for_completion 02274 ACE_ENV_ARG_PARAMETER); 02275 ACE_CHECK; 02276 02277 // Set the 'has_shutdown' flag, so any further attempt to shutdown 02278 // becomes a noop. 02279 this->has_shutdown_ = 1; 02280 02281 // need to release the mutex, because some of the shutdown 02282 // operations invoke application code, that could (and in practice 02283 // does!) callback into ORB Core code. 02284 } 02285 02286 this->adapter_registry_.close (wait_for_completion 02287 ACE_ENV_ARG_PARAMETER); 02288 ACE_CHECK; 02289 02290 // Shutdown reactor. 02291 this->thread_lane_resources_manager ().shutdown_reactor (); 02292 02293 // Cleanup transports that use the RW strategies 02294 this->thread_lane_resources_manager ().cleanup_rw_transports (); 02295 02296 // Grab the thread manager 02297 ACE_Thread_Manager *tm = this->thr_mgr (); 02298 02299 // Try to cancel all the threads in the ORB. 02300 tm->cancel_all (); 02301 02302 // If <wait_for_completion> is set, wait for all threads to exit. 02303 if (wait_for_completion != 0) 02304 tm->wait (); 02305 02306 // Explicitly destroy the valuetype adapter 02307 delete this->valuetype_adapter_; 02308 this->valuetype_adapter_ = 0; 02309 02310 // Explicitly destroy the object reference table since it 02311 // contains references to objects, which themselves may contain 02312 // reference to this ORB. 02313 this->object_ref_table_.destroy (); 02314 02315 #if (TAO_HAS_INTERCEPTORS == 1) 02316 CORBA::release (this->pi_current_); 02317 this->pi_current_ = CORBA::Object::_nil (); 02318 #endif /* TAO_HAS_INTERCEPTORS == 1 */ 02319 } |
|
Returns a pointer to the Stub factory.
Definition at line 1648 of file ORB_Core.cpp. References ACE_CString, ACE_TEXT_CHAR_TO_TCHAR, configuration(), TAO_ORB_Core_Static_Resources::instance(), stub_factory_, and TAO_ORB_Core_Static_Resources::stub_factory_name_. Referenced by create_stub().
01649 { 01650 // Check if there is a cached reference. 01651 if (this->stub_factory_ != 0) 01652 return this->stub_factory_; 01653 01654 // If not, look in the service repository for an instance. 01655 const ACE_CString &stub_factory_name = 01656 TAO_ORB_Core_Static_Resources::instance ()->stub_factory_name_; 01657 01658 this->stub_factory_ = 01659 ACE_Dynamic_Service<TAO_Stub_Factory>::instance 01660 (this->configuration (), 01661 ACE_TEXT_CHAR_TO_TCHAR (stub_factory_name.c_str())); 01662 01663 return this->stub_factory_; 01664 } |
|
Get the ACE_Thread_Manager.
Definition at line 180 of file ORB_Core.i. Referenced by fini(), TAO_IIOP_Connector::open(), and shutdown().
00181 { 00182 return &this->tm_; 00183 } |
|
|
Returns the value used by the server threads to poll the shutdown flag. If the return value is zero then the server threads block forever. Definition at line 360 of file ORB_Core.i. Referenced by TAO_Connection_Handler::svc_i().
00361 { 00362 timeout = this->thread_per_connection_timeout_; 00363 return this->thread_per_connection_use_timeout_; 00364 } |
|
This allocator is always global and has no locks. It is intended for allocating the buffers used to queue messages in transports. Definition at line 2828 of file ORB_Core.cpp. References lane_resources(), and TAO_Thread_Lane_Resources::transport_message_buffer_allocator().
02829 { 02830 return this->lane_resources ().transport_message_buffer_allocator (); 02831 } |
|
Return the underlying TSS cleanup function registry.
Definition at line 348 of file ORB_Core.i. References tss_cleanup_funcs_.
00349 { 00350 return &(this->tss_cleanup_funcs_); 00351 } |
|
Gets the value of TAO_ORB_Core::typecodefactory_adapter_name_.
Definition at line 1488 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::typecodefactory_adapter_name_.
01489 { 01490 return TAO_ORB_Core_Static_Resources::instance ()->typecodefactory_adapter_name_.c_str(); 01491 } |
|
Sets the value of TAO_ORB_Core::typecodefactory_adapter_name_.
Definition at line 1482 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::typecodefactory_adapter_name_.
01483 { 01484 TAO_ORB_Core_Static_Resources::instance ()->typecodefactory_adapter_name_ = name; 01485 } |
|
Definition at line 242 of file ORB_Core.i. References use_global_collocation_.
00243 { 00244 return this->use_global_collocation_; 00245 } |
|
Definition at line 236 of file ORB_Core.i. References use_global_collocation_. Referenced by is_collocation_enabled().
00237 { 00238 this->use_global_collocation_ = opt; 00239 } |
|
Do we attempt to register with the Implementation Repository.
Definition at line 379 of file ORB_Core.i. References use_implrepo_.
00380 { 00381 return use_implrepo_; 00382 } |
|
Return the valuetype adapter.
Definition at line 3450 of file ORB_Core.cpp. References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK_RETURN, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_GUARD_RETURN, ACE_PRINT_EXCEPTION, ACE_THROW_RETURN, ACE_TRY, ACE_TRY_CHECK, TAO_Valuetype_Adapter_Factory::create(), ACE_Dynamic_Service< TYPE >::instance(), TAO_SYNCH_MUTEX, valuetype_adapter_, and valuetype_adapter_factory_name(). Referenced by CORBA::ORB::lookup_value_factory(), CORBA::ORB::register_value_factory(), and CORBA::ORB::unregister_value_factory().
03451 { 03452 if (this->valuetype_adapter_ == 0) 03453 { 03454 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, 03455 ace_mon, 03456 this->lock_, 03457 0); 03458 03459 if (this->valuetype_adapter_ == 0) 03460 { 03461 ACE_DECLARE_NEW_CORBA_ENV; 03462 ACE_TRY 03463 { 03464 TAO_Valuetype_Adapter_Factory * vt_ap_factory = 03465 ACE_Dynamic_Service<TAO_Valuetype_Adapter_Factory>::instance ( 03466 TAO_ORB_Core::valuetype_adapter_factory_name () 03467 ); 03468 03469 if (vt_ap_factory) 03470 { 03471 this->valuetype_adapter_ = 03472 vt_ap_factory->create (ACE_ENV_SINGLE_ARG_PARAMETER); 03473 ACE_TRY_CHECK; 03474 } 03475 } 03476 ACE_CATCHANY 03477 { 03478 ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, 03479 "Cannot initialize the " 03480 "valuetype_adapter \n"); 03481 } 03482 ACE_ENDTRY; 03483 ACE_CHECK_RETURN(0); 03484 } 03485 03486 if (this->valuetype_adapter_ == 0) 03487 { 03488 ACE_THROW_RETURN (CORBA::INTERNAL (), 03489 0); 03490 } 03491 } 03492 03493 return this->valuetype_adapter_; 03494 } |
|
Gets the value of TAO_ORB_Core::valuetype_adapter_factory_name.
Definition at line 1512 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::valuetype_adapter_factory_name_.
01513 { 01514 return TAO_ORB_Core_Static_Resources::instance ()->valuetype_adapter_factory_name_.c_str(); 01515 } |
|
Sets the value of TAO_ORB_Core::valuetype_adapter_factory_name.
Definition at line 1506 of file ORB_Core.cpp. References TAO_ORB_Core_Static_Resources::instance(), and TAO_ORB_Core_Static_Resources::valuetype_adapter_factory_name_. Referenced by valuetype_adapter().
01507 { 01508 TAO_ORB_Core_Static_Resources::instance ()->valuetype_adapter_factory_name_ = name; 01509 } |
|
|
|
Definition at line 160 of file ORB_Core.h. |
|
The list of Adapters used in this ORB.
Definition at line 1167 of file ORB_Core.h. Referenced by adapter_registry(), poa_adapter(), resolve_ior_table_i(), root_poa(), and shutdown(). |
|
BiDirectional GIOP factory.
Definition at line 1256 of file ORB_Core.h. Referenced by load_policy_validators(). |
|
Bir Dir GIOP policy value.
Definition at line 1259 of file ORB_Core.h. Referenced by bidir_giop_policy(). |
|
Handle to the factory for Client-side strategies.
Definition at line 1118 of file ORB_Core.h. Referenced by client_factory(). |
|
The adapter for handling client request interceptors.
Definition at line 1239 of file ORB_Core.h. Referenced by add_interceptor(), clientrequestinterceptor_adapter(), clientrequestinterceptor_adapter_i(), and destroy_interceptors(). |
|
The cached IOR for the CodecFactory DLL.
Definition at line 1062 of file ORB_Core.h. Referenced by fini(), and resolve_codecfactory_i(). |
|
Code Set Manager - points to service object in the service repo.
Definition at line 1265 of file ORB_Core.h. |
|
Definition at line 1042 of file ORB_Core.h. Referenced by collocation_resolver(). |
|
Default collocation policy. This should never be ORB_CONTROL.
Definition at line 1142 of file ORB_Core.h. Referenced by get_collocation_strategy(). |
|
ORB's service configuration.
Definition at line 1268 of file ORB_Core.h. |
|
The data block reference counts are locked using this mutex.
Definition at line 1176 of file ORB_Core.h. Referenced by create_input_cdr_data_block(), and locking_strategy(). |
|
The default policies.
Definition at line 1151 of file ORB_Core.h. Referenced by get_default_policies(), and ~TAO_ORB_Core(). |
|
This strategy will not queue by default and not flush.
Definition at line 1217 of file ORB_Core.h. Referenced by default_transport_queueing_strategy(), and ~TAO_ORB_Core(). |
|
This strategy will buffer messages.
Definition at line 1208 of file ORB_Core.h. Referenced by delayed_transport_queueing_strategy(), and ~TAO_ORB_Core(). |
|
The cached object reference for the DynAnyFactory.
Definition at line 1065 of file ORB_Core.h. Referenced by fini(), and resolve_dynanyfactory_i(). |
|
This strategy will buffer messages.
Definition at line 1205 of file ORB_Core.h. Referenced by eager_transport_queueing_strategy(), and ~TAO_ORB_Core(). |
|
Definition at line 1200 of file ORB_Core.h. Referenced by endpoint_selector_factory(). |
|
This strategy will not queue by default, but will flush the queue each time Definition at line 1212 of file ORB_Core.h. Referenced by flush_transport_queueing_strategy(), and ~TAO_ORB_Core(). |
|
Hold the flushing strategy.
Definition at line 1262 of file ORB_Core.h. Referenced by flushing_strategy(), and ~TAO_ORB_Core(). |
|
Fault Tolerant service hook.
Definition at line 1129 of file ORB_Core.h. Referenced by fault_tolerance_service(), hash_service(), is_profile_equivalent(), object_is_nil(), reset_service_profile_flags(), service_profile_reselection(), service_profile_selection(), service_raise_comm_failure(), service_raise_transient_failure(), and services_callbacks_init(). |
|
Flag which denotes that the ORB has been shutdown.
Definition at line 1186 of file ORB_Core.h. Referenced by has_shutdown(), and shutdown(). |
|
The cached IOR for the Implementation Repository.
Definition at line 1050 of file ORB_Core.h. Referenced by fini(), and implrepo_service(). |
|
Flag for whether to put the ImR endpoints into our object refs.
Definition at line 1056 of file ORB_Core.h. Referenced by imr_endpoints_in_ior(). |
|
Return InitRefMap to find if a particular object id is present.
Definition at line 1098 of file ORB_Core.h. Referenced by init_ref_map(), and list_initial_references(). |
|
IORInterceptor adapter.
Definition at line 1247 of file ORB_Core.h. Referenced by add_interceptor(), destroy_interceptors(), and ior_interceptor_adapter(). |
|
The cached object reference for the IORManipulataion.
Definition at line 1068 of file ORB_Core.h. Referenced by fini(), and resolve_iormanipulation_i(). |
|
The cached object reference for the IORTable.
Definition at line 1071 of file ORB_Core.h. Referenced by fini(), and resolve_ior_table_i(). |
|
Synchronize internal state...
Definition at line 1038 of file ORB_Core.h. |
|
Table that stores the object key instead of caching one per-profile.
Definition at line 1106 of file ORB_Core.h. Referenced by fini(), and object_key_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. Definition at line 1103 of file ORB_Core.h. Referenced by list_initial_references(), object_ref_table(), and shutdown(). |
|
Flag which denotes that the open method was called.
Definition at line 1198 of file ORB_Core.h. |
|
Mutual exclusion for calling open.
Definition at line 1195 of file ORB_Core.h. |
|
TRUE if we want to take advantage of collocation optimization in this ORB. Definition at line 1135 of file ORB_Core.h. Referenced by optimize_collocation_objects(). |
|
Definition at line 1087 of file ORB_Core.h. Referenced by implrepo_service(), orb(), and ~TAO_ORB_Core(). |
|
Parameters used by the ORB.
Definition at line 1095 of file ORB_Core.h. Referenced by orb_params(). |
|
The ORBid for this ORB.
Definition at line 1109 of file ORB_Core.h. |
|
Registry containing all orb initializers.
Definition at line 1226 of file ORB_Core.h. Referenced by orbinitializer_registry(), orbinitializer_registry_i(), and ~TAO_ORB_Core(). |
|
The IOR parser registry.
Definition at line 1253 of file ORB_Core.h. Referenced by parser_registry(). |
|
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. Definition at line 1236 of file ORB_Core.h. Referenced by pi_current(), resolve_picurrent_i(), and shutdown(). |
|
An optimization for the POA.
Definition at line 1170 of file ORB_Core.h. Referenced by poa_adapter(). |
|
POA current. Definition at line 1164 of file ORB_Core.h. Referenced by resolve_poa_current_i(). |
|
Policy current.
Definition at line 1154 of file ORB_Core.h. Referenced by policy_current(), and ~TAO_ORB_Core(). |
|
Registry containing all registered policy factories.
Definition at line 1223 of file ORB_Core.h. Referenced by policy_factory_registry(), policy_factory_registry_i(), and ~TAO_ORB_Core(). |
|
The Policy_Manager for this ORB.
Definition at line 1148 of file ORB_Core.h. Referenced by policy_manager(), and ~TAO_ORB_Core(). |
|
Definition at line 1046 of file ORB_Core.h. |
|
Handle to the factory for protocols_hooks_..
Definition at line 559 of file ORB_Core.h. Referenced by get_protocols_hooks(), and service_context_list(). |
|
Number of outstanding references to this object.
Definition at line 1220 of file ORB_Core.h. |
|
The request dispatching strategy.
Definition at line 1159 of file ORB_Core.h. Referenced by request_dispatcher(), and ~TAO_ORB_Core(). |
|
Handle to the factory for resource information..
Definition at line 1112 of file ORB_Core.h. Referenced by resource_factory(). |
|
Object reference to the root POA. It will eventually be the object reference returned by calls to CORBA::ORB::resolve_initial_references ("RootPOA"). Definition at line 1092 of file ORB_Core.h. Referenced by root_poa(). |
|
The cached object reference for the RTCORBA::Current interface.
Definition at line 1077 of file ORB_Core.h. |
|
The cached object reference for the RTCORBA::RTORB.
Definition at line 1074 of file ORB_Core.h. Referenced by resolve_rt_orb(). |
|
Handle to the factory for Server-side strategies.
Definition at line 1121 of file ORB_Core.h. Referenced by run(), and server_factory(). |
|
The server_id_ that was passed via -ORBServerId option.
Definition at line 1115 of file ORB_Core.h. Referenced by server_id(). |
|
The adapter for handling server request interceptors.
Definition at line 1242 of file ORB_Core.h. Referenced by add_interceptor(), destroy_interceptors(), serverrequestinterceptor_adapter(), and serverrequestinterceptor_adapter_i(). |
|
Definition at line 1044 of file ORB_Core.h. Referenced by stub_factory(). |
|
Definition at line 1040 of file ORB_Core.h. Referenced by fini(), thread_lane_resources_manager(), and ~TAO_ORB_Core(). |
|
Definition at line 1191 of file ORB_Core.h. |
|
Definition at line 1190 of file ORB_Core.h. |
|
The Thread Manager.
Definition at line 1173 of file ORB_Core.h. |
|
TSS Object cleanup functions. These correspond to the TSS objects stored in TAO's TSS resources. Definition at line 1180 of file ORB_Core.h. Referenced by add_tss_cleanup_func(), set_tss_resource(), and tss_cleanup_funcs(). |
|
The cached IOR for the TypeCodeFactory DLL.
Definition at line 1059 of file ORB_Core.h. Referenced by fini(), and resolve_typecodefactory_i(). |
|
TRUE if we want to consider all ORBs in this address space collocated. Definition at line 1139 of file ORB_Core.h. Referenced by use_global_collocation(). |
|
Flag for whether the implrepo support is enabled or not.
Definition at line 1053 of file ORB_Core.h. Referenced by implrepo_service(), and use_implrepo(). |
|
Definition at line 1033 of file ORB_Core.h. |
|
Pointer to the valuetype adapter.
Definition at line 1250 of file ORB_Core.h. Referenced by shutdown(), and valuetype_adapter(). |