TAO_GOA Class Reference

Implementation of the PortableGroup::GOA interface. More...

#include <GOA.h>

Inheritance diagram for TAO_GOA:

Inheritance graph
[legend]
Collaboration diagram for TAO_GOA:

Collaboration graph
[legend]
List of all members.

Public Member Functions

PortableServer::POA_ptr create_POA (const char *adapter_name, PortableServer::POAManager_ptr poa_manager, const CORBA::PolicyList &policies) throw (CORBA::SystemException, PortableServer::POA::AdapterAlreadyExists, PortableServer::POA::InvalidPolicy)
PortableServer::POA_ptr find_POA (const char *adapter_name, CORBA::Boolean activate_it) throw (CORBA::SystemException, PortableServer::POA::AdapterNonExistent)
void destroy (CORBA::Boolean etherealize_objects, CORBA::Boolean wait_for_completion) throw (CORBA::SystemException)
PortableServer::ThreadPolicy_ptr create_thread_policy (PortableServer::ThreadPolicyValue value) throw (CORBA::SystemException)
PortableServer::LifespanPolicy_ptr create_lifespan_policy (PortableServer::LifespanPolicyValue value) throw (CORBA::SystemException)
PortableServer::IdUniquenessPolicy_ptr create_id_uniqueness_policy (PortableServer::IdUniquenessPolicyValue value) throw (CORBA::SystemException)
PortableServer::IdAssignmentPolicy_ptr create_id_assignment_policy (PortableServer::IdAssignmentPolicyValue value) throw (CORBA::SystemException)
PortableServer::ImplicitActivationPolicy_ptr create_implicit_activation_policy (PortableServer::ImplicitActivationPolicyValue value) throw (CORBA::SystemException)
PortableServer::ServantRetentionPolicy_ptr create_servant_retention_policy (PortableServer::ServantRetentionPolicyValue value) throw (CORBA::SystemException)
PortableServer::RequestProcessingPolicy_ptr create_request_processing_policy (PortableServer::RequestProcessingPolicyValue value) throw (CORBA::SystemException)
char * the_name () throw (CORBA::SystemException)
PortableServer::POA_ptr the_parent () throw (CORBA::SystemException)
PortableServer::POAListthe_children () throw (CORBA::SystemException)
PortableServer::POAManager_ptr the_POAManager () throw (CORBA::SystemException)
PortableServer::AdapterActivator_ptr the_activator () throw (CORBA::SystemException)
void the_activator (PortableServer::AdapterActivator_ptr adapter_activator) throw (CORBA::SystemException)
PortableServer::ServantManager_ptr get_servant_manager () throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
void set_servant_manager (PortableServer::ServantManager_ptr imgr) throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
PortableServer::Servant get_servant () throw (CORBA::SystemException, PortableServer::POA::NoServant, PortableServer::POA::WrongPolicy)
void set_servant (PortableServer::Servant servant) throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
PortableServer::ObjectIdactivate_object (PortableServer::Servant p_servant) throw (CORBA::SystemException, PortableServer::POA::ServantAlreadyActive, PortableServer::POA::WrongPolicy)
void activate_object_with_id (const PortableServer::ObjectId &id, PortableServer::Servant p_servant) throw (CORBA::SystemException, PortableServer::POA::ServantAlreadyActive, PortableServer::POA::ObjectAlreadyActive, PortableServer::POA::WrongPolicy)
void deactivate_object (const PortableServer::ObjectId &oid) throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongPolicy)
CORBA::Object_ptr create_reference (const char *intf) throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
CORBA::Object_ptr create_reference_with_id (const PortableServer::ObjectId &oid, const char *intf) throw (CORBA::SystemException)
PortableServer::ObjectIdservant_to_id (PortableServer::Servant p_servant) throw (CORBA::SystemException, PortableServer::POA::ServantNotActive, PortableServer::POA::WrongPolicy)
CORBA::Object_ptr servant_to_reference (PortableServer::Servant p_servant) throw (CORBA::SystemException, PortableServer::POA::ServantNotActive, PortableServer::POA::WrongPolicy)
PortableServer::Servant reference_to_servant (CORBA::Object_ptr reference) throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongAdapter, PortableServer::POA::WrongPolicy)
PortableServer::ObjectIdreference_to_id (CORBA::Object_ptr reference) throw (CORBA::SystemException, PortableServer::POA::WrongAdapter, PortableServer::POA::WrongPolicy)
PortableServer::Servant id_to_servant (const PortableServer::ObjectId &oid) throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongPolicy)
CORBA::Object_ptr id_to_reference (const PortableServer::ObjectId &oid) throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongPolicy)
CORBA::OctetSeqid () throw (CORBA::SystemException)
 TAO_GOA (const String &name, PortableServer::POAManager_ptr poa_manager, const TAO_POA_Policy_Set &policies, TAO_Root_POA *parent, ACE_Lock &lock, TAO_SYNCH_MUTEX &thread_lock, TAO_ORB_Core &orb_core, TAO_Object_Adapter *object_adapter)
