diff options
Diffstat (limited to 'TAO/tao/UIOP_Profile.h')
-rw-r--r-- | TAO/tao/UIOP_Profile.h | 97 |
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__) |