#include <PI_PolicyFactory.h>
Inheritance diagram for TAO_PI_PolicyFactory:
Public Member Functions | |
CORBA::Policy_ptr | create_policy (CORBA::PolicyType type, const CORBA::Any &value) throw (CORBA::SystemException, CORBA::PolicyError) |
Definition at line 34 of file PI_PolicyFactory.h.
|
Definition at line 15 of file PI_PolicyFactory.cpp. References ACE_CHECK_RETURN, ACE_NEW_THROW_EX, and ACE_THROW_RETURN.
00021 { 00022 if (type == PortableInterceptor::PROCESSING_MODE_POLICY_TYPE) 00023 { 00024 TAO_ProcessingModePolicy *processing_mode_policy = 0; 00025 PortableInterceptor::ProcessingMode policy_value; 00026 00027 if ((value >>= policy_value) == 0) 00028 { 00029 ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_VALUE), 00030 CORBA::Policy::_nil ()); 00031 } 00032 00033 ACE_NEW_THROW_EX (processing_mode_policy, 00034 TAO_ProcessingModePolicy (policy_value), 00035 CORBA::NO_MEMORY (TAO::VMCID, 00036 CORBA::COMPLETED_NO)); 00037 ACE_CHECK_RETURN (CORBA::Policy::_nil ()); 00038 00039 return processing_mode_policy; 00040 } 00041 00042 ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE), 00043 CORBA::Policy::_nil ()); 00044 } |