// **********************************************************************
//
// Copyright (c) 2002
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

#ifndef PORTABLE_INTERCEPTOR_IOR_IDL
#define PORTABLE_INTERCEPTOR_IOR_IDL

#pragma prefix "omg.org"

#include <OB/Policy.idl>
#include <OB/IOP.idl>

#include <OB/PICommon.idl>
#include <OB/PIORT.idl>

module PortableInterceptor
{

local interface IORInfo
{
    CORBA::Policy get_effective_policy(in CORBA::PolicyType type);

    void add_ior_component(in IOP::TaggedComponent component);

    void add_ior_component_to_profile(in IOP::TaggedComponent component,
                                      in IOP::ProfileId id);

    //
    // New from orbos/00-12-01 ORT
    //
    readonly attribute ObjectReferenceTemplate adapter_template ;
    attribute ObjectReferenceFactory current_factory ;

    readonly attribute AdapterManagerId manager_id;
    readonly attribute AdapterState state;
};

local interface IORInterceptor: Interceptor
{
    void establish_components(in IORInfo info);
};

local interface IORInterceptor_3_0 : IORInterceptor
{
    void components_established(in IORInfo info);

    void adapter_manager_state_change(in AdapterManagerId id,
				      in AdapterState state);

    void adapter_state_change(in ObjectReferenceTemplateSeq templates,
    			      in AdapterState state);
};

}; // End of module PortableInterceptor

#endif
