summaryrefslogtreecommitdiff
path: root/TAO/tao/Tagged_Profile.h
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-02-28 20:33:52 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-02-28 20:33:52 +0000
commit52607f6e7ad6e1e1844977a4d87e04ae2ac72faf (patch)
treea3915c9b06448ce1f88be6c6b3fb6c2c5337dae4 /TAO/tao/Tagged_Profile.h
parent7e420b992ff83889a838bf6f163a9e2c1bbf9cdd (diff)
downloadATCD-52607f6e7ad6e1e1844977a4d87e04ae2ac72faf.tar.gz
ChangeLogTag: Wed Feb 28 14:23:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/Tagged_Profile.h')
-rw-r--r--TAO/tao/Tagged_Profile.h48
1 files changed, 39 insertions, 9 deletions
diff --git a/TAO/tao/Tagged_Profile.h b/TAO/tao/Tagged_Profile.h
index 620ad39e385..aecbda08ada 100644
--- a/TAO/tao/Tagged_Profile.h
+++ b/TAO/tao/Tagged_Profile.h
@@ -22,7 +22,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/GIOPC.h"
-
+#include "ace/SString.h"
/**
* @class TAO_Tagged_Profile
@@ -64,8 +64,15 @@ public:
/// get the tagged_profile
IOP::TaggedProfile &tagged_profile (void);
- /// get the addressing info
- GIOP::IORAddressingInfo &addressing_info (void);
+ /// Get/Set the profile index, that needs to be used in the
+ /// sequnce of TaggedProfiles contained IOP::IOR that is
+ /// receivedfrom the client.
+ CORBA::ULong profile_index (void);
+ void profile_index (CORBA::ULong ind);
+
+ /// Accessor to the type_id contained in the IOP::IOR received from
+ /// the client.
+ ACE_CString &type_id (void);
/// Extract the object key from the TaggedProfile and store it in
/// <object_key_>
@@ -81,12 +88,35 @@ private:
/// The Tagged profile. This class would have the Tagged Profile
IOP::TaggedProfile profile_;
- /// The addressing info
- GIOP::IORAddressingInfo addr_info_;
-
- // The above two declarations are not used in TAO as on date. It is
- // here so that we can use this anyday. The object_key extracted
- // from these would still be available in <object_key_>.
+ /*
+ * The GIOP::IORAddressingInfo is defined as follows
+ * struct IORAddressingInfo
+ * {
+ * unsigned long selected_profile_index;
+ * IOP::IOR ior;
+ * };
+ *
+ * and the IOP::IOR is defined to be
+ * struct IOR
+ * {
+ * string type_id;
+ * sequence<TaggedProfile> profiles;
+ * };
+ * The mapping for the type_id of type string is TAO_String_Manager
+ * which does lot of bad things like allocation on construction and
+ * a deallocation on destruction. This is bad along the critical
+ * path. So we will store this nested structure ripped open with the
+ * profile_index and the type_id with the TaggedProfile that is
+ * pointed to.
+ */
+
+ /// The profile index incase we receive a GIOP::IORAddressingInfo
+ /// information
+ CORBA::ULong profile_index_;
+
+ /// The type_id in the IOP::IOR incase we receive the
+ /// GIOP::IORAddressingInfo information.
+ ACE_CString type_id_;
};
#if defined (__ACE_INLINE__)