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

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


#ifndef SOM_ODBaseStorageSystem_h
#define SOM_ODBaseStorageSystem_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 ODBaseStorageSystemClassData (*resolve_ODBaseStorageSystemClassData())
#define ODBaseStorageSystemCClassData (*resolve_ODBaseStorageSystemCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODBaseStorageSystem
#define ODBaseStorageSystem 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 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 */

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

#define ODBaseStorageSystem_MajorVersion 0
#define ODBaseStorageSystem_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODBaseStorageSystemNewClass c
#define ODBaseStorageSystemClassData d
#define ODBaseStorageSystemCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODBaseStorageSystem_classObj ODBaseStorageSystemClassData.classObject
#define _ODBaseStorageSystem ODBaseStorageSystem_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODBaseStorageSystemClassDataStructure {
	SOMClass *classObject;
	somMToken InitStorageSystem;
	somMToken GetSession;
	somMToken GetContainer;
	somMToken CreateContainer;
	somMToken NeedSpace;
	somMToken CreateTypeList;
	somMToken CreatePlatformTypeList;
	somMToken GrowHeap;
	somMToken ReleaseContainer;
}  _ODBaseStorageSystemClassData;
SOMEXTERN struct ODBaseStorageSystemClassDataStructure * SOMLINK resolve_ODBaseStorageSystemClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODBaseStorageSystemCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODBaseStorageSystemCClassData;
SOMEXTERN struct ODBaseStorageSystemCClassDataStructure * SOMLINK resolve_ODBaseStorageSystemCClassData(void);

/*
 * New and Renew macros for ODBaseStorageSystem
 */
#define ODBaseStorageSystemNew() \
   (_somNew(_ODBaseStorageSystem ? _ODBaseStorageSystem : ODBaseStorageSystemNewClass(ODBaseStorageSystem_MajorVersion, ODBaseStorageSystem_MinorVersion)))
#define ODBaseStorageSystemRenew(buf) \
   (_somRenew(_ODBaseStorageSystem ? _ODBaseStorageSystem : ODBaseStorageSystemNewClass(ODBaseStorageSystem_MajorVersion, ODBaseStorageSystem_MinorVersion), buf))

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

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

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

/*
 * New Method: InitStorageSystem
 */
typedef void   (SOMLINK * somTD_ODBaseStorageSystem_InitStorageSystem)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODBaseStorageSystem_InitStorageSystem "::ODBaseStorageSystem::InitStorageSystem"
#define ODBaseStorageSystem_InitStorageSystem(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, InitStorageSystem) \
	(somSelf,ev,session))
#ifndef SOMGD_InitStorageSystem
    #if (defined(_InitStorageSystem) || defined(__InitStorageSystem))
        #undef _InitStorageSystem
        #undef __InitStorageSystem
        #define SOMGD_InitStorageSystem 1
    #else
        #define _InitStorageSystem ODBaseStorageSystem_InitStorageSystem
    #endif /* _InitStorageSystem */
#endif /* SOMGD_InitStorageSystem */

/*
 * New Method: GetSession
 */
typedef ODSession*   (SOMLINK * somTD_ODBaseStorageSystem_GetSession)(ODBaseStorageSystem *somSelf, Environment *ev);
#define somMD_ODBaseStorageSystem_GetSession "::ODBaseStorageSystem::GetSession"
#define ODBaseStorageSystem_GetSession(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, GetSession) \
	(somSelf,ev))
#ifndef SOMGD_GetSession
    #if (defined(_GetSession) || defined(__GetSession))
        #undef _GetSession
        #undef __GetSession
        #define SOMGD_GetSession 1
    #else
        #define _GetSession ODBaseStorageSystem_GetSession
    #endif /* _GetSession */
#endif /* SOMGD_GetSession */

/*
 * New Method: GetContainer
 */
typedef ODContainer*   (SOMLINK * somTD_ODBaseStorageSystem_GetContainer)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODContainerType containerType,
		ODContainerID* id);
#define somMD_ODBaseStorageSystem_GetContainer "::ODBaseStorageSystem::GetContainer"
#define ODBaseStorageSystem_GetContainer(somSelf,ev,containerType,id) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, GetContainer) \
	(somSelf,ev,containerType,id))
