#ifdef __PRIVATE__
//#
//#	File:		NamRslvB.idl
//#
//#	Contains:	Class definition for ODBaseNameResolver
//#
//#	Owned by:	Nick Pilch
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		<10>	 1/27/95	NP		1213948: Add forward decls to new classes.
//#		 <9>	 1/27/95	NP		1213948: Fix parameter signatures to match
//#									old semantics.
//#		 <8>	 1/25/95	eeh		1191053: remove GetContextInfo from
//#									releaseorder
//#		 <7>	11/15/94	NP		1191053-remove getcontextinfo.
//#		 <6>	  9/9/94	NP		1185851: implement scripting. 1184039: API
//#									changes.
//#		 <5>	 8/13/94	NP		1180819-CreateToken now private.
//#		 <4>	  7/1/94	NP		Removed start from ODOSLToken parameter in
//#									DisposeToken.
//#		 <3>	 6/28/94	NP		class prefix.
//#		 <2>	 6/24/94	NP		First public checkin.
//#		 <1>	  6/8/94	RR		first checked in
//#		 <1>	  6/8/94	RR		first checked in
//#		 <3>	  6/7/94	RR		Privatise change log
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _NAMRSLVB_
#define _NAMRSLVB_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface  ODBaseNameResolver;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface  ODPart;
interface  ODMessageInterface;
interface  ODSession;
interface  ODFrame;
interface  ODSemanticInterface;
interface  ODDesc;
interface  ODOSLToken;
interface  ODObjectSpec;

//==============================================================================
// ODNameResolver
//==============================================================================

interface ODBaseNameResolver :  ODObject
{
	void	Resolve(in		ODObjectSpec	theObject,
					in		ODOSLToken		token,
					in		ODPart			contextPart);

	void	CreateSwapToken(out		ODOSLToken	token,
							in		ODFrame		frame);
	
		ODFrame	GetContainingFrame();

		void	CallObjectAccessor(in		ODPart		part,
									in		ODDescType	desiredClass,
									in		ODOSLToken	containerToken,
									in		ODDescType	containerClass,
									in		ODDescType	keyForm,
									in		ODDesc		keyData,
									in		ODOSLToken	token);

		void	DisposeToken(in	ODOSLToken	theToken);

#ifdef	__PRIVATE__

	void InitBaseNameResolver(in ODSession session);

#endif

#ifdef __SOMIDL__
	implementation
	{
  		functionprefix = ODBaseNameResolver;

		override:
			somInit,
			somUninit;
		releaseorder:
			Resolve,
			CreateSwapToken,
			GetContainingFrame,
			CallObjectAccessor,
			DisposeToken,
		#ifdef __PRIVATE__
			InitBaseNameResolver;
		#else
			reserved1;
		#endif

		majorversion = 1; minorversion = 0;
		
	};
#endif //# __SOMIDL__
};

#endif //# _NAMRSLVB_
