diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.cpp b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.cpp new file mode 100644 index 00000000000..ef3795e1fc2 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientPolicyFactory.cpp @@ -0,0 +1,28 @@ +// $Id$ + +#include "orbsvcs/FaultTolerance/FT_ClientPolicyFactory.h" +#include "orbsvcs/FaultTolerance/FT_ClientPolicy_i.h" +#include "orbsvcs/FT_CORBA_ORBC.h" +#include "tao/PolicyC.h" + +ACE_RCSID (FaultTolerance, + FT_ClientPolicyFactory, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +CORBA::Policy_ptr +TAO_FT_ClientPolicyFactory::create_policy ( + CORBA::PolicyType type, + const CORBA::Any &val) +{ + + if (type == FT::REQUEST_DURATION_POLICY) + return TAO_FT_Request_Duration_Policy::create (val); + else if (type == FT::HEARTBEAT_POLICY) + return TAO_FT_Heart_Beat_Policy::create (val); + + throw CORBA::PolicyError (CORBA::BAD_POLICY_TYPE); +} + +TAO_END_VERSIONED_NAMESPACE_DECL |