summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-24 03:19:08 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-24 03:19:08 +0000
commit24572b114241647f4eaf5478c0caa7b0719297b8 (patch)
treeb539ed4408fbc3b78eb047e50577e74d2eb2920b /TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
parentea25ad99092661140095176ddd6023791a6601f5 (diff)
downloadATCD-24572b114241647f4eaf5478c0caa7b0719297b8.tar.gz
(preemption_priority, set_preemption_priority): for HPUX aCC only,
added typedef to replace direct use of RtecScheduler::Preemption_Priority as an operator name. It can't handle it.
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
index dd56247db82..508f9f699fb 100644
--- a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
@@ -325,6 +325,12 @@ int ACE_Scheduler_Factory::dump_schedule
return 0;
}
+#if defined (HPUX) && !defined (__GNUG__)
+ // aCC can't handle RtecScheduler::Preemption_Priority used as an operator
+ // name.
+ typedef CORBA::Long RtecScheduler_Preemption_Priority;
+#endif /* HPUX && !g++ */
+
RtecScheduler::Preemption_Priority
ACE_Scheduler_Factory::preemption_priority ()
{
@@ -335,10 +341,16 @@ ACE_Scheduler_Factory::preemption_priority ()
ACE_TSS_Type_Adapter<RtecScheduler::Preemption_Priority> *tss =
ace_scheduler_factory_data->preemption_priority_;
// egcs 1.0.1 raises an internal compiler error if we implicitly
- // call the type conversion operator. So, call it explcitly.
+ // call the type conversion operator. So, call it explicitly.
+#if defined (HPUX) && !defined (__GNUG__)
+ const RtecScheduler::Preemption_Priority preemption_priority =
+ ACE_static_cast (RtecScheduler::Preemption_Priority,
+ tss->operator RtecScheduler_Preemption_Priority ());
+#else
const RtecScheduler::Preemption_Priority preemption_priority =
ACE_static_cast (RtecScheduler::Preemption_Priority,
tss->operator RtecScheduler::Preemption_Priority ());
+#endif /* HPUX && !g++ */
return preemption_priority;
}
else
@@ -359,7 +371,12 @@ ACE_Scheduler_Factory::set_preemption_priority
return;
ace_scheduler_factory_data->preemption_priority_->
+#if defined (HPUX) && !defined (__GNUG__)
+ // aCC can't handle the typedef
+ operator RtecScheduler_Preemption_Priority & () = preemption_priority;
+#else
operator RtecScheduler::Preemption_Priority & () = preemption_priority;
+#endif /* HPUX && !g++ */
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)