Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TAO_RTSCHEDULER_PIDL
00027 #define TAO_RTSCHEDULER_PIDL
00028
00029 #include "tao/RTCORBA/RTCORBA_include.pidl"
00030 #include "tao/PortableServer/PortableServer_include.pidl"
00031 #include "tao/PI/PI_include.pidl"
00032 #include "tao/PI_Server/ServerRequestInfo.pidl"
00033 #include "tao/PortableInterceptor.pidl"
00034 #include "tao/PI/PIForwardRequest.pidl"
00035
00036 module CORBA
00037 {
00038
00039 native VoidData;
00040
00041
00042
00043
00044
00045
00046 };
00047
00048 module RTScheduling
00049 {
00050
00051
00052
00053
00054 local interface ThreadAction
00055 {
00056 void do(in CORBA::VoidData data);
00057 };
00058
00059 local interface DistributableThread
00060 {
00061 enum DT_State
00062 {
00063 ACTIVE,
00064 CANCELLED
00065 };
00066
00067 void cancel();
00068
00069
00070
00071 readonly attribute DT_State state;
00072 };
00073
00074 local interface Current
00075 : RTCORBA::Current
00076 {
00077 DistributableThread
00078 spawn
00079 (in ThreadAction start,
00080 in CORBA::VoidData data,
00081 in string name,
00082 in CORBA::Policy sched_param,
00083 in CORBA::Policy implicit_sched_param,
00084 in unsigned long stack_size,
00085
00086 in RTCORBA::Priority base_priority);
00087
00088 exception UNSUPPORTED_SCHEDULING_DISCIPLINE {};
00089
00090
00091
00092 void begin_scheduling_segment
00093 (in string name,
00094 in CORBA::Policy sched_param,
00095 in CORBA::Policy implicit_sched_param)
00096 raises (UNSUPPORTED_SCHEDULING_DISCIPLINE );
00097
00098 void update_scheduling_segment
00099 (in string name,
00100 in CORBA::Policy sched_param,
00101 in CORBA::Policy implicit_sched_param)
00102 raises ( UNSUPPORTED_SCHEDULING_DISCIPLINE );
00103
00104 void end_scheduling_segment(in string name);
00105
00106 typedef sequence<octet> IdType;
00107
00108 readonly attribute IdType id;
00109
00110
00111
00112
00113
00114 DistributableThread lookup(in IdType id);
00115
00116
00117
00118
00119 readonly attribute CORBA::Policy scheduling_parameter;
00120 readonly attribute CORBA::Policy implicit_scheduling_parameter;
00121
00122 typedef sequence<string> NameList;
00123
00124 readonly attribute NameList current_scheduling_segment_names;
00125
00126
00127 };
00128
00129 local interface ResourceManager
00130 : RTCORBA::Mutex
00131 {
00132 };
00133
00134 local interface Scheduler
00135 {
00136 exception INCOMPATIBLE_SCHEDULING_DISCIPLINES {};
00137
00138 attribute CORBA::PolicyList scheduling_policies;
00139 readonly attribute CORBA::PolicyList poa_policies;
00140 readonly attribute string scheduling_discipline_name;
00141
00142 ResourceManager
00143 create_resource_manager
00144 (in string name,
00145 in CORBA::Policy scheduling_parameter);
00146
00147 void set_scheduling_parameter
00148 (inout PortableServer::Servant resource,
00149 in string name,
00150 in CORBA::Policy scheduling_parameter);
00151
00152 void begin_new_scheduling_segment (in Current::IdType guid,
00153 in string name,
00154 in CORBA::Policy sched_param,
00155 in CORBA::Policy implicit_sched_param)
00156 raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
00157
00158 void begin_nested_scheduling_segment (in Current::IdType guid,
00159 in string name,
00160 in CORBA::Policy sched_param,
00161 in CORBA::Policy implicit_sched_param)
00162 raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
00163
00164
00165 void update_scheduling_segment (in Current::IdType guid,
00166 in string name,
00167 in CORBA::Policy sched_param,
00168 in CORBA::Policy implicit_sched_param)
00169 raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
00170
00171 void end_scheduling_segment (in Current::IdType guid,
00172 in string name);
00173
00174
00175 void end_nested_scheduling_segment (in Current::IdType guid,
00176 in string name,
00177 in CORBA::Policy outer_sched_param);
00178
00179 void send_request (in PortableInterceptor::ClientRequestInfo ri)
00180 raises (PortableInterceptor::ForwardRequest);
00181
00182 void receive_request (in PortableInterceptor::ServerRequestInfo ri,
00183 out Current::IdType guid,
00184 out string name,
00185 out CORBA::Policy sched_param,
00186 out CORBA::Policy implicit_sched_param)
00187 raises (PortableInterceptor::ForwardRequest);
00188
00189 void send_reply (in PortableInterceptor::ServerRequestInfo ri);
00190
00191 void send_exception (in PortableInterceptor::ServerRequestInfo ri)
00192 raises (PortableInterceptor::ForwardRequest);
00193
00194 void send_other (in PortableInterceptor::ServerRequestInfo ri)
00195 raises (PortableInterceptor::ForwardRequest);
00196
00197 void send_poll (in PortableInterceptor::ClientRequestInfo ri)
00198 raises (PortableInterceptor::ForwardRequest);
00199
00200 void receive_reply (in PortableInterceptor::ClientRequestInfo ri);
00201
00202 void receive_exception (in PortableInterceptor::ClientRequestInfo ri)
00203 raises (PortableInterceptor::ForwardRequest);
00204
00205 void receive_other (in PortableInterceptor::ClientRequestInfo ri)
00206 raises (PortableInterceptor::ForwardRequest);
00207
00208 void cancel (in Current::IdType guid);
00209 };
00210
00211 };
00212
00213 #endif