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

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


#ifndef SOM_ODStorageSystem_h
#define SOM_ODStorageSystem_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 ODStorageSystemClassData (*resolve_ODStorageSystemClassData())
#define ODStorageSystemCClassData (*resolve_ODStorageSystemCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODStorageSystem
#define ODStorageSystem SOMObject
#endif
#include <ODStorB.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 ODBaseStorageSystem
    #define ODBaseStorageSystem SOMObject
#endif /* ODBaseStorageSystem */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODContainer
    #define ODContainer SOMObject
#endif /* ODContainer */
#ifndef ODTypeList
    #define ODTypeList SOMObject
#endif /* ODTypeList */
#ifndef ODPlatformTypeList
    #define ODPlatformTypeList SOMObject
#endif /* ODPlatformTypeList */
#ifndef ODStorageSystem
    #define ODStorageSystem SOMObject
#endif /* ODStorageSystem */

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

#define ODStorageSystem_MajorVersion 0
#define ODStorageSystem_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODStorageSystemNewClass c
#define ODStorageSystemClassData d
#define ODStorageSystemCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODStorageSystem_classObj ODStorageSystemClassData.classObject
#define _ODStorageSystem ODStorageSystem_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODStorageSystemClassDataStructure {
	SOMClass *classObject;
	somMToken GetHeap;
}  _ODStorageSystemClassData;
SOMEXTERN struct ODStorageSystemClassDataStructure * SOMLINK resolve_ODStorageSystemClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODStorageSystemCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODStorageSystemCClassData;
SOMEXTERN struct ODStorageSystemCClassDataStructure * SOMLINK resolve_ODStorageSystemCClassData(void);

/*
 * New and Renew macros for ODStorageSystem
 */
#define ODStorageSystemNew() \
   (_somNew(_ODStorageSystem ? _ODStorageSystem : ODStorageSystemNewClass(ODStorageSystem_MajorVersion, ODStorageSystem_MinorVersion)))
#define ODStorageSystemRenew(buf) \
   (_somRenew(_ODStorageSystem ? _ODStorageSystem : ODStorageSystemNewClass(ODStorageSystem_MajorVersion, ODStorageSystem_MinorVersion), buf))

/*
 * Override method: GrowHeap
 */
#define ODStorageSystem_GrowHeap(somSelf,ev,memSize) \
	ODBaseStorageSystem_GrowHeap(somSelf,ev,memSize)

/*
 * Override method: ReleaseContainer
 */
#define ODStorageSystem_ReleaseContainer(somSelf,ev,container) \
	ODBaseStorageSystem_ReleaseContainer(somSelf,ev,container)

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

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

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

/*
 * Override method: InitStorageSystem
 */
#define ODStorageSystem_InitStorageSystem(somSelf,ev,session) \
	ODBaseStorageSystem_InitStorageSystem(somSelf,ev,session)

/*
 * Override method: GetSession
 */
#define ODStorageSystem_GetSession(somSelf,ev) \
	ODBaseStorageSystem_GetSession(somSelf,ev)

/*
 * Override method: GetContainer
 */
#define ODStorageSystem_GetContainer(somSelf,ev,containerType,id) \
	ODBaseStorageSystem_GetContainer(somSelf,ev,containerType,id)

/*
 * Override method: CreateContainer
 */
#define ODStorageSystem_CreateContainer(somSelf,ev,containerType,id) \
	ODBaseStorageSystem_CreateContainer(somSelf,ev,containerType,id)

/*
 * Override method: NeedSpace
 */
#define ODStorageSystem_NeedSpace(somSelf,ev,memSize,doPurge) \
	ODBaseStorageSystem_NeedSpace(somSelf,ev,memSize,doPurge)

/*
 * Override method: CreateTypeList
 */
#define ODStorageSystem_CreateTypeList(somSelf,ev,typeList) \
	ODBaseStorageSystem_CreateTypeList(somSelf,ev,typeList)

/*
 * Override method: CreatePlatformTypeList
 */
#define ODStorageSystem_CreatePlatformTypeList(somSelf,ev,typeList) \
	ODBaseStorageSystem_CreatePlatformTypeList(somSelf,ev,typeList)

/*
 * New Method: GetHeap
 */
typedef ODMemoryHeapID   (SOMLINK * somTD_ODStorageSystem_GetHeap)(ODStorageSystem *somSelf, Environment *ev);
#define somMD_ODStorageSystem_GetHeap "::ODStorageSystem::GetHeap"
#define ODStorageSystem_GetHeap(somSelf,ev) \
    (SOM_Resolve(somSelf, ODStorageSystem, GetHeap) \
	(somSelf,ev))
#ifndef SOMGD_GetHeap
    #if (defined(_GetHeap) || defined(__GetHeap))
        #undef _GetHeap
        #undef __GetHeap
        #define SOMGD_GetHeap 1
    #else
        #define _GetHeap ODStorageSystem_GetHeap
    #endif /* _GetHeap */
#endif /* SOMGD_GetHeap */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODStorageSystem_InitObject ODObject_InitObject
#define ODStorageSystem_IsInitialized ODObject_IsInitialized
#define ODStorageSystem_HasExtension ODObject_HasExtension
#define ODStorageSystem_GetExtension ODObject_GetExtension
#define ODStorageSystem_ReleaseExtension ODObject_ReleaseExtension
#define ODStorageSystem_IsEqualTo ODObject_IsEqualTo
#define ODStorageSystem_SubClassResponsibility ODObject_SubClassResponsibility
#define ODStorageSystem_somDefaultInit SOMObject_somDefaultInit
#define ODStorageSystem_somDestruct SOMObject_somDestruct
#define ODStorageSystem_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODStorageSystem_somDefaultAssign SOMObject_somDefaultAssign
#define ODStorageSystem_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODStorageSystem_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODStorageSystem_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODStorageSystem_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODStorageSystem_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODStorageSystem_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODStorageSystem_somFree SOMObject_somFree
#define ODStorageSystem_somGetClass SOMObject_somGetClass
#define ODStorageSystem_somGetClassName SOMObject_somGetClassName
#define ODStorageSystem_somGetSize SOMObject_somGetSize
#define ODStorageSystem_somIsA SOMObject_somIsA
#define ODStorageSystem_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODStorageSystem_somRespondsTo SOMObject_somRespondsTo
#define ODStorageSystem_somDispatch SOMObject_somDispatch
#define ODStorageSystem_somClassDispatch SOMObject_somClassDispatch
#define ODStorageSystem_somCastObj SOMObject_somCastObj
#define ODStorageSystem_somResetObj SOMObject_somResetObj
#define ODStorageSystem_somDispatchV SOMObject_somDispatchV
#define ODStorageSystem_somDispatchL SOMObject_somDispatchL
#define ODStorageSystem_somDispatchA SOMObject_somDispatchA
#define ODStorageSystem_somDispatchD SOMObject_somDispatchD
#define ODStorageSystem_somPrintSelf SOMObject_somPrintSelf
#define ODStorageSystem_somDumpSelf SOMObject_somDumpSelf
#define ODStorageSystem_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODStorageSystem_h */
