#include <GOA.h>
Inheritance diagram for TAO_GOA:
Implementation of the PortableGroup::GOA interface.
Definition at line 48 of file GOA.h.
|
Definition at line 73 of file GOA.cpp.
00081 : TAO_Regular_POA (name, 00082 poa_manager, 00083 policies, 00084 parent, 00085 lock, 00086 thread_lock, 00087 orb_core, 00088 object_adapter) 00089 { 00090 } |
|
Definition at line 92 of file GOA.cpp.
00093 { 00094 } |
|
Reimplemented from TAO_Root_POA. Definition at line 300 of file GOA.cpp. References TAO_Root_POA::activate_object().
00301 { 00302 PortableServer::ObjectId *object_id = 00303 this->TAO_Regular_POA::activate_object (p_servant); 00304 return object_id; 00305 } |
|
Reimplemented from TAO_Root_POA. Definition at line 308 of file GOA.cpp. References TAO_Root_POA::activate_object_with_id().
00310 { 00311 this->TAO_Regular_POA::activate_object_with_id (id, 00312 p_servant); 00313 } |
|
Helper function to associate group references with object references. Definition at line 481 of file GOA.cpp. References PortableGroup_Request_Dispatcher::acceptor_registry_, ACE_NEW_THROW_EX, TAO_Portable_Group_Map::add_groupid_objectkey_pair(), create_group_acceptors(), find_group_component(), PortableGroup_Request_Dispatcher::group_map_, and TAO_ORB_Core::request_dispatcher(). Referenced by associate_reference_with_id(), and create_id_for_reference().
00484 { 00485 // Find the Group Component so that we can extract the Group ID. 00486 PortableGroup::TagGroupTaggedComponent *tmp_group_id; 00487 ACE_NEW_THROW_EX (tmp_group_id, 00488 PortableGroup::TagGroupTaggedComponent, 00489 CORBA::NO_MEMORY ( 00490 CORBA::SystemException::_tao_minor_code ( 00491 TAO::VMCID, 00492 ENOMEM), 00493 CORBA::COMPLETED_NO)); 00494 00495 PortableGroup::TagGroupTaggedComponent_var group_id = tmp_group_id; 00496 00497 if (this->find_group_component (group_ref, group_id.inout ()) != 0) 00498 { 00499 // Group component wasn't found. The group reference 00500 // that was passed in must be bogus. 00501 throw PortableGroup::NotAGroupObject (); 00502 } 00503 00504 PortableGroup_Request_Dispatcher *rd = 00505 dynamic_cast <PortableGroup_Request_Dispatcher*>( 00506 this->orb_core_.request_dispatcher()); 00507 00508 // Create the acceptors necessary to receive requests for the 00509 // specified group reference. 00510 this->create_group_acceptors (group_ref, 00511 rd->acceptor_registry_, 00512 this->orb_core_); 00513 00514 00515 00516 // Add a mapping from GroupId to Object key in the PortableGroup 00517 const TAO::ObjectKey &key = 00518 obj_ref->_stubobj ()->profile_in_use ()->object_key (); 00519 rd->group_map_.add_groupid_objectkey_pair (group_id._retn (), 00520 key); 00521 00522 } |
|
Definition at line 51 of file GOA.cpp. References associate_group_with_ref(), and id_to_reference().
00053 { 00054 // Create a reference for the specified ObjectId, since 00055 // it is much easier to extract the object key from the 00056 // reference. 00057 CORBA::Object_var obj_ref = this->id_to_reference (oid); 00058 00059 // Associate the object reference with the group reference. 00060 this->associate_group_with_ref (ref, 00061 obj_ref.in ()); 00062 } |
|
Definition at line 452 of file GOA.cpp. References TAO_MProfile::get_profile(), TAO_PortableGroup_Acceptor_Registry::open(), and TAO_Profile::supports_multicast(). Referenced by associate_group_with_ref().
00455 { 00456 const TAO_MProfile& profiles = the_ref->_stubobj ()->base_profiles (); 00457 const TAO_Profile* profile; 00458 CORBA::ULong slot; 00459 int num = 0; 00460 00461 // Iterate through the tagged profiles, and 00462 // create acceptors for the multicast ones. 00463 slot = 0; 00464 while (0 != (profile = profiles.get_profile (slot))) 00465 { 00466 if (profile->supports_multicast ()) 00467 { 00468 acceptor_registry.open (profile, 00469 orb_core); 00470 ++num; 00471 } 00472 00473 ++slot; 00474 } 00475 00476 // Return the number of acceptors registered. 00477 return num; 00478 } |
|
Reimplemented from TAO_Root_POA. Definition at line 182 of file GOA.cpp. References TAO_Root_POA::create_id_assignment_policy().
00183 { 00184 PortableServer::IdAssignmentPolicy_ptr policy = 00185 this->TAO_Regular_POA::create_id_assignment_policy (value); 00186 return policy; 00187 } |
|
Definition at line 22 of file GOA.cpp. References associate_group_with_ref(), create_reference(), and reference_to_id().
00023 { 00024 // Get the RepositoryId from the Group reference so 00025 // we know what kind of reference to make. 00026 const char* repository_id = the_ref->_stubobj ()->type_id.in (); 00027 00028 // Create a temporary object reference and then get the 00029 // ObjectId out of it. 00030 CORBA::Object_var obj_ref = this->create_reference (repository_id); 00031 00032 PortableServer::ObjectId_var obj_id = 00033 this->reference_to_id (obj_ref.in ()); 00034 00035 // Associate the object reference with the group reference. 00036 this->associate_group_with_ref (the_ref, 00037 obj_ref.in ()); 00038 00039 return obj_id._retn (); 00040 } |
|
Reimplemented from TAO_Root_POA. Definition at line 173 of file GOA.cpp. References TAO_Root_POA::create_id_uniqueness_policy().
00174 { 00175 PortableServer::IdUniquenessPolicy_ptr policy = 00176 this->TAO_Regular_POA::create_id_uniqueness_policy (value); 00177 return policy; 00178 } |
|
Reimplemented from TAO_Root_POA. Definition at line 193 of file GOA.cpp. References TAO_Root_POA::create_implicit_activation_policy().
00194 { 00195 PortableServer::ImplicitActivationPolicy_ptr policy = 00196 this->TAO_Regular_POA::create_implicit_activation_policy (value); 00197 return policy; 00198 } |
|
Reimplemented from TAO_Root_POA. Definition at line 165 of file GOA.cpp. References TAO_Root_POA::create_lifespan_policy().
00166 { 00167 PortableServer::LifespanPolicy_ptr policy = 00168 this->TAO_Regular_POA::create_lifespan_policy (value); 00169 return policy; 00170 } |
|
Reimplemented from TAO_Root_POA. Definition at line 124 of file GOA.cpp. References TAO_Root_POA::create_POA().
00127 { 00128 PortableServer::POA_ptr poa = this->TAO_Regular_POA::create_POA (adapter_name, 00129 poa_manager, 00130 policies); 00131 return poa; 00132 } |
|
Reimplemented from TAO_Root_POA. Definition at line 322 of file GOA.cpp. References TAO_Root_POA::create_reference(). Referenced by create_id_for_reference().
00323 { 00324 CORBA::Object_ptr obj = 00325 this->TAO_Regular_POA::create_reference (intf); 00326 return obj; 00327 } |
|
Reimplemented from TAO_Root_POA. Definition at line 330 of file GOA.cpp. References TAO_Root_POA::create_reference_with_id().
00332 { 00333 CORBA::Object_ptr obj = 00334 this->TAO_Regular_POA::create_reference_with_id (oid, 00335 intf); 00336 return obj; 00337 } |
|
Reimplemented from TAO_Root_POA. Definition at line 210 of file GOA.cpp. References TAO_Root_POA::create_request_processing_policy().
00211 { 00212 PortableServer::RequestProcessingPolicy_ptr policy = 00213 this->TAO_Regular_POA::create_request_processing_policy (value); 00214 return policy; 00215 } |
|
Reimplemented from TAO_Root_POA. Definition at line 201 of file GOA.cpp. References TAO_Root_POA::create_servant_retention_policy().
00202 { 00203 PortableServer::ServantRetentionPolicy_ptr policy = 00204 this->TAO_Regular_POA::create_servant_retention_policy (value); 00205 return policy; 00206 } |
|
Reimplemented from TAO_Root_POA. Definition at line 155 of file GOA.cpp. References TAO_Root_POA::create_thread_policy().
00156 { 00157 PortableServer::ThreadPolicy_ptr policy = 00158 this->TAO_Regular_POA::create_thread_policy (value); 00159 return policy; 00160 } |
|
Reimplemented from TAO_Root_POA. Definition at line 316 of file GOA.cpp. References TAO_Root_POA::deactivate_object().
00317 { 00318 this->TAO_Regular_POA::deactivate_object (oid); 00319 } |
|
Reimplemented from TAO_Root_POA. Definition at line 144 of file GOA.cpp. References TAO_Root_POA::destroy().
00146 { 00147 this->TAO_Regular_POA::destroy (etherealize_objects, 00148 wait_for_completion); 00149 } |
|
Definition at line 65 of file GOA.cpp.
00067 { 00068 ACE_UNUSED_ARG (ref); 00069 ACE_UNUSED_ARG (oid); 00070 } |
|
Definition at line 395 of file GOA.cpp. References find_group_component_in_profile(), and TAO_MProfile::get_profile(). Referenced by associate_group_with_ref().
00397 { 00398 const TAO_MProfile& profiles = the_ref->_stubobj ()->base_profiles (); 00399 const TAO_Profile* profile; 00400 CORBA::ULong slot; 00401 00402 // Iterate through the tagged profiles, and 00403 // create acceptors for the multicast ones. 00404 slot = 0; 00405 while (0 != (profile = profiles.get_profile (slot))) 00406 { 00407 if (this->find_group_component_in_profile (profile, group) == 0) 00408 return 0; 00409 00410 ++slot; 00411 } 00412 00413 // Not found. 00414 return -1; 00415 } |
|
Definition at line 418 of file GOA.cpp. References IOP::TaggedComponent::component_data, TAO_Tagged_Components::get_component(), ACE_InputCDR::reset_byte_order(), IOP::TaggedComponent::tag, and TAO_Profile::tagged_components(). Referenced by find_group_component().
00420 { 00421 // Iterate through the tagged components looking for 00422 // group tag. 00423 const TAO_Tagged_Components& components = profile->tagged_components (); 00424 00425 IOP::TaggedComponent tagged_component; 00426 tagged_component.tag = IOP::TAG_GROUP; 00427 00428 // Try to find it. 00429 if (components.get_component (tagged_component) == 0) 00430 return -1; 00431 00432 // Found it. 00433 const CORBA::Octet *buf = 00434 tagged_component.component_data.get_buffer (); 00435 00436 TAO_InputCDR in_cdr (reinterpret_cast <const char*> (buf), 00437 tagged_component.component_data.length ()); 00438 00439 // Extract the Byte Order. 00440 CORBA::Boolean byte_order; 00441 if ((in_cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) 00442 return -1; 00443 in_cdr.reset_byte_order (static_cast <int> (byte_order)); 00444 00445 if ((in_cdr >> group) == 0) 00446 return -1; 00447 00448 return 0; 00449 } |
|
Reimplemented from TAO_Root_POA. Definition at line 135 of file GOA.cpp. References TAO_Root_POA::find_POA().
00137 { 00138 PortableServer::POA_ptr poa = this->TAO_Regular_POA::find_POA (adapter_name, 00139 activate_it); 00140 return poa; 00141 } |
|
Reimplemented from TAO_Root_POA. Definition at line 284 of file GOA.cpp. References TAO_Root_POA::get_servant().
00285 { 00286 PortableServer::Servant servant = 00287 this->TAO_Regular_POA::get_servant (); 00288 return servant; 00289 } |
|
Reimplemented from TAO_Root_POA. Definition at line 270 of file GOA.cpp. References TAO_Root_POA::get_servant_manager().
00271 { 00272 PortableServer::ServantManager_ptr servant_manager = 00273 this->TAO_Regular_POA::get_servant_manager (); 00274 return servant_manager; 00275 } |
|
Reimplemented from TAO_Root_POA. Definition at line 389 of file GOA.cpp. References TAO_Root_POA::id().
00390 { 00391 return this->TAO_Regular_POA::id (); 00392 } |
|
Reimplemented from TAO_Root_POA. Definition at line 381 of file GOA.cpp. References TAO_Root_POA::id_to_reference(). Referenced by associate_reference_with_id().
00382 { 00383 CORBA::Object_ptr obj = 00384 this->TAO_Regular_POA::id_to_reference (oid); 00385 return obj; 00386 } |
|
Reimplemented from TAO_Root_POA. Definition at line 373 of file GOA.cpp. References TAO_Root_POA::id_to_servant().
00374 { 00375 PortableServer::Servant servant = 00376 this->TAO_Regular_POA::id_to_servant (oid); 00377 return servant; 00378 } |
|
|
|
Template method for creating new POA's of this type.
Reimplemented from TAO_Root_POA. Definition at line 97 of file GOA.cpp. References ACE_NEW_THROW_EX.
00105 { 00106 TAO_GOA *poa = 0; 00107 00108 ACE_NEW_THROW_EX (poa, 00109 TAO_GOA (name, 00110 poa_manager, 00111 policies, 00112 parent, 00113 lock, 00114 thread_lock, 00115 orb_core, 00116 object_adapter), 00117 CORBA::NO_MEMORY ()); 00118 00119 return poa; 00120 } |
|
Reimplemented from TAO_Root_POA. Definition at line 365 of file GOA.cpp. References TAO_Root_POA::reference_to_id(). Referenced by create_id_for_reference().
00366 { 00367 PortableServer::ObjectId *object_id = 00368 this->TAO_Regular_POA::reference_to_id (reference); 00369 return object_id; 00370 } |
|
Definition at line 43 of file GOA.cpp.
00044 {
00045 ACE_UNUSED_ARG (the_ref);
00046
00047 return 0;
00048 }
|
|
Reimplemented from TAO_Root_POA. Definition at line 357 of file GOA.cpp. References TAO_Root_POA::reference_to_servant().
00358 { 00359 PortableServer::Servant servant = 00360 this->TAO_Regular_POA::reference_to_servant (reference); 00361 return servant; 00362 } |
|
Reimplemented from TAO_Root_POA. Definition at line 340 of file GOA.cpp. References TAO_Root_POA::servant_to_id().
00341 { 00342 PortableServer::ObjectId *object_id = 00343 this->TAO_Regular_POA::servant_to_id (p_servant); 00344 return object_id; 00345 } |
|
Reimplemented from TAO_Root_POA. Definition at line 348 of file GOA.cpp. References TAO_Root_POA::servant_to_reference().
00349 { 00350 CORBA::Object_ptr obj = 00351 this->TAO_Regular_POA::servant_to_reference (p_servant); 00352 return obj; 00353 } |
|
Reimplemented from TAO_Root_POA. Definition at line 292 of file GOA.cpp. References TAO_Root_POA::set_servant().
00293 { 00294 this->TAO_Regular_POA::set_servant (servant); 00295 } |
|
Reimplemented from TAO_Root_POA. Definition at line 278 of file GOA.cpp. References TAO_Root_POA::set_servant_manager().
00279 { 00280 this->TAO_Regular_POA::set_servant_manager (imgr); 00281 } |
|
Reimplemented from TAO_Root_POA. Definition at line 264 of file GOA.cpp. References TAO_Root_POA::the_activator().
00265 { 00266 this->TAO_Regular_POA::the_activator (adapter_activator); 00267 } |
|
Reimplemented from TAO_Root_POA. Definition at line 256 of file GOA.cpp. References TAO_Root_POA::the_activator().
00257 { 00258 PortableServer::AdapterActivator_ptr activator = 00259 this->TAO_Regular_POA::the_activator (); 00260 return activator; 00261 } |
|
Reimplemented from TAO_Root_POA. Definition at line 237 of file GOA.cpp. References TAO_Root_POA::the_children().
00238 { 00239 PortableServer::POAList *children = 00240 this->TAO_Regular_POA::the_children (); 00241 return children; 00242 } |
|
Reimplemented from TAO_Root_POA. Definition at line 221 of file GOA.cpp. References TAO_Root_POA::the_name().
00222 { 00223 char * name = 00224 this->TAO_Regular_POA::the_name (); 00225 return name; 00226 } |
|
Reimplemented from TAO_Regular_POA. Definition at line 229 of file GOA.cpp. References TAO_Regular_POA::the_parent().
00230 { 00231 PortableServer::POA_ptr parent = 00232 this->TAO_Regular_POA::the_parent (); 00233 return parent; 00234 } |
|
Reimplemented from TAO_Root_POA. Definition at line 245 of file GOA.cpp. References TAO_Root_POA::the_POAManager().
00246 { 00247 PortableServer::POAManager_ptr poa_manager = 00248 this->TAO_Regular_POA::the_POAManager (); 00249 return poa_manager; 00250 } |