Policy factory for all Messaging related policies. More...
#include <ZIOP_PolicyFactory.h>


Public Member Functions | |
| virtual CORBA::Policy_ptr | create_policy (CORBA::PolicyType type, const CORBA::Any &value) |
| virtual CORBA::Policy_ptr | _create_policy (CORBA::PolicyType type) |
Policy factory for all Messaging related policies.
Definition at line 36 of file ZIOP_PolicyFactory.h.
| CORBA::Policy_ptr TAO_ZIOP_PolicyFactory::_create_policy | ( | CORBA::PolicyType | type | ) | [virtual] |
Definition at line 109 of file ZIOP_PolicyFactory.cpp.
{
CORBA::Policy_ptr policy = CORBA::Policy_ptr ();
switch (type)
{
case ZIOP::COMPRESSION_ENABLING_POLICY_ID:
{
ACE_NEW_THROW_EX (policy,
TAO::CompressionEnablingPolicy,
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
return policy;
}
case ZIOP::COMPRESSOR_ID_LEVEL_LIST_POLICY_ID:
{
ACE_NEW_THROW_EX (policy,
TAO::CompressorIdLevelListPolicy,
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
return policy;
}
}
throw ::CORBA::PolicyError (CORBA::BAD_POLICY_TYPE);
}
| CORBA::Policy_ptr TAO_ZIOP_PolicyFactory::create_policy | ( | CORBA::PolicyType | type, | |
| const CORBA::Any & | value | |||
| ) | [virtual] |
Definition at line 15 of file ZIOP_PolicyFactory.cpp.
{
CORBA::Policy_ptr policy = CORBA::Policy::_nil ();
switch (type)
{
case ZIOP::COMPRESSION_ENABLING_POLICY_ID:
{
::CORBA::Boolean val;
// Extract the value from the any.
if (!(value >>= CORBA::Any::to_boolean (val)))
{
throw CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
}
ACE_NEW_THROW_EX (policy,
TAO::CompressionEnablingPolicy (val),
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
return policy;
}
case ZIOP::COMPRESSOR_ID_LEVEL_LIST_POLICY_ID :
{
::Compression::CompressorIdLevelList* val = 0;
// Extract the value from the any.
if (!(value >>= val))
{
throw CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
}
ACE_NEW_THROW_EX (policy,
TAO::CompressorIdLevelListPolicy (*val),
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
return policy;
}
case ZIOP::COMPRESSION_LOW_VALUE_POLICY_ID:
{
::CORBA::ULong val;
// Extract the value from the any.
if (!(value >>= val))
{
throw CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
}
ACE_NEW_THROW_EX (policy,
TAO::CompressionLowValuePolicy (val),
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
return policy;
}
case ZIOP::COMPRESSION_MIN_RATIO_POLICY_ID:
{
::Compression::CompressionRatio val;
// Extract the value from the any.
if (!(value >>= val))
{
throw CORBA::PolicyError (CORBA::BAD_POLICY_VALUE);
}
ACE_NEW_THROW_EX (policy,
TAO::CompressionMinRatioPolicy (val),
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
return policy;
}
}
throw CORBA::PolicyError (CORBA::BAD_POLICY_TYPE);
}
1.7.0