#include <Connection_Timeout_Policy_i.h>
Public Member Functions | |
TAO_ConnectionTimeoutPolicy (const TimeBase::TimeT &relative_expiry) | |
Constructor. | |
TAO_ConnectionTimeoutPolicy (const TAO_ConnectionTimeoutPolicy &rhs) | |
Copy constructor. | |
virtual TAO_ConnectionTimeoutPolicy * | clone (void) const |
Returns a copy of <this>. | |
virtual TimeBase::TimeT | relative_expiry (void) |
virtual CORBA::PolicyType | policy_type (void) |
virtual CORBA::Policy_ptr | copy (void) |
virtual void | destroy (void) |
void | set_time_value (ACE_Time_Value &time_value) |
Change the CORBA representation to the ACE representation. | |
virtual TAO_Cached_Policy_Type | _tao_cached_type (void) const |
Return the cached policy type for this policy. | |
Static Public Member Functions | |
static void | hook (TAO_ORB_Core *orb_core, TAO_Stub *stub, bool &has_timeout, ACE_Time_Value &time_value) |
static CORBA::Policy_ptr | create (const CORBA::Any &val) |
Private Attributes | |
TimeBase::TimeT | relative_expiry_ |
The attribute. |
Definition at line 45 of file Connection_Timeout_Policy_i.h.
TAO_ConnectionTimeoutPolicy::TAO_ConnectionTimeoutPolicy | ( | const TimeBase::TimeT & | relative_expiry | ) |
Constructor.
Definition at line 20 of file Connection_Timeout_Policy_i.cpp.
: ::CORBA::Object () , ::CORBA::Policy () , TAO::ConnectionTimeoutPolicy () , ::CORBA::LocalObject () , relative_expiry_ (relative_expiry) { }
TAO_ConnectionTimeoutPolicy::TAO_ConnectionTimeoutPolicy | ( | const TAO_ConnectionTimeoutPolicy & | rhs | ) |
Copy constructor.
Definition at line 30 of file Connection_Timeout_Policy_i.cpp.
: ::CORBA::Object () , ::CORBA::Policy () , TAO::ConnectionTimeoutPolicy () , ::CORBA::LocalObject () , relative_expiry_ (rhs.relative_expiry_) { }
TAO_Cached_Policy_Type TAO_ConnectionTimeoutPolicy::_tao_cached_type | ( | void | ) | const [virtual] |
Return the cached policy type for this policy.
Definition at line 157 of file Connection_Timeout_Policy_i.cpp.
{
return TAO_CACHED_POLICY_CONNECTION_TIMEOUT;
}
TAO_ConnectionTimeoutPolicy * TAO_ConnectionTimeoutPolicy::clone | ( | void | ) | const [virtual] |
Returns a copy of <this>.
Definition at line 128 of file Connection_Timeout_Policy_i.cpp.
{ TAO_ConnectionTimeoutPolicy *copy = 0; ACE_NEW_RETURN (copy, TAO_ConnectionTimeoutPolicy (*this), 0); return copy; }
CORBA::Policy_ptr TAO_ConnectionTimeoutPolicy::copy | ( | void | ) | [virtual] |
Definition at line 138 of file Connection_Timeout_Policy_i.cpp.
{ // Future policy implementors: notice how the following code is // exception safe! TAO_ConnectionTimeoutPolicy* tmp = 0; ACE_NEW_THROW_EX (tmp, TAO_ConnectionTimeoutPolicy (*this), CORBA::NO_MEMORY (TAO::VMCID, CORBA::COMPLETED_NO)); return tmp; }
CORBA::Policy_ptr TAO_ConnectionTimeoutPolicy::create | ( | const CORBA::Any & | val | ) | [static] |
Helper method for the implementation of CORBA::ORB::create_policy.
Definition at line 109 of file Connection_Timeout_Policy_i.cpp.
{ // Future policy implementors: notice how the following code is // exception safe! TimeBase::TimeT value; if ((val >>= value) == 0) throw ::CORBA::PolicyError (CORBA::BAD_POLICY_VALUE); TAO_ConnectionTimeoutPolicy *tmp = 0; ACE_NEW_THROW_EX (tmp, TAO_ConnectionTimeoutPolicy (value), CORBA::NO_MEMORY (TAO::VMCID, CORBA::COMPLETED_NO)); return tmp; }
void TAO_ConnectionTimeoutPolicy::destroy | ( | void | ) | [virtual] |
Definition at line 152 of file Connection_Timeout_Policy_i.cpp.
{ }
void TAO_ConnectionTimeoutPolicy::hook | ( | TAO_ORB_Core * | orb_core, | |
TAO_Stub * | stub, | |||
bool & | has_timeout, | |||
ACE_Time_Value & | time_value | |||
) | [static] |
Implement the timeout hook, this is set in the ORB_Core at initialization time.
Definition at line 53 of file Connection_Timeout_Policy_i.cpp.
{ try { CORBA::Policy_var policy = CORBA::Policy::_nil (); if (stub == 0) { policy = orb_core->get_cached_policy_including_current ( TAO_CACHED_POLICY_CONNECTION_TIMEOUT); } else { policy = stub->get_cached_policy (TAO_CACHED_POLICY_CONNECTION_TIMEOUT); } if (CORBA::is_nil (policy.in ())) { has_timeout = false; return; } TAO::ConnectionTimeoutPolicy_var p = TAO::ConnectionTimeoutPolicy::_narrow (policy.in ()); TimeBase::TimeT const t = p->relative_expiry (); TimeBase::TimeT const seconds = t / 10000000u; TimeBase::TimeT const microseconds = (t % 10000000u) / 10; time_value.set (ACE_Utils::truncate_cast<time_t> (seconds), ACE_Utils::truncate_cast<suseconds_t> (microseconds)); // Set the flag once all operations complete successfully has_timeout = true; if (TAO_debug_level > 0) { ACE_UINT64 msecs; const_cast<ACE_Time_Value const &> (time_value).msec (msecs); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TAO (%P|%t) - Connect timeout is ") ACE_TEXT ("%Q milliseconds\n"), msecs)); } } catch (const ::CORBA::Exception&) { // Ignore all exceptions... } }
CORBA::PolicyType TAO_ConnectionTimeoutPolicy::policy_type | ( | void | ) | [virtual] |
Definition at line 47 of file Connection_Timeout_Policy_i.cpp.
{
return TAO::CONNECTION_TIMEOUT_POLICY_TYPE;
}
TimeBase::TimeT TAO_ConnectionTimeoutPolicy::relative_expiry | ( | void | ) | [virtual] |
Definition at line 41 of file Connection_Timeout_Policy_i.cpp.
{ return this->relative_expiry_; }
void TAO_ConnectionTimeoutPolicy::set_time_value | ( | ACE_Time_Value & | time_value | ) |
Change the CORBA representation to the ACE representation.
Definition at line 163 of file Connection_Timeout_Policy_i.cpp.
{ TimeBase::TimeT const t = this->relative_expiry_; TimeBase::TimeT const seconds = t / 10000000u; TimeBase::TimeT const microseconds = (t % 10000000u) / 10; time_value.set (ACE_Utils::truncate_cast<time_t> (seconds), ACE_Utils::truncate_cast<suseconds_t> (microseconds)); if (TAO_debug_level > 0) { ACE_UINT64 msecs; const_cast<ACE_Time_Value const &> (time_value).msec (msecs); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TAO (%P|%t) - Connect timeout is ") ACE_TEXT ("%Q milliseconds\n"), msecs)); } }
The attribute.
Definition at line 88 of file Connection_Timeout_Policy_i.h.