virtual ~TAO_GOA (void)
MIOP specification methods
virtual PortableServer::ObjectIdcreate_id_for_reference (CORBA::Object_ptr the_ref) throw ( CORBA::SystemException, PortableGroup::NotAGroupObject )
virtual PortableGroup::IDsreference_to_ids (CORBA::Object_ptr the_ref) throw ( CORBA::SystemException, PortableGroup::NotAGroupObject )
virtual void associate_reference_with_id (CORBA::Object_ptr ref, const PortableServer::ObjectId &oid) throw ( CORBA::SystemException, PortableGroup::NotAGroupObject )
virtual void disassociate_reference_with_id (CORBA::Object_ptr ref, const PortableServer::ObjectId &oid) throw ( CORBA::SystemException, PortableGroup::NotAGroupObject )

Static Public Member Functions

int Initializer (void)

Protected Member Functions

virtual TAO_Root_POAnew_POA (const String &name, PortableServer::POAManager_ptr poa_manager, const TAO_POA_Policy_Set &policies, TAO_Root_POA *parent, ACE_Lock &lock, TAO_SYNCH_MUTEX &thread_lock, TAO_ORB_Core &orb_core, TAO_Object_Adapter *object_adapter)
 Template method for creating new POA's of this type.

int find_group_component (const CORBA::Object_ptr the_ref, PortableGroup::TagGroupTaggedComponent &group)
int find_group_component_in_profile (const TAO_Profile *profile, PortableGroup::TagGroupTaggedComponent &group)
int create_group_acceptors (CORBA::Object_ptr the_ref, TAO_PortableGroup_Acceptor_Registry &acceptor_registry, TAO_ORB_Core &orb_core)
void associate_group_with_ref (CORBA::Object_ptr group_ref, CORBA::Object_ptr obj_ref) throw (CORBA::SystemException, PortableGroup::NotAGroupObject)

Detailed Description

Implementation of the PortableGroup::GOA interface.

Implementation of the PortableGroup::GOA interface.

Definition at line 48 of file GOA.h.


Constructor & Destructor Documentation

TAO_GOA::TAO_GOA const String name,
PortableServer::POAManager_ptr  poa_manager,
const TAO_POA_Policy_Set policies,
TAO_Root_POA parent,
ACE_Lock lock,
TAO_SYNCH_MUTEX thread_lock,
TAO_ORB_Core orb_core,
TAO_Object_Adapter object_adapter
 

Definition at line 104 of file GOA.cpp.

References ACE_ENV_ARG_PARAMETER.

00113   : TAO_Regular_POA (name,
00114                      poa_manager,
00115                      policies,
00116                      parent,
00117                      lock,
00118                      thread_lock,
00119                      orb_core,
00120                      object_adapter
00121                      ACE_ENV_ARG_PARAMETER)
00122 {
00123 }

TAO_GOA::~TAO_GOA void   )  [virtual]
 

Definition at line 125 of file GOA.cpp.

00126 {
00127 }


Member Function Documentation

