blob: 10d68c8815c98d4f85c3e814c84b5dc4631b36f8 (
plain)
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
|
/* -*- idl -*- */
//=============================================================================
/**
* @file RTCosScheduling.idl
*
* $Id$
*
* @author Matt Murphy <murphym@cs.uri.edu>
*/
//=============================================================================
/**
* This directory contains the idl for the RTCORBA 1.0 Scheduling Service.
* To generate the stubs and skeletons, run
* tao_idl -I $TAO_ROOT/ RTCosScheduling.idl
*
*/
#ifndef _RT_COS_SCHEDULING_
#define _RT_COS_SCHEDULING_
#include <orb.idl>
#include "tao/PortableServer/PortableServer.pidl"
/**
* @module RTCosScheduling
*
* @brief This module contains the interfaces for the RTCORBA 1.0
* Scheduling Service.
*/
module RTCosScheduling {
/**
* This exception is thrown by schedule activity when an activity name
* is passed that is associated with a priority in the config file.
* It is thrown by schedule_object when an object name is passed in
* that was not assiciated with a resource priority ceiling in the
* config file.
*/
exception UnknownName {};
/**
* @interface ClientScheduler
*
* @brief This interface is used by clients who wish to
* schedule activities using the RT CORBA 1.0 Scheduling Service.
*/
local interface ClientScheduler {
/**
* schedule_activity associates an activity name with a known priority
* for that activity. It then sets RT Current to that priority.
* If the name passed does not have a priority associated then
* schedule_activity throws an UnknownName exception.
*
* @param activity_name is the name of the activity that the client
* would like to run. The activity_name is associated with a
* priority by schedule_activity and RT Current is set to that
* priority.
*/
void schedule_activity(in string activity_name )
raises (UnknownName);
};
/**
* @interface ServerScheduler
*
* @brief This interface is used by nodes that hold a local object
* reference.
*/
local interface ServerScheduler {
/**
* create_POA is called by servers that would like to use the
* RT CORBA 2.0 Scheduling Service.
*
* @param parent The poa to base the RT POA upon
* @param adapter_name the adapter name for the poa
* @param a_POAManager the poa_manager
* @param policies the list of non real time policies to be set
*
*/
PortableServer::POA create_POA (
in PortableServer::POA parent,
in string adapter_name,
in PortableServer::POAManager a_POAManager,
in CORBA::PolicyList policies)
raises (PortableServer::POA::AdapterAlreadyExists,
PortableServer::POA::InvalidPolicy);
/**
* schedule_object is called on servers to associate a
* CORBA object reference with a name. This allows the
* scheduling service to map a server object name to a resource
* ceiling. An UnknownName exception is found if the object name
* is not found in the config file.
*/
void schedule_object(in Object obj, in string name)
raises (UnknownName);
};
};
#endif // _RT_COS_SCHEDULING_IDL_
|