
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\TRANSLTB.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODBaseTranslation_h
#define SOM_ODBaseTranslation_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define ODBaseTranslationClassData (*resolve_ODBaseTranslationClassData())
#define ODBaseTranslationCClassData (*resolve_ODBaseTranslationCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODBaseTranslation
#define ODBaseTranslation SOMObject
#endif
#include <ODObject.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODBaseTranslation
    #define ODBaseTranslation SOMObject
#endif /* ODBaseTranslation */
#ifndef ODTypeList
    #define ODTypeList SOMObject
#endif /* ODTypeList */
#ifndef ODStorageUnitView
    #define ODStorageUnitView SOMObject
#endif /* ODStorageUnitView */

/*
 * End of user-defined types.
 */

#define ODBaseTranslation_MajorVersion 0
#define ODBaseTranslation_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODBaseTranslationNewClass c
#define ODBaseTranslationClassData d
#define ODBaseTranslationCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODBaseTranslation_classObj ODBaseTranslationClassData.classObject
#define _ODBaseTranslation ODBaseTranslation_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK ODBaseTranslationNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODBaseTranslationClassDataStructure {
	SOMClass *classObject;
	somMToken InitTranslation;
	somMToken CanTranslate;
	somMToken GetTranslationOf;
	somMToken TranslateView;
	somMToken Translate;
	somMToken GetISOTypeFromPlatformType;
	somMToken GetPlatformTypeFromISOType;
}  _ODBaseTranslationClassData;
SOMEXTERN struct ODBaseTranslationClassDataStructure * SOMLINK resolve_ODBaseTranslationClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODBaseTranslationCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODBaseTranslationCClassData;
SOMEXTERN struct ODBaseTranslationCClassDataStructure * SOMLINK resolve_ODBaseTranslationCClassData(void);

/*
 * New and Renew macros for ODBaseTranslation
 */
#define ODBaseTranslationNew() \
   (_somNew(_ODBaseTranslation ? _ODBaseTranslation : ODBaseTranslationNewClass(ODBaseTranslation_MajorVersion, ODBaseTranslation_MinorVersion)))
#define ODBaseTranslationRenew(buf) \
   (_somRenew(_ODBaseTranslation ? _ODBaseTranslation : ODBaseTranslationNewClass(ODBaseTranslation_MajorVersion, ODBaseTranslation_MinorVersion), buf))

/*
 * Override method: Purge
 */
#define ODBaseTranslation_Purge(somSelf,ev,size) \
	ODObject_Purge(somSelf,ev,size)

/*
 * Override method: somInit
 */
#define ODBaseTranslation_somInit(somSelf) \
	SOMObject_somInit(somSelf)

/*
 * Override method: somUninit
 */
#define ODBaseTranslation_somUninit(somSelf) \
	SOMObject_somUninit(somSelf)

/*
 * New Method: InitTranslation
 */
typedef void   (SOMLINK * somTD_ODBaseTranslation_InitTranslation)(ODBaseTranslation *somSelf, Environment *ev);
#define somMD_ODBaseTranslation_InitTranslation "::ODBaseTranslation::InitTranslation"
#define ODBaseTranslation_InitTranslation(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseTranslation, InitTranslation) \
	(somSelf,ev))
#ifndef SOMGD_InitTranslation
    #if (defined(_InitTranslation) || defined(__InitTranslation))
        #undef _InitTranslation
        #undef __InitTranslation
        #define SOMGD_InitTranslation 1
    #else
        #define _InitTranslation ODBaseTranslation_InitTranslation
    #endif /* _InitTranslation */
#endif /* SOMGD_InitTranslation */

/*
 * New Method: CanTranslate
 */
typedef ODTranslateResult   (SOMLINK * somTD_ODBaseTranslation_CanTranslate)(ODBaseTranslation *somSelf, Environment *ev,
		ODValueType fromType);
#define somMD_ODBaseTranslation_CanTranslate "::ODBaseTranslation::CanTranslate"
#define ODBaseTranslation_CanTranslate(somSelf,ev,fromType) \
    (SOM_Resolve(somSelf, ODBaseTranslation, CanTranslate) \
	(somSelf,ev,fromType))
#ifndef SOMGD_CanTranslate
    #if (defined(_CanTranslate) || defined(__CanTranslate))
        #undef _CanTranslate
        #undef __CanTranslate
        #define SOMGD_CanTranslate 1
    #else
        #define _CanTranslate ODBaseTranslation_CanTranslate
    #endif /* _CanTranslate */
#endif /* SOMGD_CanTranslate */

/*
 * New Method: GetTranslationOf
 */
typedef ODTypeList*   (SOMLINK * somTD_ODBaseTranslation_GetTranslationOf)(ODBaseTranslation *somSelf, Environment *ev,
		ODValueType fromType);
#define somMD_ODBaseTranslation_GetTranslationOf "::ODBaseTranslation::GetTranslationOf"
#define ODBaseTranslation_GetTranslationOf(somSelf,ev,fromType) \
    (SOM_Resolve(somSelf, ODBaseTranslation, GetTranslationOf) \
	(somSelf,ev,fromType))
#ifndef SOMGD_GetTranslationOf
    #if (defined(_GetTranslationOf) || defined(__GetTranslationOf))
        #undef _GetTranslationOf
        #undef __GetTranslationOf
        #define SOMGD_GetTranslationOf 1
    #else
        #define _GetTranslationOf ODBaseTranslation_GetTranslationOf
    #endif /* _GetTranslationOf */
#endif /* SOMGD_GetTranslationOf */

/*
 * New Method: TranslateView
 */
typedef ODTranslateResult   (SOMLINK * somTD_ODBaseTranslation_TranslateView)(ODBaseTranslation *somSelf, Environment *ev,
		ODStorageUnitView* fromView,
		ODStorageUnitView* toView);
#define somMD_ODBaseTranslation_TranslateView "::ODBaseTranslation::TranslateView"
#define ODBaseTranslation_TranslateView(somSelf,ev,fromView,toView) \
    (SOM_Resolve(somSelf, ODBaseTranslation, TranslateView) \
	(somSelf,ev,fromView,toView))
#ifndef SOMGD_TranslateView
    #if (defined(_TranslateView) || defined(__TranslateView))
        #undef _TranslateView
        #undef __TranslateView
        #define SOMGD_TranslateView 1
    #else
        #define _TranslateView ODBaseTranslation_TranslateView
    #endif /* _TranslateView */
#endif /* SOMGD_TranslateView */

/*
 * New Method: Translate
 */
typedef ODTranslateResult   (SOMLINK * somTD_ODBaseTranslation_Translate)(ODBaseTranslation *somSelf, Environment *ev,
		ODPtr fromData,
		ODULong fromDataSize,
		ODValueType fromType,
		ODValueType toType,
		ODPtr* toData,
		ODULong* toDataSize);
#define somMD_ODBaseTranslation_Translate "::ODBaseTranslation::Translate"
#define ODBaseTranslation_Translate(somSelf,ev,fromData,fromDataSize,fromType,toType,toData,toDataSize) \
    (SOM_Resolve(somSelf, ODBaseTranslation, Translate) \
	(somSelf,ev,fromData,fromDataSize,fromType,toType,toData,toDataSize))
#ifndef SOMGD_Translate
    #if (defined(_Translate) || defined(__Translate))
        #undef _Translate
        #undef __Translate
        #define SOMGD_Translate 1
    #else
        #define _Translate ODBaseTranslation_Translate
    #endif /* _Translate */
#endif /* SOMGD_Translate */

/*
 * New Method: GetISOTypeFromPlatformType
 */
typedef ODValueType   (SOMLINK * somTD_ODBaseTranslation_GetISOTypeFromPlatformType)(ODBaseTranslation *somSelf, Environment *ev,
		ODPlatformType platformType,
		ODPlatformTypeSpace typeSpace);
#define somMD_ODBaseTranslation_GetISOTypeFromPlatformType "::ODBaseTranslation::GetISOTypeFromPlatformType"
#define ODBaseTranslation_GetISOTypeFromPlatformType(somSelf,ev,platformType,typeSpace) \
    (SOM_Resolve(somSelf, ODBaseTranslation, GetISOTypeFromPlatformType) \
	(somSelf,ev,platformType,typeSpace))
#ifndef SOMGD_GetISOTypeFromPlatformType
    #if (defined(_GetISOTypeFromPlatformType) || defined(__GetISOTypeFromPlatformType))
        #undef _GetISOTypeFromPlatformType
        #undef __GetISOTypeFromPlatformType
        #define SOMGD_GetISOTypeFromPlatformType 1
    #else
        #define _GetISOTypeFromPlatformType ODBaseTranslation_GetISOTypeFromPlatformType
    #endif /* _GetISOTypeFromPlatformType */
#endif /* SOMGD_GetISOTypeFromPlatformType */

/*
 * New Method: GetPlatformTypeFromISOType
 */
typedef ODPlatformType   (SOMLINK * somTD_ODBaseTranslation_GetPlatformTypeFromISOType)(ODBaseTranslation *somSelf, Environment *ev,
		ODValueType type);
#define somMD_ODBaseTranslation_GetPlatformTypeFromISOType "::ODBaseTranslation::GetPlatformTypeFromISOType"
#define ODBaseTranslation_GetPlatformTypeFromISOType(somSelf,ev,type) \
    (SOM_Resolve(somSelf, ODBaseTranslation, GetPlatformTypeFromISOType) \
	(somSelf,ev,type))
#ifndef SOMGD_GetPlatformTypeFromISOType
    #if (defined(_GetPlatformTypeFromISOType) || defined(__GetPlatformTypeFromISOType))
        #undef _GetPlatformTypeFromISOType
        #undef __GetPlatformTypeFromISOType
        #define SOMGD_GetPlatformTypeFromISOType 1
    #else
        #define _GetPlatformTypeFromISOType ODBaseTranslation_GetPlatformTypeFromISOType
    #endif /* _GetPlatformTypeFromISOType */
#endif /* SOMGD_GetPlatformTypeFromISOType */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODBaseTranslation_InitObject ODObject_InitObject
#define ODBaseTranslation_IsInitialized ODObject_IsInitialized
#define ODBaseTranslation_HasExtension ODObject_HasExtension
#define ODBaseTranslation_GetExtension ODObject_GetExtension
#define ODBaseTranslation_ReleaseExtension ODObject_ReleaseExtension
#define ODBaseTranslation_IsEqualTo ODObject_IsEqualTo
#define ODBaseTranslation_SubClassResponsibility ODObject_SubClassResponsibility
#define ODBaseTranslation_somDefaultInit SOMObject_somDefaultInit
#define ODBaseTranslation_somDestruct SOMObject_somDestruct
#define ODBaseTranslation_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODBaseTranslation_somDefaultAssign SOMObject_somDefaultAssign
#define ODBaseTranslation_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODBaseTranslation_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODBaseTranslation_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODBaseTranslation_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODBaseTranslation_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODBaseTranslation_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODBaseTranslation_somFree SOMObject_somFree
#define ODBaseTranslation_somGetClass SOMObject_somGetClass
#define ODBaseTranslation_somGetClassName SOMObject_somGetClassName
#define ODBaseTranslation_somGetSize SOMObject_somGetSize
#define ODBaseTranslation_somIsA SOMObject_somIsA
#define ODBaseTranslation_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODBaseTranslation_somRespondsTo SOMObject_somRespondsTo
#define ODBaseTranslation_somDispatch SOMObject_somDispatch
#define ODBaseTranslation_somClassDispatch SOMObject_somClassDispatch
#define ODBaseTranslation_somCastObj SOMObject_somCastObj
#define ODBaseTranslation_somResetObj SOMObject_somResetObj
#define ODBaseTranslation_somDispatchV SOMObject_somDispatchV
#define ODBaseTranslation_somDispatchL SOMObject_somDispatchL
#define ODBaseTranslation_somDispatchA SOMObject_somDispatchA
#define ODBaseTranslation_somDispatchD SOMObject_somDispatchD
#define ODBaseTranslation_somPrintSelf SOMObject_somPrintSelf
#define ODBaseTranslation_somDumpSelf SOMObject_somDumpSelf
#define ODBaseTranslation_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODBaseTranslation_h */
