summaryrefslogtreecommitdiff
path: root/trunk/TAO/orbsvcs/orbsvcs/Naming/Entries.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/TAO/orbsvcs/orbsvcs/Naming/Entries.h')
-rw-r--r--trunk/TAO/orbsvcs/orbsvcs/Naming/Entries.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/trunk/TAO/orbsvcs/orbsvcs/Naming/Entries.h b/trunk/TAO/orbsvcs/orbsvcs/Naming/Entries.h
new file mode 100644
index 00000000000..e41d9bdf258
--- /dev/null
+++ b/trunk/TAO/orbsvcs/orbsvcs/Naming/Entries.h
@@ -0,0 +1,139 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Entries.h
+ *
+ * $Id$
+ *
+ * @author Marina Spivak <marina@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#ifndef TAO_ENTRIES_H
+#define TAO_ENTRIES_H
+#include /**/ "ace/pre.h"
+
+#include "ace/Hash_Map_Manager.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/Naming/naming_serv_export.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class TAO_IntId
+ *
+ * @brief Helper class for TAO_Transient_Bindings_Map: unifies several
+ * data items, so they can be stored together as a <value>
+ * for a <key> in a hash table holding the state of a Transient
+ * Naming Context.
+ *
+ * This class holds CORBA Object pointer and a binding type, so
+ * they can be stored together as a <value> for a <key> in a
+ * hash table holding the state of a Transient Naming Context.
+ */
+class TAO_Naming_Serv_Export TAO_IntId
+{
+public:
+ // = Initialization and termination methods.
+ /// Constructor.
+ TAO_IntId (void);
+
+ /// Constructor.
+ TAO_IntId (CORBA::Object_ptr obj,
+ CosNaming::BindingType type /* = CosNaming::nobject */);
+
+ /// Copy constructor.
+ TAO_IntId (const TAO_IntId & rhs);
+
+ /// Destructor.
+ ~TAO_IntId (void);
+
+ /// Assignment operator (does copy memory).
+ void operator= (const TAO_IntId & rhs);
+
+ // = Data members.
+
+ /// Object reference to be stored in a Transient Naming Context.
+ CORBA::Object_ptr ref_;
+
+ /// Binding type for <ref_>.
+ CosNaming::BindingType type_;
+};
+
+/**
+ * @class TAO_ExtId
+ *
+ * @brief Helper class for TAO_Transient_Bindings_Map: unifies several
+ * data items, so they can be stored together as a <key>
+ * for a <value> in a hash table holding the state of a Transient
+ * Naming Context.
+ *
+ * This class holds id and kind strings, so
+ * they can be stored together as a <key> for a <value> in a
+ * hash table holding the state of a Transient Naming Context.
+ */
+class TAO_Naming_Serv_Export TAO_ExtId
+{
+public:
+ // = Initialization and termination methods.
+
+ /// Constructor.
+ TAO_ExtId (void);
+
+ /// Constructor.
+ TAO_ExtId (const char *id,
+ const char *kind);
+
+ /// Copy constructor.
+ TAO_ExtId (const TAO_ExtId & rhs);
+
+ /// Destructor.
+ ~TAO_ExtId (void);
+
+ // = Assignment and comparison operators.
+
+ /// Assignment operator (does copy memory).
+ void operator= (const TAO_ExtId & rhs);
+
+ /// Equality comparison operator (must match both id_ and kind_).
+ bool operator== (const TAO_ExtId &rhs) const;
+
+ /// Inequality comparison operator.
+ bool operator!= (const TAO_ExtId &rhs) const;
+
+ /// <hash> function is required in order for this class to be usable by
+ /// ACE_Hash_Map_Manager.
+ u_long hash (void) const;
+
+ // = Data members.
+
+ /// <kind> portion of the name to be associated with some object
+ /// reference in a Transient Naming Context.
+ ACE_CString kind_;
+
+ /// <id> portion of the name to be associated with some object
+ /// reference in a Transient Naming Context.
+ ACE_CString id_;
+
+ // = Accessors
+
+ /// Return <id_> in a const char * format.
+ const char * id (void);
+
+ /// Return <kind_> in a const char * format.
+ const char * kind (void);
+};
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* TAO_ENTRIES_H */