// File: CORBA_Policy.idl
// CORBA 3.0, Chapter 4

    typedef unsigned long PolicyType;

    // Basic IDL definition
    interface Policy {
        readonly attribute PolicyType policy_type;
        Policy copy();
        void destroy();
    };

    typedef sequence <Policy> PolicyList;
    typedef sequence <PolicyType> PolicyTypeSeq;
//PolyORB:WACORBA: InvalidPolicies defined in CORBA 3.0.3 specification
//but not defined in OMG IDL files
    exception InvalidPolicies {
        sequence <unsigned short> indices;
    };
//PolyORB:WACORBA:

    typedef short PolicyErrorCode;
    exception PolicyError {PolicyErrorCode reason;};

    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;

