diff options
Diffstat (limited to 'TAO/tao/RTCORBA/Multi_Priority_Mapping.cpp')
-rw-r--r-- | TAO/tao/RTCORBA/Multi_Priority_Mapping.cpp | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/TAO/tao/RTCORBA/Multi_Priority_Mapping.cpp b/TAO/tao/RTCORBA/Multi_Priority_Mapping.cpp index 2704acc9628..b53c0995b31 100644 --- a/TAO/tao/RTCORBA/Multi_Priority_Mapping.cpp +++ b/TAO/tao/RTCORBA/Multi_Priority_Mapping.cpp @@ -1,5 +1,4 @@ // $Id$ -// Multi_Priority_Mapping.cpp,v 1.0 #include "tao/orbconf.h" @@ -14,20 +13,22 @@ ACE_RCSID (RTCORBA, Multi_Priority_Mapping, "$Id$") -TAO_Multi_Priority_Mapping::TAO_Multi_Priority_Mapping (int base_native_priority, - int base_corba_priority, - int priority_spacing, - int priorities_contiguous, - int policy) +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_Multi_Priority_Mapping::TAO_Multi_Priority_Mapping ( + int base_native_priority, + int base_corba_priority, + int priority_spacing, + int priorities_contiguous, + int policy) : base_native_priority_ (base_native_priority) , base_corba_priority_ (base_corba_priority) , priority_spacing_ (priority_spacing) , priorities_contiguous_(priorities_contiguous) , policy_ (policy) + , min_ (ACE_Sched_Params::priority_min (this->policy_)) + , max_ (ACE_Sched_Params::priority_max (this->policy_)) { - this->min_ = ACE_Sched_Params::priority_min (this->policy_); - this->max_ = ACE_Sched_Params::priority_max (this->policy_); - if ( this->min_ < this->max_ ) { if (base_native_priority_ < this->min_) @@ -91,7 +92,7 @@ TAO_Multi_Priority_Mapping::to_native (RTCORBA::Priority corba_priority, if (corba_priority == base_corba_priority_) { // If this is the highest priority endpoint, then just give it the highest priority corba base priority - native_priority = base_native_priority_; + native_priority = static_cast<RTCORBA::NativePriority> (base_native_priority_); } else { @@ -99,11 +100,13 @@ TAO_Multi_Priority_Mapping::to_native (RTCORBA::Priority corba_priority, { if ( this->min_ < this->max_ ) { - native_priority = ( (corba_priority - base_corba_priority_) / priority_spacing_ ) + base_native_priority_; + native_priority = static_cast<RTCORBA::NativePriority> + (((corba_priority - base_corba_priority_) / priority_spacing_) + base_native_priority_); } else { - native_priority = ( (base_corba_priority_ - corba_priority) / priority_spacing_ ) + base_native_priority_; + native_priority = static_cast<RTCORBA::NativePriority> + (((base_corba_priority_ - corba_priority) / priority_spacing_) + base_native_priority_); } } else @@ -128,9 +131,10 @@ TAO_Multi_Priority_Mapping::to_native (RTCORBA::Priority corba_priority, last_priority = this->base_native_priority_; for (int current_ndx = 0; current_ndx < priority_ndx; current_ndx++) { - native_priority = ACE_Sched_Params::previous_priority (this->policy_, - last_priority, - ACE_SCOPE_THREAD); + native_priority = static_cast<RTCORBA::NativePriority> + (ACE_Sched_Params::previous_priority (this->policy_, + last_priority, + ACE_SCOPE_THREAD)); } } } @@ -159,7 +163,7 @@ TAO_Multi_Priority_Mapping::to_CORBA (RTCORBA::NativePriority native_priority, if (native_priority == base_native_priority_) { // If this is the highest priority endpoint, then just give it the highest priority corba base priority - corba_priority = base_corba_priority_; + corba_priority = static_cast<RTCORBA::Priority> (base_corba_priority_); } else { @@ -167,11 +171,13 @@ TAO_Multi_Priority_Mapping::to_CORBA (RTCORBA::NativePriority native_priority, { if ( this->min_ < this->max_ ) { - corba_priority = ( (native_priority - base_native_priority_) * priority_spacing_ ) + base_corba_priority_; + corba_priority = static_cast<RTCORBA::Priority> + (((native_priority - base_native_priority_) * priority_spacing_) + base_corba_priority_); } else { - corba_priority = ( (base_native_priority_ - native_priority) * priority_spacing_ ) + base_corba_priority_; + corba_priority = static_cast<RTCORBA::Priority> + (((base_native_priority_ - native_priority) * priority_spacing_) + base_corba_priority_); } } else @@ -224,11 +230,14 @@ TAO_Multi_Priority_Mapping::to_CORBA (RTCORBA::NativePriority native_priority, priority_ndx++; } - corba_priority = base_corba_priority_ - priority_ndx; + corba_priority = static_cast<RTCORBA::Priority> + (base_corba_priority_ - priority_ndx); } } return 1; } +TAO_END_VERSIONED_NAMESPACE_DECL + #endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */ |