summaryrefslogtreecommitdiff
path: root/TAO/tao/orbobj.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/orbobj.h')
-rw-r--r--TAO/tao/orbobj.h42
1 files changed, 39 insertions, 3 deletions
diff --git a/TAO/tao/orbobj.h b/TAO/tao/orbobj.h
index 0a465592dd8..e0ef8b40a38 100644
--- a/TAO/tao/orbobj.h
+++ b/TAO/tao/orbobj.h
@@ -25,15 +25,25 @@
#include "tao/corba.h"
+// ObjectIds recognized by CORBA_ORB::resolve_initial_references ()...
+// of course, no guarantees are made that the call will return something
+// useful.
+#define TAO_OBJID_NAMESERVICE "NameService"
+#define TAO_OBJID_ROOTPOA "RootPOA"
+#define TAO_OBJID_POACURRENT "POACurrent"
+#define TAO_OBJID_INTERFACEREP "InterfaceRepository"
+
class TAO_Export CORBA_ORB : public TAO_IUnknown
// = TITLE
// ORB pseudo-objref.
{
public:
- CORBA::POA_ptr POA_init (int &argc,
- char **argv,
- const char *poa_identifier = 0);
+ /*
+ TAO_POA *POA_init (int &argc,
+ char **argv,
+ const char *poa_identifier = 0);
// Initialize the Portable Object Adapter (POA).
+ */
static CORBA::ORB_ptr _duplicate (CORBA::ORB_ptr orb);
// Return a duplicate of <{orb}>. When work with this duplicate is
@@ -108,6 +118,29 @@ public:
// has completed. <[NOTE]> <wait_for_completion>=TRUE is not
// currently supported.
+ // = TAO-specific Extensions
+
+ CORBA_Object_ptr key_to_object (const TAO::ObjectKey &key,
+ const char *type_id,
+ CORBA::Environment &env);
+ // Convert key into an object reference. Return Object_ptr as out
+ // parameter. Errors will come through the environment.
+ //
+ // Object IDs are assigned and used by servers to identify objects.
+ //
+ // Type IDs are repository IDs, assigned as part of OMG-IDL
+ // interface definition to identify specific interfaces and their
+ // relationships to other OMG-IDL interfaces. It's OK to provide a
+ // null type ID. Providing a null object key will result in an
+ // INV_OBJREF exception.
+ //
+ // Clients which invoke operations using one of these references
+ // when the server is not active (or after the last reference to the
+ // POA is released) will normally see an OBJECT_NOT_EXIST exception
+ // reported by the ORB. If the POA is a "Named POA" the client's
+ // ORB will not normally return OBJECT_NOT_EXIST unless the POA
+ // reports that fault.
+
// = <IUnknown> Support
//
// Stuff required for COM IUnknown support ... this class is
@@ -142,6 +175,9 @@ private:
CORBA_Object_ptr resolve_poa (void);
// Resolve the POA.
+ CORBA_Object_ptr resolve_poa_current (void);
+ // Resolve the POA current.
+
ACE_SYNCH_MUTEX lock_;
u_int refcount_;
ACE_Atomic_Op<ACE_SYNCH_MUTEX, CORBA::Boolean> open_called_;