#include <Active_Object_Map.h>
Inheritance diagram for TAO_Multiple_Id_Strategy:
Public Member Functions | |
virtual int | is_servant_in_map (PortableServer::Servant servant, bool &deactivated) |
Must be used with UNIQUE_ID policy. | |
virtual int | unbind_using_user_id (const PortableServer::ObjectId &user_id) |
virtual int | find_user_id_using_servant (PortableServer::Servant servant, PortableServer::ObjectId_out user_id) |
virtual int | find_system_id_using_servant (PortableServer::Servant servant, PortableServer::ObjectId_out system_id, CORBA::Short &priority) |
virtual int | bind_using_user_id (PortableServer::Servant servant, const PortableServer::ObjectId &user_id, CORBA::Short priority, TAO_Active_Object_Map_Entry *&entry) |
virtual CORBA::Boolean | remaining_activations (PortableServer::Servant servant) |
Strategy for the MULTIPLE_ID policy.
Definition at line 338 of file Active_Object_Map.h.
|
Can be used with any policy. With the SYSTEM_ID policy, is actually . Implements TAO_Id_Uniqueness_Strategy. Definition at line 535 of file Active_Object_Map.cpp. References ACE_NEW_RETURN, TAO_Id_Hint_Strategy::bind(), TAO_Active_Object_Map::id_hint_strategy_, TAO_Active_Object_Map_Entry::priority_, TAO_Active_Object_Map_Entry::servant_, TAO_Id_Hint_Strategy::unbind(), TAO_Active_Object_Map_Entry::user_id_, and TAO_Active_Object_Map::user_id_map_.
00539 { 00540 int result = this->active_object_map_->user_id_map_->find (user_id, entry); 00541 if (result == 0) 00542 { 00543 if (servant != 0) 00544 entry->servant_ = servant; 00545 } 00546 else 00547 { 00548 ACE_NEW_RETURN (entry, 00549 TAO_Active_Object_Map_Entry, 00550 -1); 00551 entry->user_id_ = user_id; 00552 entry->servant_ = servant; 00553 entry->priority_ = priority; 00554 00555 result = 00556 this->active_object_map_->id_hint_strategy_->bind (*entry); 00557 00558 if (result == 0) 00559 { 00560 result = this->active_object_map_->user_id_map_->bind (entry->user_id_, 00561 entry); 00562 if (result != 0) 00563 { 00564 this->active_object_map_->id_hint_strategy_->unbind (*entry); 00565 delete entry; 00566 } 00567 } 00568 else 00569 delete entry; 00570 } 00571 00572 return result; 00573 } |
|
Must be used with UNIQUE_ID policy. With the SYSTEM_ID policy, is actually . Implements TAO_Id_Uniqueness_Strategy. Definition at line 600 of file Active_Object_Map.cpp.
00603 {
00604 return -1;
00605 }
|
|
Must be used with UNIQUE_ID policy. With the SYSTEM_ID policy, is actually . Implements TAO_Id_Uniqueness_Strategy. Definition at line 593 of file Active_Object_Map.cpp.
00595 {
00596 return -1;
00597 }
|
|
Must be used with UNIQUE_ID policy.
Implements TAO_Id_Uniqueness_Strategy. Definition at line 529 of file Active_Object_Map.cpp.
00530 {
00531 return -1;
00532 }
|
|
Are there any remaining activations of in the active object map? Can be used with any policy. Implements TAO_Id_Uniqueness_Strategy. Definition at line 608 of file Active_Object_Map.cpp. References TAO_Active_Object_Map_Entry::servant_, and TAO_Active_Object_Map::user_id_map_.
00609 { 00610 TAO_Active_Object_Map::user_id_map::iterator end 00611 = this->active_object_map_->user_id_map_->end (); 00612 00613 for (TAO_Active_Object_Map::user_id_map::iterator iter 00614 = this->active_object_map_->user_id_map_->begin (); 00615 iter != end; 00616 ++iter) 00617 { 00618 TAO_Active_Object_Map::user_id_map::value_type map_pair = *iter; 00619 TAO_Active_Object_Map_Entry *entry = map_pair.second (); 00620 00621 if (entry->servant_ == servant) 00622 return 1; 00623 } 00624 00625 return 0; 00626 } |
|
Can be used with any policy. With the SYSTEM_ID policy, is actually . Implements TAO_Id_Uniqueness_Strategy. Definition at line 576 of file Active_Object_Map.cpp. References TAO_Active_Object_Map::id_hint_strategy_, TAO_Id_Hint_Strategy::unbind(), and TAO_Active_Object_Map::user_id_map_.
00577 { 00578 TAO_Active_Object_Map_Entry *entry = 0; 00579 int result = this->active_object_map_->user_id_map_->unbind (user_id, 00580 entry); 00581 if (result == 0) 00582 { 00583 result = this->active_object_map_->id_hint_strategy_->unbind (*entry); 00584 00585 if (result == 0) 00586 delete entry; 00587 } 00588 00589 return result; 00590 } |