Réduire
Brouillon
0
21/05/2013
0

Orbix - Setter un timeout au niveau du client pour des temps timeout inférieurs à 3min35

Mots-clés:
CORBA

// timeout en minutes
if (timeout > 3)
{
 printf("Timeout overflow - works only on 64 bits machines")
 timeout = 0;
}
if (timeout > 0)
{
 TimeBase::TimeT convertedTimeout = timeout * 60L * 10000000L; // timeout converted in minutes
 printf("Timeout in 100 nanoseconds: %d\n", convertedTimeout);
 CORBA::Any requestTimeout;
 requestTimeout <<= convertedTimeout;
 CORBA::PolicyList policies;
 policies.length(1);
 policies[0] = orbProxy->getORB()->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE, requestTimeout);
 CORBA::PolicyManager_var policyManager = NULL;
 CORBA::Object_var ref = orbProxy->getORB()->resolve_initial_references("ORBPolicyManager");
 policyManager = CORBA::PolicyManager::_narrow(ref.in());
 policyManager->set_policy_overrides(policies, CORBA::ADD_OVERRIDE);
}