PortableServer::ObjectId * TAO_GOA::activate_object PortableServer::Servant  p_servant  )  throw (CORBA::SystemException, PortableServer::POA::ServantAlreadyActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 410 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::activate_object().

00415 {
00416   PortableServer::ObjectId *object_id =
00417     this->TAO_Regular_POA::activate_object (p_servant
00418                                     ACE_ENV_ARG_PARAMETER);
00419   ACE_CHECK_RETURN (object_id);
00420   return object_id;
00421 }

void TAO_GOA::activate_object_with_id const PortableServer::ObjectId id,
PortableServer::Servant  p_servant
throw (CORBA::SystemException, PortableServer::POA::ServantAlreadyActive, PortableServer::POA::ObjectAlreadyActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 424 of file GOA.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::activate_object_with_id().

00431 {
00432   this->TAO_Regular_POA::activate_object_with_id (id,
00433                                           p_servant
00434                                           ACE_ENV_ARG_PARAMETER);
00435   ACE_CHECK;
00436 }

void TAO_GOA::associate_group_with_ref CORBA::Object_ptr  group_ref,
CORBA::Object_ptr  obj_ref
throw (CORBA::SystemException, PortableGroup::NotAGroupObject) [protected]
 

Helper function to associate group references with object references.

Definition at line 660 of file GOA.cpp.

References PortableGroup_Request_Dispatcher::acceptor_registry_, ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_NEW_THROW_EX, ACE_THROW, TAO_Portable_Group_Map::add_groupid_objectkey_pair(), and PortableGroup_Request_Dispatcher::group_map_.

00666 {
00667   // Find the Group Component so that we can extract the Group ID.
00668   PortableGroup::TagGroupTaggedComponent *tmp_group_id;
00669   ACE_NEW_THROW_EX (tmp_group_id,
00670                     PortableGroup::TagGroupTaggedComponent,
00671                     CORBA::NO_MEMORY (
00672                       CORBA::SystemException::_tao_minor_code (
00673                         TAO::VMCID,
00674                         ENOMEM),
00675                       CORBA::COMPLETED_NO));
00676   ACE_CHECK;
00677 
00678   PortableGroup::TagGroupTaggedComponent_var group_id = tmp_group_id;
00679 
00680   if (this->find_group_component (group_ref, group_id.inout ()) != 0)
00681     {
00682       // Group component wasn't found.  The group reference
00683       // that was passed in must be bogus.
00684       ACE_THROW (PortableGroup::NotAGroupObject ());
00685     }
00686 
00687   PortableGroup_Request_Dispatcher *rd =
00688     dynamic_cast <PortableGroup_Request_Dispatcher*>(
00689       this->orb_core_.request_dispatcher());
00690 
00691   // Create the acceptors necessary to receive requests for the
00692   // specified group reference.
00693   this->create_group_acceptors (group_ref,
00694                                 rd->acceptor_registry_,
00695                                 this->orb_core_
00696                                 ACE_ENV_ARG_PARAMETER);
00697 
00698   ACE_CHECK;
00699 
00700 
00701   // Add a mapping from GroupId to Object key in the PortableGroup
00702   const TAO::ObjectKey &key =
00703     obj_ref->_stubobj ()->profile_in_use ()->object_key ();
00704   rd->group_map_.add_groupid_objectkey_pair (group_id._retn (),
00705                                              key
00706                                              ACE_ENV_ARG_PARAMETER);
00707   ACE_CHECK;
00708 
00709 }

void TAO_GOA::associate_reference_with_id CORBA::Object_ptr  ref,
const PortableServer::ObjectId oid
throw ( CORBA::SystemException, PortableGroup::NotAGroupObject ) [virtual]
 

Definition at line 68 of file GOA.cpp.

References ACE_CHECK, and ACE_ENV_ARG_PARAMETER.

00075 {
00076   // Create a reference for the specified ObjectId, since
00077   // it is much easier to extract the object key from the
00078   // reference.
00079   CORBA::Object_var obj_ref = this->id_to_reference (oid
00080                                                      ACE_ENV_ARG_PARAMETER);
00081   ACE_CHECK;
00082 
00083   // Associate the object reference with the group reference.
00084   this->associate_group_with_ref (ref,
00085                                   obj_ref.in ()
00086                                   ACE_ENV_ARG_PARAMETER);
00087   ACE_CHECK;
00088 }

int TAO_GOA::create_group_acceptors CORBA::Object_ptr  the_ref,
TAO_PortableGroup_Acceptor_Registry acceptor_registry,
TAO_ORB_Core orb_core
[protected]
 

Definition at line 628 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_MProfile::get_profile(), TAO_PortableGroup_Acceptor_Registry::open(), and TAO_Profile::supports_multicast().

00632 {
00633   const TAO_MProfile& profiles = the_ref->_stubobj ()->base_profiles ();
00634   const TAO_Profile* profile;
00635   CORBA::ULong slot;
00636   int num = 0;
00637 
00638   // Iterate through the tagged profiles, and
00639   // create acceptors for the multicast ones.
00640   slot = 0;
00641   while (0 != (profile = profiles.get_profile (slot)))
00642     {
00643       if (profile->supports_multicast ())
00644         {
00645           acceptor_registry.open (profile,
00646                                   orb_core
00647                                   ACE_ENV_ARG_PARAMETER);
00648           ACE_CHECK_RETURN (0);
00649           ++num;
00650         }
00651 
00652       ++slot;
00653     }
00654 
00655   // Return the number of acceptors registered.
00656   return num;
00657 }

PortableServer::IdAssignmentPolicy_ptr TAO_GOA::create_id_assignment_policy PortableServer::IdAssignmentPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 245 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_id_assignment_policy().

00248 {
00249   PortableServer::IdAssignmentPolicy_ptr policy =
00250     this->TAO_Regular_POA::create_id_assignment_policy (value
00251                                                 ACE_ENV_ARG_PARAMETER);
00252   ACE_CHECK_RETURN (policy);
00253   return policy;
00254 }

TAO_BEGIN_VERSIONED_NAMESPACE_DECL PortableServer::ObjectId * TAO_GOA::create_id_for_reference CORBA::Object_ptr  the_ref  )  throw ( CORBA::SystemException, PortableGroup::NotAGroupObject ) [virtual]
 

Definition at line 24 of file GOA.cpp.

References ACE_CHECK_RETURN, and ACE_ENV_ARG_PARAMETER.

00030 {
00031   // Get the RepositoryId from the Group reference so
00032   // we know what kind of reference to make.
00033   const char* repository_id = the_ref->_stubobj ()->type_id.in ();
00034 
00035   // Create a temporary object reference and then get the
00036   // ObjectId out of it.
00037   CORBA::Object_var obj_ref = this->create_reference (repository_id
00038                                                       ACE_ENV_ARG_PARAMETER);
00039   ACE_CHECK_RETURN (0);
00040 
00041   PortableServer::ObjectId_var obj_id =
00042     this->reference_to_id (obj_ref.in () ACE_ENV_ARG_PARAMETER);
00043   ACE_CHECK_RETURN (0);
00044 
00045   // Associate the object reference with the group reference.
00046   this->associate_group_with_ref (the_ref,
00047                                   obj_ref.in ()
00048                                   ACE_ENV_ARG_PARAMETER);
00049   ACE_CHECK_RETURN (0);
00050 
00051   return obj_id._retn ();
00052 }

PortableServer::IdUniquenessPolicy_ptr TAO_GOA::create_id_uniqueness_policy PortableServer::IdUniquenessPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 232 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_id_uniqueness_policy().

00235 {
00236   PortableServer::IdUniquenessPolicy_ptr policy =
00237     this->TAO_Regular_POA::create_id_uniqueness_policy (value
00238                                                 ACE_ENV_ARG_PARAMETER);
00239   ACE_CHECK_RETURN (policy);
00240   return policy;
00241 }

PortableServer::ImplicitActivationPolicy_ptr TAO_GOA::create_implicit_activation_policy PortableServer::ImplicitActivationPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 260 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_implicit_activation_policy().

00263 {
00264   PortableServer::ImplicitActivationPolicy_ptr policy =
00265     this->TAO_Regular_POA::create_implicit_activation_policy (value
00266                                                       ACE_ENV_ARG_PARAMETER);
00267   ACE_CHECK_RETURN (policy);
00268   return policy;
00269 }

PortableServer::LifespanPolicy_ptr TAO_GOA::create_lifespan_policy PortableServer::LifespanPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 220 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_lifespan_policy().

00223 {
00224   PortableServer::LifespanPolicy_ptr policy =
00225     this->TAO_Regular_POA::create_lifespan_policy (value
00226                                            ACE_ENV_ARG_PARAMETER);
00227   ACE_CHECK_RETURN (policy);
00228   return policy;
00229 }

PortableServer::POA_ptr TAO_GOA::create_POA const char *  adapter_name,
PortableServer::POAManager_ptr  poa_manager,
const CORBA::PolicyList policies
throw (CORBA::SystemException, PortableServer::POA::AdapterAlreadyExists, PortableServer::POA::InvalidPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 160 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_POA().

00167 {
00168   PortableServer::POA_ptr poa = this->TAO_Regular_POA::create_POA (adapter_name,
00169                                                            poa_manager,
00170                                                            policies
00171                                                            ACE_ENV_ARG_PARAMETER);
00172   ACE_CHECK_RETURN (poa);
00173   return poa;
00174 }

CORBA::Object_ptr TAO_GOA::create_reference const char *  intf  )  throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 451 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_reference().

00455 {
00456   CORBA::Object_ptr obj =
00457     this->TAO_Regular_POA::create_reference (intf
00458                                      ACE_ENV_ARG_PARAMETER);
00459   ACE_CHECK_RETURN (obj);
00460   return obj;
00461 }

CORBA::Object_ptr TAO_GOA::create_reference_with_id const PortableServer::ObjectId oid,
const char *  intf
throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 464 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_reference_with_id().

00468 {
00469   CORBA::Object_ptr obj =
00470     this->TAO_Regular_POA::create_reference_with_id (oid,
00471                                              intf
00472                                              ACE_ENV_ARG_PARAMETER);
00473   ACE_CHECK_RETURN (obj);
00474   return obj;
00475 }

PortableServer::RequestProcessingPolicy_ptr TAO_GOA::create_request_processing_policy PortableServer::RequestProcessingPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 285 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_request_processing_policy().

00288 {
00289   PortableServer::RequestProcessingPolicy_ptr policy =
00290     this->TAO_Regular_POA::create_request_processing_policy (value
00291                                                      ACE_ENV_ARG_PARAMETER);
00292   ACE_CHECK_RETURN (policy);
00293   return policy;
00294 }

PortableServer::ServantRetentionPolicy_ptr TAO_GOA::create_servant_retention_policy PortableServer::ServantRetentionPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 272 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_servant_retention_policy().

00275 {
00276   PortableServer::ServantRetentionPolicy_ptr policy =
00277     this->TAO_Regular_POA::create_servant_retention_policy (value
00278                                                     ACE_ENV_ARG_PARAMETER);
00279   ACE_CHECK_RETURN (policy);
00280   return policy;
00281 }

PortableServer::ThreadPolicy_ptr TAO_GOA::create_thread_policy PortableServer::ThreadPolicyValue  value  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 206 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::create_thread_policy().

00209 {
00210   PortableServer::ThreadPolicy_ptr policy =
00211     this->TAO_Regular_POA::create_thread_policy (value
00212                                          ACE_ENV_ARG_PARAMETER);
00213   ACE_CHECK_RETURN (policy);
00214   return policy;
00215 }

void TAO_GOA::deactivate_object const PortableServer::ObjectId oid  )  throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 439 of file GOA.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::deactivate_object().

