summaryrefslogtreecommitdiff
path: root/TAO/tao/Policy.pidl
blob: 62dfc3e50bc9fec5c805537a1d92d6e0fb759ece (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
/**
 * @file Policy.pidl
 *
 * $Id$
 *
 * @brief Pre-compiled IDL source for the CORBA::Policy related
 * classes.
 *
 * This file is used to generate the code in PolicyC.{h,inl,cpp}.
 * Also, skeleton code for the only non local Policy interface is
 * generated from this pidl file and then the declaration code is
 * moved to tao/PortableServer/PolicyS.{h,inl,cpp}
 *
 *   The steps to regenerate the code are as follows:
 *
 *   1. Run the tao_idl compiler on the patched pidl file.  The
 *   command used for this is:
 *
 *     tao_idl.exe
 *        -o orig -Gp -Gd -Ge 1 -GA -Ssi
 *          -Wb,stub_export_macro=TAO_Export
 *          -Wb,stub_export_include="tao/TAO_Export.h"
 *          -Wb,skel_export_macro=TAO_PortableServer_Export
 *          -Wb,skel_export_include=portableserver_export.h
 *          -Wb,pre_include="ace/pre.h"
 *          -Wb,post_include="ace/post.h"
 *          Policy.pidl
 *
 *   2. Then patch the generated code using patches in
 *      diff/Policy.diff. To patch  the generated code in
 *      PortableServer look for diffs in PortableServer/diffs
 *      directory.
 *
 *   Note: The diffs were generated with these commands:
 *
 *   for i in PolicyC.{h,i,cpp}; do
 *     diff -wBbu orig/$i $i;
 *   done > diffs/Policy.diff
 *   for i in Policy{S,S_T}.{h,i,cpp}; do
 *     diff -wBbu orig/$i PortableServer/$i;
 *   done >> diffs/Policy.diff
 */

#ifndef TAO_CORBA_POLICY_PIDL
#define TAO_CORBA_POLICY_PIDL

#include "tao/UShortSeq.pidl"
#include "tao/Current.pidl"
#include "tao/Policy_Forward.pidl"

#pragma prefix "omg.org"

module CORBA
{
  typedef short PolicyErrorCode;
  const PolicyErrorCode BAD_POLICY               = 0;
  const PolicyErrorCode UNSUPPORTED_POLICY       = 1;
  const PolicyErrorCode BAD_POLICY_TYPE          = 2;
  const PolicyErrorCode BAD_POLICY_VALUE         = 3;
  const PolicyErrorCode UNSUPPORTED_POLICY_VALUE = 4;

  exception PolicyError
  {
    PolicyErrorCode reason;
  };

  exception InvalidPolicies
  {
    UShortSeq indices;
  };

  interface Policy
  {
    readonly attribute PolicyType policy_type;
    Policy copy ();
    void destroy ();
  };

  local interface PolicyManager
  {
    PolicyList get_policy_overrides (in PolicyTypeSeq ts);
    void set_policy_overrides (
             in PolicyList policies,
             in SetOverrideType set_add)
        raises (InvalidPolicies);
  };

  local interface PolicyCurrent : PolicyManager, Current
  {
  };

};

#pragma prefix ""

#endif /* TAO_CORBA_POLICY_PIDL */