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

#ifndef POA_SERVANT_LOCATOR_IDL
#define POA_SERVANT_LOCATOR_IDL

#include <OB/POAServantManager.idl>
#include <OB/POACommon.idl>

#pragma prefix "omg.org"

module PortableServer
{
#pragma version PortableServer 2.3

local interface POA;

local interface ServantLocator : ServantManager
{
#pragma version ServantLocator 2.3

    native Cookie;

    // I don't want to include the IR interfaces just for CORBA::Identifier
    Servant preinvoke(in ObjectId oid, in POA adapter,
		      in /*CORBA::Identifier*/ string operation,
		      out Cookie the_cookie)
	raises(ForwardRequest);

    // I don't want to include the IR interfaces just for CORBA::Identifier
    void postinvoke(in ObjectId oid, in POA adapter,
		    in /*CORBA::Identifier*/ string operation,
		    in Cookie the_cookie,
		    in Servant the_servant);
};

}; // End module PortableServer

#endif
