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
13 virtual RTCORBA::Priority
value ();
15 virtual void value (RTCORBA::Priority value
);
17 CORBA::Policy_ptr
copy ();
19 virtual CORBA::PolicyType
policy_type ();
24 RTCORBA::Priority value_
;
27 class Fixed_Priority_Scheduler
:
28 public FP_Scheduling::FP_Scheduler
,
29 public ::CORBA::LocalObject
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
,
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
,
46 CORBA::Policy_ptr sched_param
,
47 CORBA::Policy_ptr implicit_sched_param
);
49 virtual void update_scheduling_segment (const RTScheduling::Current::IdType
& guid
,
51 CORBA::Policy_ptr sched_param
,
52 CORBA::Policy_ptr implicit_sched_param
);
54 virtual void end_scheduling_segment (const RTScheduling::Current::IdType
& guid
,
57 virtual void end_nested_scheduling_segment (const RTScheduling::Current::IdType
& guid
,
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
,
99 CORBA::Policy_ptr scheduling_parameter
);
102 RTScheduling::Current_var current_
;
105 #endif //FIXED_PRIORITY_SCHEDULER_H