00444 {
00445   this->TAO_Regular_POA::deactivate_object (oid
00446                                     ACE_ENV_ARG_PARAMETER);
00447   ACE_CHECK;
00448 }

void TAO_GOA::destroy CORBA::Boolean  etherealize_objects,
CORBA::Boolean  wait_for_completion
throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 191 of file GOA.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::destroy().

00195 {
00196   this->TAO_Regular_POA::destroy (etherealize_objects,
00197                           wait_for_completion
00198                           ACE_ENV_ARG_PARAMETER);
00199   ACE_CHECK;
00200 }

void TAO_GOA::disassociate_reference_with_id CORBA::Object_ptr  ref,
const PortableServer::ObjectId oid
throw ( CORBA::SystemException, PortableGroup::NotAGroupObject ) [virtual]
 

Definition at line 91 of file GOA.cpp.

00098 {
00099   ACE_UNUSED_ARG (ref);
00100   ACE_UNUSED_ARG (oid);
00101 }

int TAO_GOA::find_group_component const CORBA::Object_ptr  the_ref,
PortableGroup::TagGroupTaggedComponent &  group
[protected]
 

Definition at line 571 of file GOA.cpp.

References find_group_component_in_profile(), and TAO_MProfile::get_profile().

00573 {
00574   const TAO_MProfile& profiles = the_ref->_stubobj ()->base_profiles ();
00575   const TAO_Profile* profile;
00576   CORBA::ULong slot;
00577 
00578   // Iterate through the tagged profiles, and
00579   // create acceptors for the multicast ones.
00580   slot = 0;
00581   while (0 != (profile = profiles.get_profile (slot)))
00582     {
00583       if (this->find_group_component_in_profile (profile, group) == 0)
00584         return 0;
00585 
00586       ++slot;
00587     }
00588 
00589   // Not found.
00590   return -1;
00591 }

