Merge pull request #2303 from jwillemsen/jwi-803
[ACE_TAO.git] / TAO / examples / RTScheduling / Fixed_Priority_Scheduler / FP_Scheduler.h
blob0c648b8758bb0502831e71a73c30e48ebdf8f481
1 #ifndef FIXED_PRIORITY_SCHEDULER_H
2 #define FIXED_PRIORITY_SCHEDULER_H
4 #include "tao/RTScheduling/RTScheduler.h"
5 #include "../FP_SchedulingC.h"
6 #include "tao/LocalObject.h"
8 class Segment_Sched_Param_Policy:
9 public FP_Scheduling::SegmentSchedulingParameterPolicy,
10 public ::CORBA::LocalObject
12 public:
13 virtual RTCORBA::Priority value ();
15 virtual void value (RTCORBA::Priority value);
17 CORBA::Policy_ptr copy ();
19 virtual CORBA::PolicyType policy_type ();
21 void destroy ();
23 private:
24 RTCORBA::Priority value_;
27 class Fixed_Priority_Scheduler:
28 public FP_Scheduling::FP_Scheduler,
29 public ::CORBA::LocalObject
31 public:
32 Fixed_Priority_Scheduler (CORBA::ORB_ptr orb);
34 ~Fixed_Priority_Scheduler ();
36 virtual FP_Scheduling::SegmentSchedulingParameterPolicy_ptr
37 create_segment_scheduling_parameter (RTCORBA::Priority segment_priority);
39 virtual void begin_new_scheduling_segment (const RTScheduling::Current::IdType & guid,
40 const char * name,
41 CORBA::Policy_ptr sched_param,
42 CORBA::Policy_ptr implicit_sched_param);
44 virtual void begin_nested_scheduling_segment (const RTScheduling::Current::IdType & guid,
45 const char * name,
46 CORBA::Policy_ptr sched_param,
47 CORBA::Policy_ptr implicit_sched_param);
49 virtual void update_scheduling_segment (const RTScheduling::Current::IdType & guid,
50 const char * name,
51 CORBA::Policy_ptr sched_param,
52 CORBA::Policy_ptr implicit_sched_param);
54 virtual void end_scheduling_segment (const RTScheduling::Current::IdType & guid,
55 const char * name);
57 virtual void end_nested_scheduling_segment (const RTScheduling::Current::IdType & guid,
58 const char * name,
59 CORBA::Policy_ptr outer_sched_param);
61 virtual void send_request (PortableInterceptor::ClientRequestInfo_ptr ri);
63 virtual void receive_request (PortableInterceptor::ServerRequestInfo_ptr ri,
64 RTScheduling::Current::IdType_out guid,
65 CORBA::String_out name,
66 CORBA::Policy_out sched_param,
67 CORBA::Policy_out implicit_sched_param);
69 virtual void send_reply (PortableInterceptor::ServerRequestInfo_ptr ri);
71 virtual void send_exception (PortableInterceptor::ServerRequestInfo_ptr ri);
73 virtual void send_other (PortableInterceptor::ServerRequestInfo_ptr ri);
75 virtual void send_poll (PortableInterceptor::ClientRequestInfo_ptr ri);
77 virtual void receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri);
79 virtual void receive_exception (PortableInterceptor::ClientRequestInfo_ptr ri);
81 virtual void receive_other (PortableInterceptor::ClientRequestInfo_ptr ri);
83 virtual void cancel (const RTScheduling::Current::IdType & guid);
85 virtual CORBA::PolicyList * scheduling_policies ();
87 virtual void scheduling_policies (const CORBA::PolicyList & scheduling_policies);
89 virtual CORBA::PolicyList * poa_policies ();
91 virtual char * scheduling_discipline_name ();
93 virtual RTScheduling::ResourceManager_ptr
94 create_resource_manager (const char * name,
95 CORBA::Policy_ptr scheduling_parameter);
97 virtual void set_scheduling_parameter (PortableServer::Servant & resource,
98 const char * name,
99 CORBA::Policy_ptr scheduling_parameter);
101 private:
102 RTScheduling::Current_var current_;
105 #endif //FIXED_PRIORITY_SCHEDULER_H