#include <Messaging_Policy_i.h>


Public Member Functions | |
| TAO_RelativeRoundtripTimeoutPolicy (const TimeBase::TimeT &relative_expiry) | |
| Constructor. | |
| TAO_RelativeRoundtripTimeoutPolicy (const TAO_RelativeRoundtripTimeoutPolicy &rhs) | |
| Copy constructor. | |
| virtual TAO_RelativeRoundtripTimeoutPolicy * | 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 |
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 38 of file Messaging_Policy_i.h.
| TAO_RelativeRoundtripTimeoutPolicy::TAO_RelativeRoundtripTimeoutPolicy | ( | const TimeBase::TimeT & | relative_expiry | ) |
Constructor.
Definition at line 22 of file Messaging_Policy_i.cpp.
: ::CORBA::Object () , ::CORBA::Policy () , Messaging::RelativeRoundtripTimeoutPolicy () , ::CORBA::LocalObject () , relative_expiry_ (relative_expiry) { }
| TAO_RelativeRoundtripTimeoutPolicy::TAO_RelativeRoundtripTimeoutPolicy | ( | const TAO_RelativeRoundtripTimeoutPolicy & | rhs | ) |
Copy constructor.
Definition at line 32 of file Messaging_Policy_i.cpp.
: ::CORBA::Object () , ::CORBA::Policy () , Messaging::RelativeRoundtripTimeoutPolicy () , ::CORBA::LocalObject () , relative_expiry_ (rhs.relative_expiry_) { }
| TAO_Cached_Policy_Type TAO_RelativeRoundtripTimeoutPolicy::_tao_cached_type | ( | void | ) | const [virtual] |
Definition at line 159 of file Messaging_Policy_i.cpp.
{
return TAO_CACHED_POLICY_RELATIVE_ROUNDTRIP_TIMEOUT;
}
| TAO_RelativeRoundtripTimeoutPolicy * TAO_RelativeRoundtripTimeoutPolicy::clone | ( | void | ) | const [virtual] |
Returns a copy of <this>.
Definition at line 130 of file Messaging_Policy_i.cpp.
{
TAO_RelativeRoundtripTimeoutPolicy *copy = 0;
ACE_NEW_RETURN (copy,
TAO_RelativeRoundtripTimeoutPolicy (*this),
0);
return copy;
}
| CORBA::Policy_ptr TAO_RelativeRoundtripTimeoutPolicy::copy | ( | void | ) | [virtual] |
Definition at line 140 of file Messaging_Policy_i.cpp.
{
// Future policy implementors: notice how the following code is
// exception safe!
TAO_RelativeRoundtripTimeoutPolicy* tmp = 0;
ACE_NEW_THROW_EX (tmp, TAO_RelativeRoundtripTimeoutPolicy (*this),
CORBA::NO_MEMORY (TAO::VMCID,
CORBA::COMPLETED_NO));
return tmp;
}
| CORBA::Policy_ptr TAO_RelativeRoundtripTimeoutPolicy::create | ( | const CORBA::Any & | val | ) | [static] |
Helper method for the implementation of CORBA::ORB::create_policy.
Definition at line 112 of file Messaging_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_RelativeRoundtripTimeoutPolicy *tmp = 0;
ACE_NEW_THROW_EX (tmp,
TAO_RelativeRoundtripTimeoutPolicy (value),
CORBA::NO_MEMORY (TAO::VMCID,
CORBA::COMPLETED_NO));
return tmp;
}
| void TAO_RelativeRoundtripTimeoutPolicy::destroy | ( | void | ) | [virtual] |
Definition at line 154 of file Messaging_Policy_i.cpp.
{
}
| void TAO_RelativeRoundtripTimeoutPolicy::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 55 of file Messaging_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_RELATIVE_ROUNDTRIP_TIMEOUT);
}
else
{
policy =
stub->get_cached_policy (
TAO_CACHED_POLICY_RELATIVE_ROUNDTRIP_TIMEOUT);
}
if (CORBA::is_nil (policy.in ()))
{
has_timeout = false;
return;
}
Messaging::RelativeRoundtripTimeoutPolicy_var p =
Messaging::RelativeRoundtripTimeoutPolicy::_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) - Request timeout is ")
ACE_TEXT ("%Q milliseconds\n"),
msecs));
}
}
catch (const ::CORBA::Exception&)
{
// Ignore all exceptions...
}
}
| CORBA::PolicyType TAO_RelativeRoundtripTimeoutPolicy::policy_type | ( | void | ) | [virtual] |
Definition at line 49 of file Messaging_Policy_i.cpp.
{
return Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE;
}
| TimeBase::TimeT TAO_RelativeRoundtripTimeoutPolicy::relative_expiry | ( | void | ) | [virtual] |
Definition at line 43 of file Messaging_Policy_i.cpp.
{
return this->relative_expiry_;
}
| void TAO_RelativeRoundtripTimeoutPolicy::set_time_value | ( | ACE_Time_Value & | time_value | ) |
Change the CORBA representation to the ACE representation.
Definition at line 165 of file Messaging_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) - Request timeout is ")
ACE_TEXT ("%Q milliseconds\n"),
msecs));
}
}
The attribute.
Definition at line 81 of file Messaging_Policy_i.h.
1.7.0