int TAO_GOA::find_group_component_in_profile const TAO_Profile profile,
PortableGroup::TagGroupTaggedComponent &  group
[protected]
 

Definition at line 594 of file GOA.cpp.

References IOP::TaggedComponent::component_data, TAO::unbounded_value_sequence< T >::get_buffer(), TAO_Tagged_Components::get_component(), TAO::unbounded_value_sequence< T >::length(), ACE_InputCDR::reset_byte_order(), IOP::TaggedComponent::tag, and TAO_Profile::tagged_components().

Referenced by find_group_component().

00596 {
00597   // Iterate through the tagged components looking for
00598   // group tag.
00599   const TAO_Tagged_Components& components = profile->tagged_components ();
00600 
00601   IOP::TaggedComponent tagged_component;
00602   tagged_component.tag = IOP::TAG_GROUP;
00603 
00604   // Try to find it.
00605   if (components.get_component (tagged_component) == 0)
00606     return -1;
00607 
00608   // Found it.
00609   const CORBA::Octet *buf =
00610     tagged_component.component_data.get_buffer ();
00611 
00612   TAO_InputCDR in_cdr (reinterpret_cast <const char*> (buf),
00613                        tagged_component.component_data.length ());
00614 
00615   // Extract the Byte Order.
00616   CORBA::Boolean byte_order;
00617   if ((in_cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0)
00618     return -1;
00619   in_cdr.reset_byte_order (static_cast <int> (byte_order));
00620 
00621   if ((in_cdr >> group) == 0)
00622     return -1;
00623 
00624   return 0;
00625 }

PortableServer::POA_ptr TAO_GOA::find_POA const char *  adapter_name,
CORBA::Boolean  activate_it
throw (CORBA::SystemException, PortableServer::POA::AdapterNonExistent)
 

Reimplemented from TAO_Root_POA.

Definition at line 177 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::find_POA().

00182 {
00183   PortableServer::POA_ptr poa = this->TAO_Regular_POA::find_POA (adapter_name,
00184                                                          activate_it
00185                                                          ACE_ENV_ARG_PARAMETER);
00186   ACE_CHECK_RETURN (poa);
00187   return poa;
00188 }

PortableServer::Servant TAO_GOA::get_servant  )  throw (CORBA::SystemException, PortableServer::POA::NoServant, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 385 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::get_servant().

00389 {
00390   PortableServer::Servant servant =
00391     this->TAO_Regular_POA::get_servant (ACE_ENV_SINGLE_ARG_PARAMETER);
00392   ACE_CHECK_RETURN (servant);
00393   return servant;
00394 }

PortableServer::ServantManager_ptr TAO_GOA::get_servant_manager  )  throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 363 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::get_servant_manager().

