summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Naming/Persistent_Bindings_Map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Naming/Persistent_Bindings_Map.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Naming/Persistent_Bindings_Map.cpp244
1 files changed, 0 insertions, 244 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Naming/Persistent_Bindings_Map.cpp b/TAO/orbsvcs/orbsvcs/Naming/Persistent_Bindings_Map.cpp
deleted file mode 100644
index e83a1a64ff5..00000000000
--- a/TAO/orbsvcs/orbsvcs/Naming/Persistent_Bindings_Map.cpp
+++ /dev/null
@@ -1,244 +0,0 @@
-// $Id$
-// ============================================================================
-//
-// = LIBRARY
-// cos
-//
-// = FILENAME
-// Persistent_Bindings_Map.cpp
-//
-// = AUTHOR
-// Marina Spivak <marina@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "Persistent_Bindings_Map.h"
-
-
-int
-TAO_Persistent_Bindings_Map::unbind (const char *id,
- const char *kind)
-{
- TAO_Persistent_ExtId name (id, kind);
- TAO_Persistent_IntId entry;
- if (this->map_->unbind (name, entry, this->allocator_) != 0)
- return -1;
- else
- {
- // Free up the memory we allocated in shared_bind(). Note that
- // this assumes that the "ref" pointer comes first and that
- // the ref, id and kind are contiguously allocated (see
- // shared_bind() for details)
- this->allocator_->free ((void *) (entry.ref_));
- return 0;
- }
-}
-
-int
-TAO_Persistent_Bindings_Map::bind (const char *id,
- const char *kind,
- CORBA::Object_ptr obj,
- CosNaming::BindingType type)
-{
- return this->shared_bind (id, kind, obj, type, 0);
-}
-
-int
-TAO_Persistent_Bindings_Map::rebind (const char *id,
- const char *kind,
- CORBA::Object_ptr obj,
- CosNaming::BindingType type)
-{
- return this->shared_bind (id, kind, obj, type, 1);
-}
-
-int
-TAO_Persistent_Bindings_Map::find (const char *id,
- const char *kind,
- CORBA::Object_ptr & obj,
- CosNaming::BindingType &type)
-{
- TAO_Persistent_ExtId name (id, kind);
- TAO_Persistent_IntId entry;
-
- if (this->map_->find (name,
- entry,
- this->allocator_) != 0)
- return -1;
- else
- {
- ACE_DECLARE_NEW_CORBA_ENV;
- obj = orb_->string_to_object (entry.ref_, ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
- type = entry.type ();
-
- return 0;
- }
-}
-
-TAO_Persistent_Bindings_Map::TAO_Persistent_Bindings_Map (CORBA::ORB_ptr orb)
- : allocator_ (0),
- map_ (0),
- orb_ (CORBA::ORB::_duplicate (orb))
-{
-}
-
-TAO_Persistent_Bindings_Map::~TAO_Persistent_Bindings_Map (void)
-{
-}
-
-void
-TAO_Persistent_Bindings_Map::destroy (void)
-{
- allocator_->free (map_);
-}
-
-TAO_Persistent_Bindings_Map::HASH_MAP *
-TAO_Persistent_Bindings_Map::map (void)
-{
- return map_;
-}
-
-size_t
-TAO_Persistent_Bindings_Map::total_size (void)
-{
- return map_->total_size ();
-}
-
-size_t
-TAO_Persistent_Bindings_Map::current_size (void)
-{
- return map_->current_size ();
-}
-
-int
-TAO_Persistent_Bindings_Map::open (size_t size,
- ACE_Allocator *alloc)
-{
- allocator_ = alloc;
-
- void *ns_map = 0;
-
- size_t map_size = sizeof (HASH_MAP);
- ns_map = this->allocator_->malloc (map_size);
-
- // Initialize the map into its memory location (e.g., shared memory).
- ACE_NEW_RETURN (this->map_,
- (ns_map) HASH_MAP (size, this->allocator_),
- -1);
-
- return 0;
-}
-
-void
-TAO_Persistent_Bindings_Map::set (HASH_MAP *map,
- ACE_Allocator *alloc)
-{
- allocator_ = alloc;
- map_ = map;
-}
-
-int
-TAO_Persistent_Bindings_Map::shared_bind (const char * id,
- const char * kind,
- CORBA::Object_ptr obj,
- CosNaming::BindingType type,
- int rebind)
-{
- ACE_DECLARE_NEW_CORBA_ENV;
- CORBA::String_var ref = orb_->object_to_string (obj, ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
-
- size_t id_len = ACE_OS::strlen (id) + 1;
- size_t kind_len = ACE_OS::strlen (kind) + 1;
- size_t ref_len = ACE_OS::strlen (ref) + 1;
- size_t total_len = id_len + kind_len + ref_len;
- char *ptr = (char *) this->allocator_->malloc (total_len);
-
- if (ptr == 0)
- return -1;
- else
- {
- // Note that the <ref> *must* come first to make sure we can
- // retrieve this pointer later on in unbind().
- char * ref_ptr = ptr;
- char * id_ptr = ptr + ref_len;
- char * kind_ptr = ptr + ref_len + id_len;
- ACE_OS::strcpy (ref_ptr, ref.in ());
- ACE_OS::strcpy (id_ptr, id);
- ACE_OS::strcpy (kind_ptr, kind);
-
- TAO_Persistent_ExtId new_name (id_ptr, kind_ptr);
- TAO_Persistent_IntId new_entry (ref_ptr, type);
- int result = -1;
-
- if (rebind == 0)
- {
- // Do a normal bind. This will fail if there's already an
- // <new_internal> with the same name.
- result = this->map_->bind (new_name, new_entry, this->allocator_);
-
- if (result == 1)
- {
- // Entry already existed so bind failed. Free our dynamically allocated memory.
- this->allocator_->free ((void *) ptr);
- return result;
- }
- }
- else
- {
- // Do a rebind. If there's already any entry, this will return the existing
- // <new_name> and <new_internal> and overwrite the existing name binding.
- TAO_Persistent_ExtId old_name;
- TAO_Persistent_IntId old_entry;
-
- result = this->map_->rebind (new_name, new_entry,
- old_name, old_entry,
- this->allocator_);
- if (result == 1)
- {
- // Free up the memory we allocated in shared_bind(). Note that this
- // assumes that the "value" pointer comes first and that the value,
- // name, and type are contiguously allocated (see above for details)
- this->allocator_->free ((void *) old_entry.ref_);
- }
- }
-
- if (result == -1)
- // Free our dynamically allocated memory.
- this->allocator_->free ((void *) ptr);
- else
- // If bind() or rebind() succeed, they will automatically sync
- // up the map manager entry. However, we must sync up our
- // name/value memory.
- this->allocator_->sync (ptr, total_len);
-
- return result;
- }
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Shared_Hash_Map<TAO_Persistent_ExtId, TAO_Persistent_IntId>;
-template class ACE_Hash_Map_Manager<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Manager_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Entry<TAO_Persistent_ExtId, TAO_Persistent_IntId>;
-template class ACE_Hash<TAO_Persistent_ExtId>;
-template class ACE_Equal_To<TAO_Persistent_ExtId>;
-template class ACE_Hash_Map_Iterator_Base_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Shared_Hash_Map<TAO_Persistent_ExtId, TAO_Persistent_IntId>
-#pragma instantiate ACE_Hash_Map_Manager<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Entry<TAO_Persistent_ExtId, TAO_Persistent_IntId>
-#pragma instantiate ACE_Hash<TAO_Persistent_ExtId>
-#pragma instantiate ACE_Equal_To<TAO_Persistent_ExtId>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_Persistent_ExtId, TAO_Persistent_IntId, ACE_Hash<TAO_Persistent_ExtId>, ACE_Equal_To<TAO_Persistent_ExtId>, ACE_Null_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */