/* @(#)Z 1.12 com/src/storage/idl/Translt.idl, oddataxfer, od96nt, odnt9712d 97/03/21 16:48:54 (96/10/29 09:33:20) */


#ifndef _TRANSLT_
#define _TRANSLT_

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

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

//=====================================================================================
// Classes used in this interface
//=====================================================================================

interface ODTypeList;
interface ODStorageUnitView;
interface ODSession;
#ifdef _PLATFORM_WIN32_
typedef somToken ODOLEManager;
#endif



//=====================================================================================
// Class ODTranslation
//=====================================================================================

interface ODTranslation :  ODObject
{
	ODTranslateResult CanTranslate(in ODValueType fromType);

	ODTypeList GetTranslationOf(in ODValueType fromType);

	ODTranslateResult TranslateView(in ODStorageUnitView fromView,
								in ODStorageUnitView toView);

	ODTranslateResult Translate(in ODValueType fromType,
								in ODByteArray fromData,
								in ODValueType  toType,
								out ODByteArray toData);

	ODValueType GetISOTypeFromPlatformType(in ODPlatformType platformType,
										in ODPlatformTypeSpace typeSpace);

	ODPlatformType GetPlatformTypeFromISOType(in ODValueType type);


#ifdef __SOMIDL__
#if defined(_PLATFORM_MACINTOSH_ ) || defined(_PLATFORM_WIN32_) || defined(_PLATFORM_OS2_) || defined(_PLATFORM_AIX_)
  implementation
  {
	majorversion = 1; minorversion = 0;
  	functionprefix = ODTranslation;
  	override:
		somUninit,
        Purge;

	releaseorder:
        CanTranslate,
        GetTranslationOf,
        TranslateView,
        Translate,
        GetISOTypeFromPlatformType,
        GetPlatformTypeFromISOType,
		reserved1,
		reserved2,
		reserved3;

  };
#endif 
#endif 
};

#endif	// _TRANSLT_