#ifndef SOMGD_GetContainer
    #if (defined(_GetContainer) || defined(__GetContainer))
        #undef _GetContainer
        #undef __GetContainer
        #define SOMGD_GetContainer 1
    #else
        #define _GetContainer ODBaseStorageSystem_GetContainer
    #endif /* _GetContainer */
#endif /* SOMGD_GetContainer */

/*
 * New Method: CreateContainer
 */
typedef ODContainer*   (SOMLINK * somTD_ODBaseStorageSystem_CreateContainer)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODContainerType containerType,
		ODContainerID* id);
#define somMD_ODBaseStorageSystem_CreateContainer "::ODBaseStorageSystem::CreateContainer"
#define ODBaseStorageSystem_CreateContainer(somSelf,ev,containerType,id) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, CreateContainer) \
	(somSelf,ev,containerType,id))
#ifndef SOMGD_CreateContainer
    #if (defined(_CreateContainer) || defined(__CreateContainer))
        #undef _CreateContainer
        #undef __CreateContainer
        #define SOMGD_CreateContainer 1
    #else
        #define _CreateContainer ODBaseStorageSystem_CreateContainer
    #endif /* _CreateContainer */
#endif /* SOMGD_CreateContainer */

/*
 * New Method: NeedSpace
 */
typedef void   (SOMLINK * somTD_ODBaseStorageSystem_NeedSpace)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODSize memSize,
		ODBoolean doPurge);
#define somMD_ODBaseStorageSystem_NeedSpace "::ODBaseStorageSystem::NeedSpace"
#define ODBaseStorageSystem_NeedSpace(somSelf,ev,memSize,doPurge) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, NeedSpace) \
	(somSelf,ev,memSize,doPurge))
#ifndef SOMGD_NeedSpace
    #if (defined(_NeedSpace) || defined(__NeedSpace))
        #undef _NeedSpace
        #undef __NeedSpace
        #define SOMGD_NeedSpace 1
    #else
        #define _NeedSpace ODBaseStorageSystem_NeedSpace
    #endif /* _NeedSpace */
#endif /* SOMGD_NeedSpace */

/*
 * New Method: CreateTypeList
 */
typedef ODTypeList*   (SOMLINK * somTD_ODBaseStorageSystem_CreateTypeList)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODTypeList* typeList);
#define somMD_ODBaseStorageSystem_CreateTypeList "::ODBaseStorageSystem::CreateTypeList"
#define ODBaseStorageSystem_CreateTypeList(somSelf,ev,typeList) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, CreateTypeList) \
	(somSelf,ev,typeList))
#ifndef SOMGD_CreateTypeList
    #if (defined(_CreateTypeList) || defined(__CreateTypeList))
        #undef _CreateTypeList
        #undef __CreateTypeList
        #define SOMGD_CreateTypeList 1
    #else
        #define _CreateTypeList ODBaseStorageSystem_CreateTypeList
    #endif /* _CreateTypeList */
#endif /* SOMGD_CreateTypeList */

/*
 * New Method: CreatePlatformTypeList
 */
typedef ODPlatformTypeList*   (SOMLINK * somTD_ODBaseStorageSystem_CreatePlatformTypeList)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODPlatformTypeList* typeList);
#define somMD_ODBaseStorageSystem_CreatePlatformTypeList "::ODBaseStorageSystem::CreatePlatformTypeList"
#define ODBaseStorageSystem_CreatePlatformTypeList(somSelf,ev,typeList) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, CreatePlatformTypeList) \
	(somSelf,ev,typeList))
#ifndef SOMGD_CreatePlatformTypeList
    #if (defined(_CreatePlatformTypeList) || defined(__CreatePlatformTypeList))
        #undef _CreatePlatformTypeList
        #undef __CreatePlatformTypeList
        #define SOMGD_CreatePlatformTypeList 1
    #else
        #define _CreatePlatformTypeList ODBaseStorageSystem_CreatePlatformTypeList
    #endif /* _CreatePlatformTypeList */
#endif /* SOMGD_CreatePlatformTypeList */

/*
 * New Method: GrowHeap
 */