00366 {
00367   PortableServer::ServantManager_ptr servant_manager =
00368     this->TAO_Regular_POA::get_servant_manager (ACE_ENV_SINGLE_ARG_PARAMETER);
00369   ACE_CHECK_RETURN (servant_manager);
00370   return servant_manager;
00371 }

CORBA::OctetSeq * TAO_GOA::id  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 564 of file GOA.cpp.

References ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::id().

00566 {
00567   return this->TAO_Regular_POA::id (ACE_ENV_SINGLE_ARG_PARAMETER);
00568 }

CORBA::Object_ptr TAO_GOA::id_to_reference const PortableServer::ObjectId oid  )  throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 550 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::id_to_reference().

00555 {
00556   CORBA::Object_ptr obj =
00557     this->TAO_Regular_POA::id_to_reference (oid
00558                                     ACE_ENV_ARG_PARAMETER);
00559   ACE_CHECK_RETURN (obj);
00560   return obj;
00561 }

PortableServer::Servant TAO_GOA::id_to_servant const PortableServer::ObjectId oid  )  throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 536 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::id_to_servant().

00541 {
00542   PortableServer::Servant servant =
00543     this->TAO_Regular_POA::id_to_servant (oid
00544                                   ACE_ENV_ARG_PARAMETER);
00545   ACE_CHECK_RETURN (servant);
00546   return servant;
00547 }

