summaryrefslogtreecommitdiff
path: root/TAO/tao/RTPortableServer/RT_POA.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/RTPortableServer/RT_POA.cpp')
-rw-r--r--TAO/tao/RTPortableServer/RT_POA.cpp954
1 files changed, 0 insertions, 954 deletions
diff --git a/TAO/tao/RTPortableServer/RT_POA.cpp b/TAO/tao/RTPortableServer/RT_POA.cpp
deleted file mode 100644
index 43dd02f08cb..00000000000
--- a/TAO/tao/RTPortableServer/RT_POA.cpp
+++ /dev/null
@@ -1,954 +0,0 @@
-// @(#) $Id$
-
-#include "RT_POA.h"
-
-#if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0
-
-#include "RT_Acceptor_Filters.h"
-
-#include "tao/ORB_Core.h"
-#include "tao/ORB.h"
-#include "tao/Server_Strategy_Factory.h"
-#include "tao/Environment.h"
-#include "tao/Exception.h"
-#include "tao/Stub.h"
-#include "tao/Policy_Manager.h"
-#include "tao/debug.h"
-#include "tao/RTCORBA/Thread_Pool.h"
-#include "tao/Thread_Lane_Resources.h"
-#include "tao/Acceptor_Registry.h"
-#include "tao/Thread_Lane_Resources.h"
-#include "tao/Thread_Lane_Resources_Manager.h"
-
-#include "tao/RTCORBA/RT_Policy_i.h"
-
-#include "tao/PortableServer/Default_Acceptor_Filter.h"
-#include "tao/RTPortableServer/RT_Policy_Validator.h"
-
-#include "ace/Auto_Ptr.h"
-
-#if !defined (__ACE_INLINE__)
-# include "RT_POA.i"
-#endif /* ! __ACE_INLINE__ */
-
-ACE_RCSID (RTPortableServer,
- RT_POA,
- "$Id$")
-
-TAO_RT_POA::TAO_RT_POA (const TAO_Root_POA::String &name,
- TAO_POA_Manager &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
- ACE_ENV_ARG_DECL)
- : TAO_Regular_POA (name,
- poa_manager,
- policies,
- parent,
- lock,
- thread_lock,
- orb_core,
- object_adapter
- ACE_ENV_ARG_PARAMETER),
- thread_pool_ (0)
-{
- ACE_CHECK;
-
- // Parse the RT policies and update our policy cache.
- this->parse_rt_policies (this->policies ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-TAO_RT_POA::~TAO_RT_POA (void)
-{
-}
-
-TAO_Root_POA *
-TAO_RT_POA::new_POA (const String &name,
- TAO_POA_Manager &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
- ACE_ENV_ARG_DECL)
-{
- TAO_RT_POA *poa;
-
- ACE_NEW_THROW_EX (poa,
- TAO_RT_POA (name,
- poa_manager,
- policies,
- parent,
- lock,
- thread_lock,
- orb_core,
- object_adapter
- ACE_ENV_ARG_PARAMETER),
- CORBA::NO_MEMORY ());
- ACE_CHECK_RETURN (0);
-
- return poa;
-}
-
-void
-TAO_RT_POA::parse_rt_policies (TAO_POA_Policy_Set &policies
- ACE_ENV_ARG_DECL)
-{
- {
- CORBA::Policy_var policy =
- policies.get_cached_policy (TAO_CACHED_POLICY_PRIORITY_MODEL
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- RTCORBA::PriorityModelPolicy_var priority_model =
- RTCORBA::PriorityModelPolicy::_narrow (policy.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (!CORBA::is_nil (priority_model.in ()))
- {
- RTCORBA::PriorityModel rt_priority_model =
- priority_model->priority_model (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- this->cached_policies_.priority_model (
- TAO::Portable_Server::Cached_Policies::PriorityModel (rt_priority_model));
-
- RTCORBA::Priority priority =
- priority_model->server_priority (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- this->cached_policies_.server_priority (priority);
- }
- }
-
- this->thread_pool_ =
- TAO_POA_RT_Policy_Validator::extract_thread_pool (this->orb_core_,
- policies.policies ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-void
-TAO_RT_POA::validate_priority (RTCORBA::Priority priority
- ACE_ENV_ARG_DECL)
-{
- if (priority < RTCORBA::minPriority
- // The line below will always be false unless the value of
- // RTCORBA::maxPriority, which is now assigned the value of
- // 32767, is changed in RTCORBA.pidl.
-// || priority > RTCORBA::maxPriority
- )
- {
- ACE_THROW (CORBA::BAD_PARAM ());
- }
-
- // If this POA is using a thread pool with lanes, make sure the
- // priority matches one of the thread lanes. Note that in this
- // case, bands do not matter since matching the lanes priority is a
- // stricter condition than meeting the band ranges. In addition,
- // when the POA was created, the bands had to match the lanes.
- if (this->thread_pool_ != 0 &&
- this->thread_pool_->with_lanes ())
- {
- TAO_Thread_Lane **lanes =
- this->thread_pool_->lanes ();
-
- for (CORBA::ULong i = 0;
- i != this->thread_pool_->number_of_lanes ();
- ++i)
- {
- if (lanes[i]->lane_priority () == priority)
- return;
- }
-
- ACE_THROW (CORBA::BAD_PARAM ());
- }
- else
- // Else we are dealing with a thread pool without lanes.
- {
- // Check if we have bands.
- CORBA::Policy_var bands =
- this->policies ().get_cached_policy (
- TAO_CACHED_POLICY_RT_PRIORITY_BANDED_CONNECTION
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- RTCORBA::PriorityBandedConnectionPolicy_var priority_bands
- = RTCORBA::PriorityBandedConnectionPolicy::_narrow (bands.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- TAO_PriorityBandedConnectionPolicy *priority_bands_i =
- dynamic_cast <TAO_PriorityBandedConnectionPolicy *>
- (priority_bands.in ());
-
- if (priority_bands_i)
- {
- // If we do have bands, make sure that the priority is
- // matching one of the bands.
- RTCORBA::PriorityBands &bands =
- priority_bands_i->priority_bands_rep ();
-
- for (CORBA::ULong i = 0;
- i < bands.length ();
- ++i)
- {
- if (bands[i].low <= priority &&
- bands[i].high >= priority)
- return;
- }
-
- ACE_THROW (CORBA::BAD_PARAM ());
- }
- }
-}
-
-void
-TAO_RT_POA::validate_policies (ACE_ENV_SINGLE_ARG_DECL)
-{
- // For each of the above operations, if the POA supports the
- // IMPLICIT_ACTIVATION option for the ImplicitActivationPolicy then
- // the ORB shall raise a WrongPolicy user exception. This relieves
- // an ORB implementation of the need to retrieve the target object's
- // priority from "somewhere" when a request arrives for an inactive
- // object.
- if (this->cached_policies_.implicit_activation () ==
- PortableServer::IMPLICIT_ACTIVATION)
- {
- ACE_THROW (PortableServer::POA::WrongPolicy ());
- }
-
- // For each of the above operations, if the POA does not support the
- // SERVER_DECLARED option for the PriorityModelPolicy then the ORB
- // shall raise a WrongPolicy user exception.
- if (this->cached_policies_.priority_model () !=
- TAO::Portable_Server::Cached_Policies::SERVER_DECLARED)
- {
- ACE_THROW (PortableServer::POA::WrongPolicy ());
- }
-
- // In all other respects the semantics of the corresponding
- // (i.e. without the name extensions "_with_priority" and
- // "_and_priority") PortableServer::POA operations shall be
- // observed.
-}
-
-TAO_Stub *
-TAO_RT_POA::key_to_stub_i (const TAO::ObjectKey &object_key,
- const char *type_id,
- CORBA::Short priority
- ACE_ENV_ARG_DECL)
-{
- // Client exposed policies.
- CORBA::PolicyList_var client_exposed_policies =
- this->client_exposed_policies (priority
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- // Server protocol policy.
- CORBA::Policy_var protocol =
- this->policies ().get_cached_policy (TAO_CACHED_POLICY_RT_SERVER_PROTOCOL
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- RTCORBA::ServerProtocolPolicy_var server_protocol_policy =
- RTCORBA::ServerProtocolPolicy::_narrow (protocol.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- TAO_ServerProtocolPolicy *server_protocol =
- dynamic_cast <TAO_ServerProtocolPolicy *> (server_protocol_policy.in ());
-
- // Filter for server protocol.
- TAO_Server_Protocol_Acceptor_Filter filter (server_protocol->protocols_rep ());
-
- // If this POA is using the default thread pool or a thread pool
- // without lanes, create the IOR with the acceptors in the thread
- // pool.
- if (this->thread_pool_ == 0 ||
- !this->thread_pool_->with_lanes ())
- {
- TAO_Acceptor_Registry *acceptor_registry = 0;
-
- if (this->thread_pool_ == 0)
- {
- TAO_Thread_Lane_Resources_Manager &thread_lane_resources_manager =
- this->orb_core_.thread_lane_resources_manager ();
-
- TAO_Thread_Lane_Resources &resources =
- thread_lane_resources_manager.default_lane_resources ();
-
- acceptor_registry =
- &resources.acceptor_registry ();
- }
- else
- {
- TAO_Thread_Lane **lanes =
- this->thread_pool_->lanes ();
-
- TAO_Thread_Lane_Resources &resources =
- lanes[0]->resources ();
-
- acceptor_registry =
- &resources.acceptor_registry ();
- }
-
- return
- this->TAO_Regular_POA::create_stub_object (object_key,
- type_id,
- client_exposed_policies._retn (),
- &filter,
- *acceptor_registry
- ACE_ENV_ARG_PARAMETER);
- }
-
- // If this POA has the SERVER_DECLARED policy, create the IOR with
- // the acceptors in the only thread lane that matches the priority
- // of the object.
- if (this->cached_policies_.priority_model () ==
- TAO::Portable_Server::Cached_Policies::SERVER_DECLARED)
- {
- TAO_Thread_Lane **lanes =
- this->thread_pool_->lanes ();
-
- for (CORBA::ULong i = 0;
- i != this->thread_pool_->number_of_lanes ();
- ++i)
- {
- if (lanes[i]->lane_priority () == priority)
- return this->TAO_Regular_POA::create_stub_object (object_key,
- type_id,
- client_exposed_policies._retn (),
- &filter,
- lanes[i]->resources ().acceptor_registry ()
- ACE_ENV_ARG_PARAMETER);
- }
-
- ACE_ASSERT (0);
- }
-
- // If this POA has the CLIENT_PROPAGATED policy, create the IOR with
- // the acceptors in the thread lanes that matches the bands in this
- // POA. If there are no bands, all the thread lanes are used.
- CORBA::Policy_var bands =
- this->policies ().get_cached_policy (
- TAO_CACHED_POLICY_RT_PRIORITY_BANDED_CONNECTION
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- RTCORBA::PriorityBandedConnectionPolicy_var priority_bands
- = RTCORBA::PriorityBandedConnectionPolicy::_narrow (bands.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- TAO_PriorityBandedConnectionPolicy *priority_bands_i =
- dynamic_cast <TAO_PriorityBandedConnectionPolicy *> (priority_bands.in ());
-
- return this->create_stub_object (object_key,
- type_id,
- client_exposed_policies._retn (),
- &filter,
- priority_bands_i
- ACE_ENV_ARG_PARAMETER);
-}
-
-TAO_Stub *
-TAO_RT_POA::create_stub_object (const TAO::ObjectKey &object_key,
- const char *type_id,
- CORBA::PolicyList *policy_list,
- TAO_Acceptor_Filter *filter,
- TAO_PriorityBandedConnectionPolicy *priority_bands
- ACE_ENV_ARG_DECL)
-{
- int error = 0;
-
- // Count the number of endpoints.
- size_t profile_count =
- this->endpoint_count ();
-
- // Create a profile container and have acceptor registries populate
- // it with profiles as appropriate.
- TAO_MProfile mprofile (0);
-
- // Allocate space for storing the profiles. There can never be more
- // profiles than there are endpoints. In some cases, there can be
- // less profiles than endpoints.
- int result =
- mprofile.set (static_cast <CORBA::ULong> (profile_count));
- if (result == -1)
- error = 1;
-
- TAO_Thread_Lane **lanes =
- this->thread_pool_->lanes ();
-
- // Leave it to the filter to decide which acceptors/in which order
- // go into the mprofile.
- for (CORBA::ULong i = 0;
- i != this->thread_pool_->number_of_lanes () &&
- !error;
- ++i)
- {
- if (this->lane_required (lanes[i],
- priority_bands))
- {
- TAO_Acceptor_Registry &acceptor_registry =
- lanes[i]->resources ().acceptor_registry ();
-
- result =
- filter->fill_profile (object_key,
- mprofile,
- acceptor_registry.begin (),
- acceptor_registry.end (),
- lanes[i]->lane_priority ());
- if (result == -1)
- error = 1;
- }
- }
-
- if (!error)
- result = filter->encode_endpoints (mprofile);
- if (result == -1)
- error = 1;
-
- if (error)
- ACE_THROW_RETURN (CORBA::INTERNAL (
- CORBA::SystemException::_tao_minor_code (
- TAO_MPROFILE_CREATION_ERROR,
- 0),
- CORBA::COMPLETED_NO),
- 0);
-
- // Make sure we have at least one profile. <mp> may end up being
- // empty if none of the acceptor endpoints have the right priority
- // for this object, for example.
- if (mprofile.profile_count () == 0)
- ACE_THROW_RETURN (CORBA::BAD_PARAM (
- CORBA::SystemException::_tao_minor_code (
- TAO_MPROFILE_CREATION_ERROR,
- 0),
- CORBA::COMPLETED_NO),
- 0);
-
- return
- this->orb_core_.create_stub_object (mprofile,
- type_id,
- policy_list
- ACE_ENV_ARG_PARAMETER);
-}
-
-size_t
-TAO_RT_POA::endpoint_count (void)
-{
- size_t profile_count = 0;
-
- TAO_Thread_Lane **lanes =
- this->thread_pool_->lanes ();
-
- for (CORBA::ULong i = 0;
- i != this->thread_pool_->number_of_lanes ();
- ++i)
- profile_count +=
- lanes[i]->resources ().acceptor_registry ().endpoint_count ();
-
- return profile_count;
-}
-
-int
-TAO_RT_POA::lane_required (TAO_Thread_Lane *lane,
- TAO_PriorityBandedConnectionPolicy *priority_bands)
-{
- if (priority_bands == 0)
- return 1;
-
- RTCORBA::PriorityBands &bands =
- priority_bands->priority_bands_rep ();
-
- for (CORBA::ULong i = 0;
- i < bands.length ();
- ++i)
- {
- if (bands[i].low <= lane->lane_priority () &&
- bands[i].high >= lane->lane_priority ())
- return 1;
- }
-
- return 0;
-}
-
-CORBA::PolicyList *
-TAO_RT_POA::client_exposed_policies (CORBA::Short object_priority
- ACE_ENV_ARG_DECL)
-{
- CORBA::PolicyList *client_exposed_policies = 0;
- ACE_NEW_THROW_EX (client_exposed_policies,
- CORBA::PolicyList (),
- CORBA::NO_MEMORY (TAO::VMCID,
- CORBA::COMPLETED_NO));
- ACE_CHECK_RETURN (0);
-
- CORBA::PolicyList_var safe_client_exposed_policies = client_exposed_policies;
-
- // Add in all of the client exposed policies.
- this->policies_.add_client_exposed_fixed_policies (client_exposed_policies
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- // Check if the priority model policy has been set, and if so, let
- // the client know about it.
- CORBA::Short poa_priority =
- this->cached_policies_.server_priority ();
-
- if (poa_priority != TAO_INVALID_PRIORITY)
- {
- TAO::Portable_Server::Cached_Policies::PriorityModel priority_model =
- this->cached_policies_.priority_model ();
-
- // If the priority model is client propagated, let the client
- // about the default server priority (the POA priority). If
- // the priority model is server declared, tell the client the
- // servant's priority.
- CORBA::Short priority;
- if (priority_model == TAO::Portable_Server::Cached_Policies::CLIENT_PROPAGATED)
- priority = poa_priority;
- else
- priority = object_priority;
-
- const CORBA::ULong current_length =
- client_exposed_policies->length ();
- client_exposed_policies->length (current_length + 1);
-
- TAO_PriorityModelPolicy *priority_model_policy;
- ACE_NEW_THROW_EX (priority_model_policy,
- TAO_PriorityModelPolicy (RTCORBA::PriorityModel (priority_model),
- priority),
- CORBA::NO_MEMORY (TAO::VMCID,
- CORBA::COMPLETED_NO));
- ACE_CHECK_RETURN (0);
-
- (*client_exposed_policies)[current_length] = priority_model_policy;
- }
-
- return safe_client_exposed_policies._retn ();
-}
-
-
-// Standard POA interfaces
-PortableServer::POA_ptr
-TAO_RT_POA::create_POA (const char *adapter_name,
- PortableServer::POAManager_ptr poa_manager,
- const CORBA::PolicyList &policies
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::AdapterAlreadyExists,
- PortableServer::POA::InvalidPolicy))
-{
- PortableServer::POA_ptr poa = this->TAO_Regular_POA::create_POA (adapter_name,
- poa_manager,
- policies
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (poa);
- return poa;
-}
-
-PortableServer::POA_ptr
-TAO_RT_POA::find_POA (const char *adapter_name,
- CORBA::Boolean activate_it
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::AdapterNonExistent))
-{
- PortableServer::POA_ptr poa = this->TAO_Regular_POA::find_POA (adapter_name,
- activate_it
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (poa);
- return poa;
-}
-
-void
-TAO_RT_POA::destroy (CORBA::Boolean etherealize_objects,
- CORBA::Boolean wait_for_completion
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- this->TAO_Regular_POA::destroy (etherealize_objects,
- wait_for_completion
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-
-#if (TAO_HAS_MINIMUM_POA == 0)
-
-PortableServer::ThreadPolicy_ptr
-TAO_RT_POA::create_thread_policy (PortableServer::ThreadPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::ThreadPolicy_ptr policy =
- this->TAO_Regular_POA::create_thread_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-#endif /* TAO_HAS_MINIMUM_POA == 0 */
-
-PortableServer::LifespanPolicy_ptr
-TAO_RT_POA::create_lifespan_policy (PortableServer::LifespanPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::LifespanPolicy_ptr policy =
- this->TAO_Regular_POA::create_lifespan_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-PortableServer::IdUniquenessPolicy_ptr
-TAO_RT_POA::create_id_uniqueness_policy (PortableServer::IdUniquenessPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::IdUniquenessPolicy_ptr policy =
- this->TAO_Regular_POA::create_id_uniqueness_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-
-PortableServer::IdAssignmentPolicy_ptr
-TAO_RT_POA::create_id_assignment_policy (PortableServer::IdAssignmentPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::IdAssignmentPolicy_ptr policy =
- this->TAO_Regular_POA::create_id_assignment_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-
-#if (TAO_HAS_MINIMUM_POA == 0)
-
-PortableServer::ImplicitActivationPolicy_ptr
-TAO_RT_POA::create_implicit_activation_policy (PortableServer::ImplicitActivationPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::ImplicitActivationPolicy_ptr policy =
- this->TAO_Regular_POA::create_implicit_activation_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-PortableServer::ServantRetentionPolicy_ptr
-TAO_RT_POA::create_servant_retention_policy (PortableServer::ServantRetentionPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::ServantRetentionPolicy_ptr policy =
- this->TAO_Regular_POA::create_servant_retention_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-
-PortableServer::RequestProcessingPolicy_ptr
-TAO_RT_POA::create_request_processing_policy (PortableServer::RequestProcessingPolicyValue value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::RequestProcessingPolicy_ptr policy =
- this->TAO_Regular_POA::create_request_processing_policy (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (policy);
- return policy;
-}
-
-
-#endif /* TAO_HAS_MINIMUM_POA == 0 */
-
-char *
-TAO_RT_POA::the_name (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- char * name =
- this->TAO_Regular_POA::the_name (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (name);
- return name;
-}
-
-PortableServer::POA_ptr
-TAO_RT_POA::the_parent (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::POA_ptr parent =
- this->TAO_Regular_POA::the_parent (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (parent);
- return parent;
-}
-
-PortableServer::POAList *
-TAO_RT_POA::the_children (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::POAList *children =
- this->TAO_Regular_POA::the_children (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (children);
- return children;
-}
-
-PortableServer::POAManager_ptr
-TAO_RT_POA::the_POAManager (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::POAManager_ptr poa_manager =
- this->TAO_Regular_POA::the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (poa_manager);
- return poa_manager;
-}
-
-
-#if (TAO_HAS_MINIMUM_POA == 0)
-
-PortableServer::AdapterActivator_ptr
-TAO_RT_POA::the_activator (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- PortableServer::AdapterActivator_ptr activator =
- this->TAO_Regular_POA::the_activator (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (activator);
- return activator;
-}
-
-void
-TAO_RT_POA::the_activator (PortableServer::AdapterActivator_ptr adapter_activator
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- this->TAO_Regular_POA::the_activator (adapter_activator
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-PortableServer::ServantManager_ptr
-TAO_RT_POA::get_servant_manager (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::ServantManager_ptr servant_manager =
- this->TAO_Regular_POA::get_servant_manager (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (servant_manager);
- return servant_manager;
-}
-
-void
-TAO_RT_POA::set_servant_manager (PortableServer::ServantManager_ptr imgr
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::WrongPolicy))
-{
- this->TAO_Regular_POA::set_servant_manager (imgr
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-PortableServer::Servant
-TAO_RT_POA::get_servant (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::NoServant,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::Servant servant =
- this->TAO_Regular_POA::get_servant (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (servant);
- return servant;
-}
-
-void
-TAO_RT_POA::set_servant (PortableServer::Servant servant
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::WrongPolicy))
-{
- this->TAO_Regular_POA::set_servant (servant
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-#endif /* TAO_HAS_MINIMUM_POA == 0 */
-
-PortableServer::ObjectId *
-TAO_RT_POA::activate_object (PortableServer::Servant p_servant
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ServantAlreadyActive,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::ObjectId *object_id =
- this->TAO_Regular_POA::activate_object (p_servant
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (object_id);
- return object_id;
-}
-
-void
-TAO_RT_POA::activate_object_with_id (const PortableServer::ObjectId &id,
- PortableServer::Servant p_servant
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ServantAlreadyActive,
- PortableServer::POA::ObjectAlreadyActive,
- PortableServer::POA::WrongPolicy))
-{
- this->TAO_Regular_POA::activate_object_with_id (id,
- p_servant
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-void
-TAO_RT_POA::deactivate_object (const PortableServer::ObjectId &oid
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ObjectNotActive,
- PortableServer::POA::WrongPolicy))
-{
- this->TAO_Regular_POA::deactivate_object (oid
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-CORBA::Object_ptr
-TAO_RT_POA::create_reference (const char *intf
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::WrongPolicy))
-{
- CORBA::Object_ptr obj =
- this->TAO_Regular_POA::create_reference (intf
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (obj);
- return obj;
-}
-
-CORBA::Object_ptr
-TAO_RT_POA::create_reference_with_id (const PortableServer::ObjectId &oid,
- const char *intf
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- CORBA::Object_ptr obj =
- this->TAO_Regular_POA::create_reference_with_id (oid,
- intf
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (obj);
- return obj;
-}
-
-PortableServer::ObjectId *
-TAO_RT_POA::servant_to_id (PortableServer::Servant p_servant
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ServantNotActive,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::ObjectId *object_id =
- this->TAO_Regular_POA::servant_to_id (p_servant
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (object_id);
- return object_id;
-}
-
-CORBA::Object_ptr
-TAO_RT_POA::servant_to_reference (PortableServer::Servant p_servant
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ServantNotActive,
- PortableServer::POA::WrongPolicy))
-{
- CORBA::Object_ptr obj =
- this->TAO_Regular_POA::servant_to_reference (p_servant
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (obj);
- return obj;
-}
-
-
-PortableServer::Servant
-TAO_RT_POA::reference_to_servant (CORBA::Object_ptr reference
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ObjectNotActive,
- PortableServer::POA::WrongAdapter,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::Servant servant =
- this->TAO_Regular_POA::reference_to_servant (reference
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (servant);
- return servant;
-}
-
-PortableServer::ObjectId *
-TAO_RT_POA::reference_to_id (CORBA::Object_ptr reference
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::WrongAdapter,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::ObjectId *object_id =
- this->TAO_Regular_POA::reference_to_id (reference
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (object_id);
- return object_id;
-}
-
-PortableServer::Servant
-TAO_RT_POA::id_to_servant (const PortableServer::ObjectId &oid
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ObjectNotActive,
- PortableServer::POA::WrongPolicy))
-{
- PortableServer::Servant servant =
- this->TAO_Regular_POA::id_to_servant (oid
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (servant);
- return servant;
-}
-
-CORBA::Object_ptr
-TAO_RT_POA::id_to_reference (const PortableServer::ObjectId &oid
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableServer::POA::ObjectNotActive,
- PortableServer::POA::WrongPolicy))
-{
- CORBA::Object_ptr obj =
- this->TAO_Regular_POA::id_to_reference (oid
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (obj);
- return obj;
-}
-
-CORBA::OctetSeq *
-TAO_RT_POA::id (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return this->TAO_Regular_POA::id (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-#endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */