summaryrefslogtreecommitdiff
path: root/TAO/examples/Kokyu_dsrt_schedulers/EDF_Scheduling.pidl
blob: cb28771919acb76c0f56bfe2b0a9969cc0ddde17 (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
// $Id$

/**
 * @file EDF_Scheduling.pidl
 *
 * EDF_Scheduling.pidl,v 1.2 2003/10/08 13:26:32 venkita Exp
 *
 * @brief Pre-compiled IDL source to help with the service context
 *        propagation of dynamic scheduling parameters using Kokyu
 *
 *   This file was used to generate the code in EDF_SchedulingC.{h,i,cpp}.
 *   The steps to regenerate the code are as follows:
 *
 *   1. Run the tao_idl compiler on the pidl file.  The command used for
 *   this is:
 *
 *     tao_idl -I $TAO_ROOT -Ge 1 
 *             -Wb,export_macro=Kokyu_DSRT_Schedulers_Export 
 *             -Wb,export_include=Kokyu_dsrt_schedulers_export.h
 *
 *
 *   2. Then apply the patches in EDF_SchedulingC.h.diff to the generated code.
 *   The patch will replace the inclusion of RTCORBAC.h and RTSchedulerC.h 
 *   with RTCORBA.h and RTScheduler.h respectively.
 *
 * Apply patches using the following command:
 *
 *   patch < EDF_SchedulingC.h.diff
 *
 * Note: The diff was generated in the following way:
 *
 *   Run the idl compiler as in step 1.
 *   cp EDF_SchedulingC.h EDF_SchedulingC.h.orig
 *   Modify EDF_SchedulingC.h with changes described in step 2.
 *   diff -wBbu EDF_SchedulingC.h.orig EDF_SchedulingC.h > EDF_SchedulingC.h.diff
 *
 */

#include <tao/RTScheduling/RTScheduler.pidl>
#include <tao/RTCORBA/RTCORBA.pidl>

module EDF_Scheduling
{
  struct SchedulingParameter
  {
    TimeBase::TimeT deadline;
    long importance;
    TimeBase::TimeT period; 
    TimeBase::TimeT remain_exe;
    long task_id;
  };

  local interface SchedulingParameterPolicy
  : CORBA::Policy
  {
    attribute SchedulingParameter value;
  };

  local interface Scheduler : RTScheduling::Scheduler
  {
    SchedulingParameterPolicy
      create_scheduling_parameter
        (in SchedulingParameter value);
  };
};