int TAO_GOA::Initializer void   )  [static]
 

TAO_Root_POA * TAO_GOA::new_POA const String name,
PortableServer::POAManager_ptr  poa_manager,
const TAO_POA_Policy_Set policies,
TAO_Root_POA parent,
ACE_Lock lock,
TAO_SYNCH_MUTEX thread_lock,
TAO_ORB_Core orb_core,
TAO_Object_Adapter object_adapter
[protected, virtual]
 

Template method for creating new POA's of this type.

Reimplemented from TAO_Root_POA.

Definition at line 130 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and ACE_NEW_THROW_EX.

00139 {
00140   TAO_GOA *poa = 0;
00141 
00142   ACE_NEW_THROW_EX (poa,
00143                     TAO_GOA (name,
00144                              poa_manager,
00145                              policies,
00146                              parent,
00147                              lock,
00148                              thread_lock,
00149                              orb_core,
00150                              object_adapter
00151                              ACE_ENV_ARG_PARAMETER),
00152                     CORBA::NO_MEMORY ());
00153   ACE_CHECK_RETURN (0);
00154 
00155   return poa;
00156 }

PortableServer::ObjectId * TAO_GOA::reference_to_id CORBA::Object_ptr  reference  )  throw (CORBA::SystemException, PortableServer::POA::WrongAdapter, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 522 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::reference_to_id().

00527 {
00528   PortableServer::ObjectId *object_id =
00529     this->TAO_Regular_POA::reference_to_id (reference
00530                                     ACE_ENV_ARG_PARAMETER);
00531   ACE_CHECK_RETURN (object_id);
00532   return object_id;
00533 }

PortableGroup::IDs * TAO_GOA::reference_to_ids CORBA::Object_ptr  the_ref  )  throw ( CORBA::SystemException, PortableGroup::NotAGroupObject ) [virtual]
 

Definition at line 55 of file GOA.cpp.

00061 {
00062   ACE_UNUSED_ARG (the_ref);
00063 
00064   return 0;
00065 }

