Policy.pidl
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:3k
源码类别:

中间件编程

开发平台:

Java

  1. /**
  2.  * @file Policy.pidl
  3.  *
  4.  * $Id: Policy.pidl,v 1.2 2003/02/25 18:07:24 eas Exp $
  5.  *
  6.  * @brief Pre-compiled IDL source for the CORBA::Policy related
  7.  * classes.
  8.  *
  9.  * This file is used to generate the code in PolicyC.{h,i,cpp}.
  10.  * Also, skeleton code for the only non local Policy interface is
  11.  * generated from this pidl file and then the declaration code is
  12.  * moved to tao/PortableServer/PolicyS.{h,i,cpp}
  13.  *
  14.  *   The steps to regenerate the code are as follows:
  15.  *
  16.  *   1. Run the tao_idl compiler on the patched pidl file.  The
  17.  *   command used for this is:
  18.  *
  19.  *     tao_idl.exe
  20.  *        -o orig -Gp -Gd -Ge 1 -Gv -DCORBA3
  21.  *          -Wb,export_macro=TAO_Export
  22.  *          -Wb,export_include="tao/corbafwd.h"
  23.  *          -Wb,pre_include="ace/pre.h"
  24.  *          -Wb,post_include="ace/post.h"
  25.  *          Policy.pidl
  26.  *
  27.  *   2. Then patch the generated code.  This patch (a) eliminates
  28.  *   cycles in the include dependencies; (b) adds the TAO_Encodable
  29.  *   methods to the Policy class; (c) fixes the #includes in the
  30.  *   PolicyS.h file.
  31.  *
  32.  *   Apply patches using the following commands:
  33.  *
  34.  *   cp orig/PolicyC.{h,i,cpp} .
  35.  *   cp orig/PolicyS.{h,i,cpp} PortableServer
  36.  *   cp orig/PolicyS_T.{h,i,cpp} PortableServer
  37.  *   patch < diffs/Policy.diff
  38.  *
  39.  *   Note: The diffs were generated with these commands:
  40.  *
  41.  *   for i in PolicyC.{h,i,cpp}; do
  42.  *     diff -wBbu orig/$i $i;
  43.  *   done > diffs/Policy.diff
  44.  *   for i in Policy{S,S_T}.{h,i,cpp}; do
  45.  *     diff -wBbu orig/$i PortableServer/$i;
  46.  *   done >> diffs/Policy.diff
  47.  */
  48. #ifndef TAO_CORBA_POLICY_PIDL
  49. #define TAO_CORBA_POLICY_PIDL
  50. #include <Current.pidl>
  51. #include <Policy_Forward.pidl>
  52. #pragma prefix "omg.org"
  53. module CORBA
  54. {
  55.   typedef short PolicyErrorCode;
  56.   const PolicyErrorCode BAD_POLICY               = 0;
  57.   const PolicyErrorCode UNSUPPORTED_POLICY       = 1;
  58.   const PolicyErrorCode BAD_POLICY_TYPE          = 2;
  59.   const PolicyErrorCode BAD_POLICY_VALUE         = 3;
  60.   const PolicyErrorCode UNSUPPORTED_POLICY_VALUE = 4;
  61.   exception PolicyError
  62.   {
  63.     PolicyErrorCode reason;
  64.   };
  65.   exception InvalidPolicies
  66.   {
  67.     sequence<unsigned short> indices;
  68.   };
  69.   interface Policy
  70.   {
  71.     readonly attribute PolicyType policy_type;
  72.     Policy copy ();
  73.     void destroy ();
  74.   };
  75.   local interface PolicyManager
  76.   {
  77.     PolicyList get_policy_overrides (in PolicyTypeSeq ts);
  78.     void set_policy_overrides (
  79.              in PolicyList policies,
  80.              in SetOverrideType set_add)
  81.         raises (InvalidPolicies);
  82.   };
  83.   local interface PolicyCurrent : PolicyManager, Current
  84.   {
  85.   };
  86. };
  87. #pragma prefix ""
  88. #endif /* TAO_CORBA_POLICY_PIDL */