// -*- c++ -*-

#include <mico/policy.idl>
#include <mico/timebase.idl>

#pragma prefix "omg.org"

module MICOPolicy {
    const CORBA::PolicyType TRANSPORTPREF_POLICY_TYPE = 1000;
  
    interface TransportPrefPolicy : CORBA::Policy {
	// TAG_INTERNET_IOP, ...
	typedef unsigned long ProfileTag;
	typedef sequence<ProfileTag> ProfileTagSeq;
	
	attribute ProfileTagSeq preferences;
	readonly attribute ProfileTagSeq preferences_nocopy;
    };

    const CORBA::PolicyType RELATIVE_CB_TIMEOUT_POLICY_TYPE = 1001;

    local interface RelativeConnectionBindingTimeoutPolicy : CORBA::Policy {
        readonly attribute TimeBase::TimeT relative_expiry;
    };
};

module BiDirPolicy {
    typedef unsigned short BidirectionalPolicyValue;
    const BidirectionalPolicyValue NORMAL = 0;
    const BidirectionalPolicyValue BOTH = 1;

    const CORBA::PolicyType BIDIRECTIONAL_POLICY_TYPE = 37;

    interface BidirectionalPolicy : CORBA::Policy {
	readonly attribute BidirectionalPolicyValue value;
    };
};
