diff options
Diffstat (limited to 'TAO/tao/Policy.pidl')
-rw-r--r-- | TAO/tao/Policy.pidl | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/TAO/tao/Policy.pidl b/TAO/tao/Policy.pidl new file mode 100644 index 00000000000..62dfc3e50bc --- /dev/null +++ b/TAO/tao/Policy.pidl @@ -0,0 +1,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 */ |