summaryrefslogtreecommitdiff
path: root/TAO/tao/UIOP_Profile.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/UIOP_Profile.h')
-rw-r--r--TAO/tao/UIOP_Profile.h97
1 files changed, 67 insertions, 30 deletions
diff --git a/TAO/tao/UIOP_Profile.h b/TAO/tao/UIOP_Profile.h
index e8caee840c3..aa2db586572 100644
--- a/TAO/tao/UIOP_Profile.h
+++ b/TAO/tao/UIOP_Profile.h
@@ -21,16 +21,15 @@
#ifndef TAO_UIOP_PROFILE_H
#define TAO_UIOP_PROFILE_H
-#include "tao/Pluggable.h"
+#include "ace/Synch.h"
# if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+#include "ace/UNIX_Addr.h"
+
+#include "tao/Pluggable.h"
#include "tao/Object_KeyC.h"
#include "tao/UIOP_Connect.h"
-#include "tao/Tagged_Components.h"
-
-#include "ace/UNIX_Addr.h"
-#include "ace/Synch.h"
//class TAO_UIOP_Client_Connection_Handler;
@@ -44,6 +43,13 @@ class TAO_Export TAO_UIOP_Profile : public TAO_Profile
// = DESCRIPTION
// This class defines the UIOP profile.
public:
+ // = Currently, TAO supports UIOP 1.0.
+ enum
+ {
+ DEF_UIOP_MAJOR = 1, // FIXME: Version numbers?
+ DEF_UIOP_MINOR = 0
+ };
+
static const char object_key_delimiter;
// The object key delimiter that UIOP uses or expects.
@@ -51,32 +57,55 @@ public:
// Return the char string prefix.
TAO_UIOP_Profile (const ACE_UNIX_Addr &addr,
- const TAO_ObjectKey &object_key,
- const TAO_GIOP_Version &version,
- TAO_ORB_Core *orb_core);
+ const char *object_key);
+ // Profile constructor, the rendezvous_point field derived derived from
+ // addr.
+
+ TAO_UIOP_Profile (const ACE_UNIX_Addr &addr,
+ const TAO_ObjectKey &object_key);
// Profile constructor, same as above except the object_key has
// already been marshaled. (actually, no marshalling for this protocol)
+ TAO_UIOP_Profile (const ACE_UNIX_Addr &addr,
+ const TAO_IOP_Version &version,
+ const char *object_key);
+ // Profile constructor, explicitly define the protocol version.
+
+ TAO_UIOP_Profile (const ACE_UNIX_Addr &addr,
+ const TAO_IOP_Version &version,
+ const TAO_ObjectKey &object_key);
+ // Profile constructor, explicitly define the protocol version.
+
TAO_UIOP_Profile (const char *rendezvous_point,
const TAO_ObjectKey &object_key,
- const ACE_UNIX_Addr &addr,
- const TAO_GIOP_Version &version,
- TAO_ORB_Core *orb_core);
+ const ACE_UNIX_Addr &addr);
+ // Profile constructor
+
+ TAO_UIOP_Profile (const char *rendevous_point,
+ const TAO_ObjectKey &object_key);
// Profile constructor
+ TAO_UIOP_Profile (const char *rendezvous_point,
+ const TAO_IOP_Version &version,
+ const TAO_ObjectKey &object_key);
+ // Profile constructor, explicitly define the protocol version
+ // FIXME: What do we do about versions?
+
TAO_UIOP_Profile (const char *string,
- TAO_ORB_Core *orb_core,
CORBA::Environment &env);
// Create object using a string ior.
+ TAO_UIOP_Profile (const TAO_UIOP_Profile *pfile);
+ // Profile copy constructor
+
TAO_UIOP_Profile (const TAO_UIOP_Profile &pfile);
// Profile copy constructor
- TAO_UIOP_Profile (TAO_ORB_Core *orb_core);
- // Profile constructor, default.
+ TAO_UIOP_Profile (const TAO_IOP_Version &version);
+ // Profile constructor, explicitly define the version.
- TAO_UIOP_Profile & operator= (const TAO_UIOP_Profile &src);
- // Assignment operator
+ TAO_UIOP_Profile (void);
+ // Profile constructor, default.
~TAO_UIOP_Profile (void);
// Destructor is to be called only through <_decr_refcnt>.
@@ -89,6 +118,9 @@ public:
// Return a string representation for this profile.
// client must deallocate memory.
+ const TAO_opaque& body (void) const;
+ // Create UIOP_Profile Object from marshalled data.
+
int decode (TAO_InputCDR& cdr);
// Initialize this object using the given CDR octet string.
@@ -102,7 +134,7 @@ public:
TAO_ObjectKey &object_key (TAO_ObjectKey& objkey);
// @@ deprecated. set the Object Key.
- TAO_ObjectKey *_key (void) const;
+ TAO_ObjectKey *_key (CORBA::Environment &env) const;
// Return a pointer to the Object Key.
CORBA::Boolean is_equivalent (TAO_Profile *other_profile,
@@ -115,7 +147,7 @@ public:
CORBA::Environment &env);
// Return a hash value for this object.
- int addr_to_string (char *buffer, size_t length);
+ char *addr_to_string (void);
// Return a string representation for the address.
const ACE_UNIX_Addr &object_addr (void) const;
@@ -130,31 +162,42 @@ public:
// resulting pointer.
// This object maintains ownership of this string.
- const TAO_GIOP_Version &version (void) const;
+ const TAO_IOP_Version *version (void);
// Return a pointer to this profile's version. This object
// maintains ownership.
+ const TAO_IOP_Version *version (TAO_IOP_Version *v);
+ // First set the version then return a pointer to it. This object
+ // maintains ownership.
+
TAO_UIOP_Client_Connection_Handler *&hint (void);
// This is a hint for which connection handler to use.
void reset_hint (void);
// Reset the hint's value.
- const TAO_Tagged_Components& tagged_components (void) const;
- TAO_Tagged_Components& tagged_components (void);
- // Access the tagged components, notice that they are empty and
- // ignored for GIOP 1.0
+ TAO_Profile *_nil (void);
+ // Return a null object pointer.
+
+ TAO_UIOP_Profile & operator= (const TAO_UIOP_Profile &src);
+ // Assignment operator
private:
int set (const ACE_UNIX_Addr &addr);
// helper method to set the UNIX_Addr.
+ void create_body (void);
+ // Does the work for <add_profile>.
+
private:
char *rendezvous_point_;
// String representing the rendezvous point.
- TAO_GIOP_Version version_;
+ TAO_opaque body_;
+ // Marshaled profile (CDR).
+
+ TAO_IOP_Version version_;
// UIOP version number.
TAO_ObjectKey object_key_;
@@ -170,12 +213,6 @@ private:
TAO_MProfile *forward_to_;
// list of profiles which we should try forwarding on.
-
- TAO_ORB_Core *orb_core_;
- // ORB Core.
-
- TAO_Tagged_Components tagged_components_;
- // The tagged components
};
#if defined (__ACE_INLINE__)