typedef void   (SOMLINK * somTD_ODBaseStorageSystem_GrowHeap)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODSize memSize);
#define somMD_ODBaseStorageSystem_GrowHeap "::ODBaseStorageSystem::GrowHeap"
#define ODBaseStorageSystem_GrowHeap(somSelf,ev,memSize) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, GrowHeap) \
	(somSelf,ev,memSize))
#ifndef SOMGD_GrowHeap
    #if (defined(_GrowHeap) || defined(__GrowHeap))
        #undef _GrowHeap
        #undef __GrowHeap
        #define SOMGD_GrowHeap 1
    #else
        #define _GrowHeap ODBaseStorageSystem_GrowHeap
    #endif /* _GrowHeap */
#endif /* SOMGD_GrowHeap */

/*
 * New Method: ReleaseContainer
 */
typedef ODBaseStorageSystem*   (SOMLINK * somTD_ODBaseStorageSystem_ReleaseContainer)(ODBaseStorageSystem *somSelf, Environment *ev,
		ODContainer* container);
#define somMD_ODBaseStorageSystem_ReleaseContainer "::ODBaseStorageSystem::ReleaseContainer"
#define ODBaseStorageSystem_ReleaseContainer(somSelf,ev,container) \
    (SOM_Resolve(somSelf, ODBaseStorageSystem, ReleaseContainer) \
	(somSelf,ev,container))
#ifndef SOMGD_ReleaseContainer
    #if (defined(_ReleaseContainer) || defined(__ReleaseContainer))
        #undef _ReleaseContainer
        #undef __ReleaseContainer
        #define SOMGD_ReleaseContainer 1
    #else
        #define _ReleaseContainer ODBaseStorageSystem_ReleaseContainer
    #endif /* _ReleaseContainer */
#endif /* SOMGD_ReleaseContainer */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODBaseStorageSystem_InitObject ODObject_InitObject
#define ODBaseStorageSystem_IsInitialized ODObject_IsInitialized
#define ODBaseStorageSystem_HasExtension ODObject_HasExtension
#define ODBaseStorageSystem_GetExtension ODObject_GetExtension
#define ODBaseStorageSystem_ReleaseExtension ODObject_ReleaseExtension
#define ODBaseStorageSystem_IsEqualTo ODObject_IsEqualTo
#define ODBaseStorageSystem_SubClassResponsibility ODObject_SubClassResponsibility
#define ODBaseStorageSystem_somDefaultInit SOMObject_somDefaultInit
#define ODBaseStorageSystem_somDestruct SOMObject_somDestruct
#define ODBaseStorageSystem_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODBaseStorageSystem_somDefaultAssign SOMObject_somDefaultAssign
#define ODBaseStorageSystem_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODBaseStorageSystem_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODBaseStorageSystem_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODBaseStorageSystem_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODBaseStorageSystem_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODBaseStorageSystem_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODBaseStorageSystem_somFree SOMObject_somFree
#define ODBaseStorageSystem_somGetClass SOMObject_somGetClass
#define ODBaseStorageSystem_somGetClassName SOMObject_somGetClassName
#define ODBaseStorageSystem_somGetSize SOMObject_somGetSize
#define ODBaseStorageSystem_somIsA SOMObject_somIsA
#define ODBaseStorageSystem_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODBaseStorageSystem_somRespondsTo SOMObject_somRespondsTo
#define ODBaseStorageSystem_somDispatch SOMObject_somDispatch
#define ODBaseStorageSystem_somClassDispatch SOMObject_somClassDispatch
#define ODBaseStorageSystem_somCastObj SOMObject_somCastObj
#define ODBaseStorageSystem_somResetObj SOMObject_somResetObj
#define ODBaseStorageSystem_somDispatchV SOMObject_somDispatchV
#define ODBaseStorageSystem_somDispatchL SOMObject_somDispatchL
#define ODBaseStorageSystem_somDispatchA SOMObject_somDispatchA
#define ODBaseStorageSystem_somDispatchD SOMObject_somDispatchD
#define ODBaseStorageSystem_somPrintSelf SOMObject_somPrintSelf
#define ODBaseStorageSystem_somDumpSelf SOMObject_somDumpSelf
#define ODBaseStorageSystem_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODBaseStorageSystem_h */
