summaryrefslogtreecommitdiff
path: root/TAO/tao/ORB_Core.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-09-12 01:42:49 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-09-12 01:42:49 +0000
commitba5d36941b0437e909f053da7778a9471c5a169b (patch)
tree876c63f2632a9943dd49cf14cae506f9a17d4fd0 /TAO/tao/ORB_Core.h
parent92e95c67ca8c71ae8f29121674633803e8613a4f (diff)
downloadATCD-ba5d36941b0437e909f053da7778a9471c5a169b.tar.gz
ChangeLogTag:Mon Sep 11 12:56:11 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'TAO/tao/ORB_Core.h')
-rw-r--r--TAO/tao/ORB_Core.h78
1 files changed, 30 insertions, 48 deletions
diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h
index 9a7439b8bff..6e5bfa29f6e 100644
--- a/TAO/tao/ORB_Core.h
+++ b/TAO/tao/ORB_Core.h
@@ -33,6 +33,7 @@
#include "tao/Adapter.h"
#include "ace/Map_Manager.h"
+#include "ace/Hash_Map_Manager.h"
// Forward declarations
class TAO_Acceptor;
@@ -159,7 +160,6 @@ public:
TAO_ORB_Parameters *orb_params (void);
// Accessor for the ORB parameters.
- // @@ PPOA: TAO_POA_Current &poa_current (void) const;
// @@ In the future this hook should change, instead of hardcoding
// the object we should add a "Resolver" to the ORB, so the
// "POACurrent" object returns a per-ORB object.
@@ -190,28 +190,12 @@ public:
// = Get the ACE_Thread_Manager
ACE_Thread_Manager *thr_mgr (void);
-#if 0 // PPOA
- // = Get the rootPOA
- TAO_POA *root_poa (CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment (),
- const char *adapter_name = TAO_DEFAULT_ROOTPOA_NAME,
- TAO_POA_Manager *poa_manager = 0,
- const TAO_POA_Policies *policies = 0);
-
- PortableServer::POA_ptr root_poa_reference (
- CORBA::Environment &ACE_TRY_ENV = TAO_default_environment (),
- const char *adapter_name = TAO_DEFAULT_ROOTPOA_NAME,
- TAO_POA_Manager *poa_manager = 0,
- const TAO_POA_Policies *policies = 0);
-#else
CORBA::Object_ptr root_poa (CORBA::Environment &ACE_TRY_ENV);
// Return the RootPOA, or try to load it if not initialized already.
- TAO_Adapter_Registry *adapter_registry (void); // PPOA
+ TAO_Adapter_Registry *adapter_registry (void);
// Get the adapter registry
-#endif /* 0 PPOA */
-
// = Collocation strategies.
enum
{
@@ -266,10 +250,6 @@ public:
CORBA::ULong get_collocation_strategy (void) const;
- // @@ PPOA: Should go away! But leave it here to remove the other
- // bugs first!
- // @@ TAO_Object_Adapter *object_adapter (void);
- // Get <Object Adapter>.
TAO_Adapter *poa_adapter (void);
// Get the adapter named "RootPOA" and cache the result, this is an
// optimization for the POA.
@@ -498,16 +478,26 @@ public:
void implrepo_service (const CORBA::Object_ptr ir);
// Set/Get the IOR of the Implementation Repository service.
- CORBA::Object_ptr typecode_factory (void);
- void typecode_factory (const CORBA::Object_ptr tf);
- // Get/Set the IOR of the TypeCodeFactory DLL.
+ CORBA::Object_ptr resolve_typecodefactory (CORBA::Environment &ACE_TRY_ENV);
+ // Resolve the TypeCodeFactory DLL.
CORBA::Object_ptr resolve_dynanyfactory (CORBA::Environment &ACE_TRY_ENV);
// Resolve the Dynamic Any Factory
- CORBA_Object_ptr resolve_ior_manipulation (CORBA::Environment&);
+ CORBA::Object_ptr resolve_ior_manipulation (CORBA::Environment&);
// Resolve the IOR Manipulation reference for this ORB.
+ CORBA::Object_ptr resolve_ior_table (CORBA::Environment&);
+ // Resolve the IOR Table reference for this ORB.
+
+ CORBA::Object_ptr resolve_rir (const char *name,
+ CORBA::Environment &);
+ // Resolve an initial reference via the -ORBInitRef and
+ // -ORBDefaultInitRef options
+
+ CORBA_ORB_ObjectIdList_ptr list_initial_references (CORBA::Environment &);
+ // List all the service known by the ORB
+
CORBA::ULong _incr_refcnt (void);
CORBA::ULong _decr_refcnt (void);
// Reference counting...
@@ -531,21 +521,6 @@ protected:
int fini (void);
// Final termination hook, typically called by CORBA::ORB's DTOR.
-#if 0
- void create_and_set_root_poa (const char *adapter_name,
- TAO_POA_Manager *poa_manager,
- const TAO_POA_Policies *policies,
- CORBA::Environment &ACE_TRY_ENV);
- // Initialize the root POA.
-
- void destroy_root_poa (CORBA::Boolean wait_for_completion,
- CORBA::Environment &ACE_TRY_ENV);
- // Destroy the RootPOA (if one exists).
-
- TAO_Object_Adapter *object_adapter_i (void);
- // Get <Object Adapter>, assume the lock is held...
-#endif /* PPOA */
-
ACE_Allocator *input_cdr_dblock_allocator_i (TAO_ORB_Core_TSS_Resources *);
ACE_Allocator *input_cdr_buffer_allocator_i (TAO_ORB_Core_TSS_Resources *);
// Implement the input_cdr_*_allocator() routines using pre-fetched
@@ -559,12 +534,19 @@ protected:
int set_default_policies (void);
// Set ORB-level policy defaults for this ORB.
+ void resolve_typecodefactory_i (CORBA::Environment &ACE_TRY_ENV);
+ // Obtain and cache the dynamic any factory object reference
+
void resolve_dynanyfactory_i (CORBA::Environment &ACE_TRY_ENV);
// Obtain and cache the dynamic any factory object reference
void resolve_iormanipulation_i (CORBA::Environment &ACE_TRY_ENV);
// Obtain and cache the IORManipulation factory object reference
private:
+
+ void resolve_ior_table_i (CORBA::Environment &ACE_TRY_ENV);
+ // Obtain and cache the dynamic any factory object reference
+
// The ORB Core should not be copied
ACE_UNIMPLEMENTED_FUNC (TAO_ORB_Core(const TAO_ORB_Core&))
ACE_UNIMPLEMENTED_FUNC (void operator=(const TAO_ORB_Core&))
@@ -608,6 +590,9 @@ protected:
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::ORB_var orb_;
// @@ Should we keep a single ORB pointer? This is good because
// multiple calls to ORB_init() with the same ORBid can use the
@@ -615,7 +600,6 @@ protected:
// Pointer to the ORB.
CORBA::Object_var root_poa_;
- // PPOA: TAO_POA *root_poa_;
// Pointer to the root POA. It will eventually be the pointer
// returned by calls to <CORBA::ORB::resolve_initial_references
// ("RootPOA")>.
@@ -623,6 +607,9 @@ protected:
TAO_ORB_Parameters orb_params_;
// Parameters used by the ORB.
+ typedef ACE_Hash_Map_Manager<ACE_CString,ACE_CString,ACE_Null_Mutex> InitRefMap;
+ InitRefMap init_ref_map_;
+
char *orbid_;
// The ORBid for this ORB.
@@ -677,7 +664,6 @@ protected:
#endif /* TAO_HAS_CORBA_MESSAGING == 1 */
- // PPOA: TAO_POA_Current *poa_current_;
CORBA::Object_var poa_current_;
// POA current.
//
@@ -685,10 +671,7 @@ protected:
// dependencies.
//
- // PPOA: TAO_Object_Adapter *object_adapter_;
- // Object Adapter.
-
- TAO_Adapter_Registry adapter_registry_; // PPOA
+ TAO_Adapter_Registry adapter_registry_;
// The list of Adapters used in this ORB
TAO_Adapter *poa_adapter_;
@@ -832,7 +815,6 @@ private:
public:
- // PPOA: TAO_POA_Current_Impl *poa_current_impl_;
void *poa_current_impl_;
// Points to structure containing state for the current upcall
// context in this thread. Note that it does not come from the