#ifdef __PRIVATE__
//#
//#	File:		TransltB.idl			** DO NOT REMERGE WITH APPLE CODE **
//#
//#	Contains:	Definition of ODBaseTranslation.
//#
//#	Written by:	Vincent Lo
//#	Ported by:	Chris Andrew
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#	          	c 1995 by Novell, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#	          	c 1995 by Novell, Inc., all rights reserved.
#endif

#ifndef _TRANSLTB_
#define _TRANSLTB_

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

//=====================================================================================
// Classes defined in this interface
//=====================================================================================
interface  ODBaseTranslation;

//=====================================================================================
// Classes used by this interface
//=====================================================================================
interface  ODTypeList;
interface  ODStorageUnitView;

//=====================================================================================
// Class ODBaseTranslation
//=====================================================================================

interface ODBaseTranslation :  ODObject
{
	void InitTranslation();
		
	ODTranslateResult  CanTranslate(in ODValueType fromType);
	
	ODTypeList   GetTranslationOf(in ODValueType fromType);
	
	ODTranslateResult TranslateView(in ODStorageUnitView fromView,
								in ODStorageUnitView toView);
	
	ODTranslateResult Translate(in ODPtr fromData,
								in ODULong fromDataSize,
								in ODValueType fromType,
								in ODValueType  toType,
								out ODPtr toData,
								out ODULong toDataSize);
	
	ODValueType GetISOTypeFromPlatformType(in ODPlatformType platformType,
										in ODPlatformTypeSpace typeSpace);
	
	ODPlatformType GetPlatformTypeFromISOType(in ODValueType type);

	#ifdef __SOMIDL__
	implementation
	{
		override:
			Purge,
			somInit,
			somUninit;

		releaseorder:
			InitTranslation,
			CanTranslate,
			GetTranslationOf,
			TranslateView,
			Translate,
			GetISOTypeFromPlatformType,
			GetPlatformTypeFromISOType;
	};
	#endif // __SOMIDL__
};

#endif	// _TRANSLTB_
