/usr/share/idl/tao/RTScheduling/RTScheduler.pidl is in libtao-dev 6.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | //$Id: RTScheduler.pidl 92104 2010-09-30 09:53:25Z johnnyw $
// ================================================================
//
// = LIBRARY
// TAO_RTScheduling
//
// = FILENAME
// RTScheduling.pidl
//
// = DESCRIPTION
// Some new data types included for GIOP 1.2
// ================================================================
#ifndef TAO_RTSCHEDULER_PIDL
#define TAO_RTSCHEDULER_PIDL
#include "tao/RTCORBA/RTCORBA_include.pidl"
#include "tao/PortableServer/PortableServer_include.pidl"
#include "tao/PI/PI_include.pidl"
#include "tao/PI_Server/ServerRequestInfo.pidl"
#include "tao/PortableInterceptor.pidl"
#include "tao/PI/PIForwardRequest.pidl"
module CORBA
{
// Extensions by this proposal:
native VoidData;
// Ada: System.Address
// C: void*
// C++: void*
// Java: Object
};
module RTScheduling
{
// ------------------------------------------------------------------
// Interfaces that are useful to dynamically schedule applications
// ------------------------------------------------------------------
local interface ThreadAction
{
void do(in CORBA::VoidData data);
};
local interface DistributableThread
{
enum DT_State
{
ACTIVE,
CANCELLED
};
void cancel();
// raises CORBA::OBJECT_NOT_FOUND if
// the distributable thread is
// not known to the scheduler
readonly attribute DT_State state;
};
local interface Current
: RTCORBA::Current
{
DistributableThread
spawn
(in ThreadAction start,
in CORBA::VoidData data,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param,
in unsigned long stack_size,
// zero means use the O/S default
in RTCORBA::Priority base_priority);
exception UNSUPPORTED_SCHEDULING_DISCIPLINE {};
// The scheduling_parameter argument didn't match the
// active scheduling policy.
void begin_scheduling_segment
(in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (UNSUPPORTED_SCHEDULING_DISCIPLINE );
void update_scheduling_segment
(in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises ( UNSUPPORTED_SCHEDULING_DISCIPLINE );
void end_scheduling_segment(in string name);
typedef sequence<octet> IdType;
readonly attribute IdType id;
// a globally unique id
//IdType get_current_id();
// returns id of thread that is running
DistributableThread lookup(in IdType id);
// returns a null reference if
// the distributable thread is
// not known to the local scheduler
readonly attribute CORBA::Policy scheduling_parameter;
readonly attribute CORBA::Policy implicit_scheduling_parameter;
typedef sequence<string> NameList;
readonly attribute NameList current_scheduling_segment_names;
// Ordered from innermost segment name
// to outmost segment name
};
local interface ResourceManager
: RTCORBA::Mutex
{
};
local interface Scheduler
{
exception INCOMPATIBLE_SCHEDULING_DISCIPLINES {};
attribute CORBA::PolicyList scheduling_policies;
readonly attribute CORBA::PolicyList poa_policies;
readonly attribute string scheduling_discipline_name;
ResourceManager
create_resource_manager
(in string name,
in CORBA::Policy scheduling_parameter);
void set_scheduling_parameter
(inout PortableServer::Servant resource,
in string name,
in CORBA::Policy scheduling_parameter);
void begin_new_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
void begin_nested_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
void update_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
void end_scheduling_segment (in Current::IdType guid,
in string name);
void end_nested_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy outer_sched_param);
void send_request (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void receive_request (in PortableInterceptor::ServerRequestInfo ri,
out Current::IdType guid,
out string name,
out CORBA::Policy sched_param,
out CORBA::Policy implicit_sched_param)
raises (PortableInterceptor::ForwardRequest);
void send_reply (in PortableInterceptor::ServerRequestInfo ri);
void send_exception (in PortableInterceptor::ServerRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void send_other (in PortableInterceptor::ServerRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void send_poll (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void receive_reply (in PortableInterceptor::ClientRequestInfo ri);
void receive_exception (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void receive_other (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void cancel (in Current::IdType guid);
};
};
#endif /*TAO_RTSCHEDULER_PIDL*/
|