PortableServer::Servant TAO_GOA::reference_to_servant CORBA::Object_ptr  reference  )  throw (CORBA::SystemException, PortableServer::POA::ObjectNotActive, PortableServer::POA::WrongAdapter, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 507 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::reference_to_servant().

00513 {
00514   PortableServer::Servant servant =
00515     this->TAO_Regular_POA::reference_to_servant (reference
00516                                          ACE_ENV_ARG_PARAMETER);
00517   ACE_CHECK_RETURN (servant);
00518   return servant;
00519 }

PortableServer::ObjectId * TAO_GOA::servant_to_id PortableServer::Servant  p_servant  )  throw (CORBA::SystemException, PortableServer::POA::ServantNotActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 478 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::servant_to_id().

00483 {
00484   PortableServer::ObjectId *object_id =
00485     this->TAO_Regular_POA::servant_to_id (p_servant
00486                                   ACE_ENV_ARG_PARAMETER);
00487   ACE_CHECK_RETURN (object_id);
00488   return object_id;
00489 }

CORBA::Object_ptr TAO_GOA::servant_to_reference PortableServer::Servant  p_servant  )  throw (CORBA::SystemException, PortableServer::POA::ServantNotActive, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 492 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::servant_to_reference().

00497 {
00498   CORBA::Object_ptr obj =
00499     this->TAO_Regular_POA::servant_to_reference (p_servant
00500                                          ACE_ENV_ARG_PARAMETER);
00501   ACE_CHECK_RETURN (obj);
00502   return obj;
00503 }

void TAO_GOA::set_servant PortableServer::Servant  servant  )  throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 397 of file GOA.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::set_servant().

00401 {
00402   this->TAO_Regular_POA::set_servant (servant
00403                               ACE_ENV_ARG_PARAMETER);
00404   ACE_CHECK;
00405 }

void TAO_GOA::set_servant_manager PortableServer::ServantManager_ptr  imgr  )  throw (CORBA::SystemException, PortableServer::POA::WrongPolicy)
 

Reimplemented from TAO_Root_POA.

Definition at line 374 of file GOA.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::set_servant_manager().

00378 {
00379   this->TAO_Regular_POA::set_servant_manager (imgr
00380                                       ACE_ENV_ARG_PARAMETER);
00381   ACE_CHECK;
00382 }

void TAO_GOA::the_activator PortableServer::AdapterActivator_ptr  adapter_activator  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 353 of file GOA.cpp.

References ACE_CHECK, ACE_ENV_ARG_PARAMETER, and TAO_Root_POA::the_activator().

00356 {
00357   this->TAO_Regular_POA::the_activator (adapter_activator
00358                                 ACE_ENV_ARG_PARAMETER);
00359   ACE_CHECK;
00360 }

PortableServer::AdapterActivator_ptr TAO_GOA::the_activator  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 343 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::the_activator().

00345 {
00346   PortableServer::AdapterActivator_ptr activator =
00347     this->TAO_Regular_POA::the_activator (ACE_ENV_SINGLE_ARG_PARAMETER);
00348   ACE_CHECK_RETURN (activator);
00349   return activator;
00350 }

PortableServer::POAList * TAO_GOA::the_children  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 320 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::the_children().

00322 {
00323   PortableServer::POAList *children =
00324     this->TAO_Regular_POA::the_children (ACE_ENV_SINGLE_ARG_PARAMETER);
00325   ACE_CHECK_RETURN (children);
00326   return children;
00327 }

char * TAO_GOA::the_name  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 300 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::the_name().

00302 {
00303   char * name =
00304     this->TAO_Regular_POA::the_name (ACE_ENV_SINGLE_ARG_PARAMETER);
00305   ACE_CHECK_RETURN (name);
00306   return name;
00307 }

PortableServer::POA_ptr TAO_GOA::the_parent  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Regular_POA.

Definition at line 310 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Regular_POA::the_parent().

00312 {
00313   PortableServer::POA_ptr parent =
00314     this->TAO_Regular_POA::the_parent (ACE_ENV_SINGLE_ARG_PARAMETER);
00315   ACE_CHECK_RETURN (parent);
00316   return parent;
00317 }

PortableServer::POAManager_ptr TAO_GOA::the_POAManager  )  throw (CORBA::SystemException)
 

Reimplemented from TAO_Root_POA.

Definition at line 330 of file GOA.cpp.

References ACE_CHECK_RETURN, ACE_ENV_SINGLE_ARG_PARAMETER, and TAO_Root_POA::the_POAManager().

00332 {
00333   PortableServer::POAManager_ptr poa_manager =
00334     this->TAO_Regular_POA::the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
00335   ACE_CHECK_RETURN (poa_manager);
00336   return poa_manager;
00337 }


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 14:04:53 2006 for TAO_PortableGroup by doxygen 1.3.6