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

/*
 * 
 *  Scalar Types
 * 
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODNameSpace_h
#define SOM_ODNameSpace_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 ODNameSpaceClassData (*resolve_ODNameSpaceClassData())
#define ODNameSpaceCClassData (*resolve_ODNameSpaceCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODNameSpace
#define ODNameSpace 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 ODNameSpace
    #define ODNameSpace SOMObject
#endif /* ODNameSpace */
#ifndef ODNameSpaceManager
    #define ODNameSpaceManager SOMObject
#endif /* ODNameSpaceManager */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODStorageUnitView
    #define ODStorageUnitView SOMObject
#endif /* ODStorageUnitView */
#ifndef PlatformFile
    #define PlatformFile SOMObject
#endif /* PlatformFile */

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

#define ODNameSpace_MajorVersion 1
#define ODNameSpace_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODNameSpaceNewClass c
#define ODNameSpaceClassData d
#define ODNameSpaceCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODNameSpace_classObj ODNameSpaceClassData.classObject
#define _ODNameSpace ODNameSpace_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODNameSpaceClassDataStructure {
	SOMClass *classObject;
	somMToken GetName;
	somMToken GetType;
	somMToken GetParent;
	somMToken SetType;
	somMToken Unregister;
	somMToken Exists;
	somMToken WriteToFile;
	somMToken ReadFromFile;
	somMToken WriteToStorage;
	somMToken ReadFromStorage;
	somMToken InitNameSpace;
	somMToken GetHashTable;
	somMToken GetNumEntries;
	somMToken NotifyDying;
}  _ODNameSpaceClassData;
SOMEXTERN struct ODNameSpaceClassDataStructure * SOMLINK resolve_ODNameSpaceClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODNameSpaceCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODNameSpaceCClassData;
SOMEXTERN struct ODNameSpaceCClassDataStructure * SOMLINK resolve_ODNameSpaceCClassData(void);

/*
 * New and Renew macros for ODNameSpace
 */
#define ODNameSpaceNew() \
   (_somNew(_ODNameSpace ? _ODNameSpace : ODNameSpaceNewClass(ODNameSpace_MajorVersion, ODNameSpace_MinorVersion)))
#define ODNameSpaceRenew(buf) \
   (_somRenew(_ODNameSpace ? _ODNameSpace : ODNameSpaceNewClass(ODNameSpace_MajorVersion, ODNameSpace_MinorVersion), buf))

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

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

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

/*
 * New Method: GetName
 */
typedef ODISOStr   (SOMLINK * somTD_ODNameSpace_GetName)(ODNameSpace *somSelf, Environment *ev);
#define somMD_ODNameSpace_GetName "::ODNameSpace::GetName"
#define ODNameSpace_GetName(somSelf,ev) \
    (SOM_Resolve(somSelf, ODNameSpace, GetName) \
	(somSelf,ev))
#ifndef SOMGD_GetName
    #if (defined(_GetName) || defined(__GetName))
        #undef _GetName
        #undef __GetName
        #define SOMGD_GetName 1
    #else
        #define _GetName ODNameSpace_GetName
    #endif /* _GetName */
#endif /* SOMGD_GetName */

/*
 * New Method: GetType
 */
typedef ODNSTypeSpec   (SOMLINK * somTD_ODNameSpace_GetType)(ODNameSpace *somSelf, Environment *ev);
#define somMD_ODNameSpace_GetType "::ODNameSpace::GetType"
#define ODNameSpace_GetType(somSelf,ev) \
    (SOM_Resolve(somSelf, ODNameSpace, GetType) \
	(somSelf,ev))
#ifndef SOMGD_GetType
    #if (defined(_GetType) || defined(__GetType))
        #undef _GetType
        #undef __GetType
        #define SOMGD_GetType 1
    #else
        #define _GetType ODNameSpace_GetType
    #endif /* _GetType */
#endif /* SOMGD_GetType */

/*
 * New Method: GetParent
 */
typedef ODNameSpace*   (SOMLINK * somTD_ODNameSpace_GetParent)(ODNameSpace *somSelf, Environment *ev);
#define somMD_ODNameSpace_GetParent "::ODNameSpace::GetParent"
#define ODNameSpace_GetParent(somSelf,ev) \
    (SOM_Resolve(somSelf, ODNameSpace, GetParent) \
	(somSelf,ev))
#ifndef SOMGD_GetParent
    #if (defined(_GetParent) || defined(__GetParent))
        #undef _GetParent
        #undef __GetParent
        #define SOMGD_GetParent 1
    #else
        #define _GetParent ODNameSpace_GetParent
    #endif /* _GetParent */
#endif /* SOMGD_GetParent */

/*
 * New Method: SetType
 */
typedef void   (SOMLINK * somTD_ODNameSpace_SetType)(ODNameSpace *somSelf, Environment *ev,
		ODNSTypeSpec type);
#define somMD_ODNameSpace_SetType "::ODNameSpace::SetType"
#define ODNameSpace_SetType(somSelf,ev,type) \
    (SOM_Resolve(somSelf, ODNameSpace, SetType) \
	(somSelf,ev,type))
#ifndef SOMGD_SetType
    #if (defined(_SetType) || defined(__SetType))
        #undef _SetType
        #undef __SetType
        #define SOMGD_SetType 1
    #else
        #define _SetType ODNameSpace_SetType
    #endif /* _SetType */
#endif /* SOMGD_SetType */

/*
 * New Method: Unregister
 */
typedef void   (SOMLINK * somTD_ODNameSpace_Unregister)(ODNameSpace *somSelf, Environment *ev,
		ODISOStr key);
#define somMD_ODNameSpace_Unregister "::ODNameSpace::Unregister"
#define ODNameSpace_Unregister(somSelf,ev,key) \
    (SOM_Resolve(somSelf, ODNameSpace, Unregister) \
	(somSelf,ev,key))
#ifndef SOMGD_Unregister
    #if (defined(_Unregister) || defined(__Unregister))
        #undef _Unregister
        #undef __Unregister
        #define SOMGD_Unregister 1
    #else
        #define _Unregister ODNameSpace_Unregister
    #endif /* _Unregister */
#endif /* SOMGD_Unregister */

/*
 * New Method: Exists
 */
typedef ODBoolean   (SOMLINK * somTD_ODNameSpace_Exists)(ODNameSpace *somSelf, Environment *ev,
		ODISOStr key);
#define somMD_ODNameSpace_Exists "::ODNameSpace::Exists"
#define ODNameSpace_Exists(somSelf,ev,key) \
    (SOM_Resolve(somSelf, ODNameSpace, Exists) \
	(somSelf,ev,key))
#ifndef SOMGD_Exists
    #if (defined(_Exists) || defined(__Exists))
        #undef _Exists
        #undef __Exists
        #define SOMGD_Exists 1
    #else
        #define _Exists ODNameSpace_Exists
    #endif /* _Exists */
#endif /* SOMGD_Exists */

/*
 * New Method: WriteToFile
 */
typedef void   (SOMLINK * somTD_ODNameSpace_WriteToFile)(ODNameSpace *somSelf, Environment *ev,
		PlatformFile* file);
#define somMD_ODNameSpace_WriteToFile "::ODNameSpace::WriteToFile"
#define ODNameSpace_WriteToFile(somSelf,ev,file) \
    (SOM_Resolve(somSelf, ODNameSpace, WriteToFile) \
	(somSelf,ev,file))
#ifndef SOMGD_WriteToFile
    #if (defined(_WriteToFile) || defined(__WriteToFile))
        #undef _WriteToFile
        #undef __WriteToFile
        #define SOMGD_WriteToFile 1
    #else
        #define _WriteToFile ODNameSpace_WriteToFile
    #endif /* _WriteToFile */
#endif /* SOMGD_WriteToFile */

/*
 * New Method: ReadFromFile
 */
typedef void   (SOMLINK * somTD_ODNameSpace_ReadFromFile)(ODNameSpace *somSelf, Environment *ev,
		PlatformFile* file);
#define somMD_ODNameSpace_ReadFromFile "::ODNameSpace::ReadFromFile"
#define ODNameSpace_ReadFromFile(somSelf,ev,file) \
    (SOM_Resolve(somSelf, ODNameSpace, ReadFromFile) \
	(somSelf,ev,file))
#ifndef SOMGD_ReadFromFile
    #if (defined(_ReadFromFile) || defined(__ReadFromFile))
        #undef _ReadFromFile
        #undef __ReadFromFile
        #define SOMGD_ReadFromFile 1
    #else
        #define _ReadFromFile ODNameSpace_ReadFromFile
    #endif /* _ReadFromFile */
#endif /* SOMGD_ReadFromFile */

/*
 * New Method: WriteToStorage
 */
typedef void   (SOMLINK * somTD_ODNameSpace_WriteToStorage)(ODNameSpace *somSelf, Environment *ev,
		ODStorageUnitView* view);
#define somMD_ODNameSpace_WriteToStorage "::ODNameSpace::WriteToStorage"
#define ODNameSpace_WriteToStorage(somSelf,ev,view) \
    (SOM_Resolve(somSelf, ODNameSpace, WriteToStorage) \
	(somSelf,ev,view))
#ifndef SOMGD_WriteToStorage
    #if (defined(_WriteToStorage) || defined(__WriteToStorage))
        #undef _WriteToStorage
        #undef __WriteToStorage
        #define SOMGD_WriteToStorage 1
    #else
        #define _WriteToStorage ODNameSpace_WriteToStorage
    #endif /* _WriteToStorage */
#endif /* SOMGD_WriteToStorage */

/*
 * New Method: ReadFromStorage
 */
typedef void   (SOMLINK * somTD_ODNameSpace_ReadFromStorage)(ODNameSpace *somSelf, Environment *ev,
		ODStorageUnitView* view);
#define somMD_ODNameSpace_ReadFromStorage "::ODNameSpace::ReadFromStorage"
#define ODNameSpace_ReadFromStorage(somSelf,ev,view) \
    (SOM_Resolve(somSelf, ODNameSpace, ReadFromStorage) \
	(somSelf,ev,view))
#ifndef SOMGD_ReadFromStorage
    #if (defined(_ReadFromStorage) || defined(__ReadFromStorage))
        #undef _ReadFromStorage
        #undef __ReadFromStorage
        #define SOMGD_ReadFromStorage 1
    #else
        #define _ReadFromStorage ODNameSpace_ReadFromStorage
    #endif /* _ReadFromStorage */
#endif /* SOMGD_ReadFromStorage */

/*
 * New Method: InitNameSpace
 */
typedef void   (SOMLINK * somTD_ODNameSpace_InitNameSpace)(ODNameSpace *somSelf, Environment *ev,
		ODNameSpaceManager* mgr,
		ODNameSpace* parent,
		ODULong numExpectedEntries,
		ODISOStr name);
#define somMD_ODNameSpace_InitNameSpace "::ODNameSpace::InitNameSpace"
#define ODNameSpace_InitNameSpace(somSelf,ev,mgr,parent,numExpectedEntries,name) \
    (SOM_Resolve(somSelf, ODNameSpace, InitNameSpace) \
	(somSelf,ev,mgr,parent,numExpectedEntries,name))
#ifndef SOMGD_InitNameSpace
    #if (defined(_InitNameSpace) || defined(__InitNameSpace))
        #undef _InitNameSpace
        #undef __InitNameSpace
        #define SOMGD_InitNameSpace 1
    #else
        #define _InitNameSpace ODNameSpace_InitNameSpace
    #endif /* _InitNameSpace */
#endif /* SOMGD_InitNameSpace */

/*
 * New Method: GetHashTable
 */
typedef StringHashTable*   (SOMLINK * somTD_ODNameSpace_GetHashTable)(ODNameSpace *somSelf, Environment *ev);
#define somMD_ODNameSpace_GetHashTable "::ODNameSpace::GetHashTable"
#define ODNameSpace_GetHashTable(somSelf,ev) \
    (SOM_Resolve(somSelf, ODNameSpace, GetHashTable) \
	(somSelf,ev))
#ifndef SOMGD_GetHashTable
    #if (defined(_GetHashTable) || defined(__GetHashTable))
        #undef _GetHashTable
        #undef __GetHashTable
        #define SOMGD_GetHashTable 1
    #else
        #define _GetHashTable ODNameSpace_GetHashTable
    #endif /* _GetHashTable */
#endif /* SOMGD_GetHashTable */

/*
 * New Method: GetNumEntries
 */
typedef ODULong   (SOMLINK * somTD_ODNameSpace_GetNumEntries)(ODNameSpace *somSelf, Environment *ev);
#define somMD_ODNameSpace_GetNumEntries "::ODNameSpace::GetNumEntries"
#define ODNameSpace_GetNumEntries(somSelf,ev) \
    (SOM_Resolve(somSelf, ODNameSpace, GetNumEntries) \
	(somSelf,ev))
#ifndef SOMGD_GetNumEntries
    #if (defined(_GetNumEntries) || defined(__GetNumEntries))
        #undef _GetNumEntries
        #undef __GetNumEntries
        #define SOMGD_GetNumEntries 1
    #else
        #define _GetNumEntries ODNameSpace_GetNumEntries
    #endif /* _GetNumEntries */
#endif /* SOMGD_GetNumEntries */

/*
 * New Method: NotifyDying
 */
typedef void   (SOMLINK * somTD_ODNameSpace_NotifyDying)(ODNameSpace *somSelf, Environment *ev,
		ODNameSpace* space);
#define somMD_ODNameSpace_NotifyDying "::ODNameSpace::NotifyDying"
#define ODNameSpace_NotifyDying(somSelf,ev,space) \
    (SOM_Resolve(somSelf, ODNameSpace, NotifyDying) \
	(somSelf,ev,space))
#ifndef SOMGD_NotifyDying
    #if (defined(_NotifyDying) || defined(__NotifyDying))
        #undef _NotifyDying
        #undef __NotifyDying
        #define SOMGD_NotifyDying 1
    #else
        #define _NotifyDying ODNameSpace_NotifyDying
    #endif /* _NotifyDying */
#endif /* SOMGD_NotifyDying */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODNameSpace_InitObject ODObject_InitObject
#define ODNameSpace_IsInitialized ODObject_IsInitialized
#define ODNameSpace_HasExtension ODObject_HasExtension
#define ODNameSpace_GetExtension ODObject_GetExtension
#define ODNameSpace_ReleaseExtension ODObject_ReleaseExtension
#define ODNameSpace_IsEqualTo ODObject_IsEqualTo
#define ODNameSpace_SubClassResponsibility ODObject_SubClassResponsibility
#define ODNameSpace_somDefaultInit SOMObject_somDefaultInit
#define ODNameSpace_somDestruct SOMObject_somDestruct
#define ODNameSpace_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODNameSpace_somDefaultAssign SOMObject_somDefaultAssign
#define ODNameSpace_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODNameSpace_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODNameSpace_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODNameSpace_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODNameSpace_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODNameSpace_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODNameSpace_somFree SOMObject_somFree
#define ODNameSpace_somGetClass SOMObject_somGetClass
#define ODNameSpace_somGetClassName SOMObject_somGetClassName
#define ODNameSpace_somGetSize SOMObject_somGetSize
#define ODNameSpace_somIsA SOMObject_somIsA
#define ODNameSpace_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODNameSpace_somRespondsTo SOMObject_somRespondsTo
#define ODNameSpace_somDispatch SOMObject_somDispatch
#define ODNameSpace_somClassDispatch SOMObject_somClassDispatch
#define ODNameSpace_somCastObj SOMObject_somCastObj
#define ODNameSpace_somResetObj SOMObject_somResetObj
#define ODNameSpace_somDispatchV SOMObject_somDispatchV
#define ODNameSpace_somDispatchL SOMObject_somDispatchL
#define ODNameSpace_somDispatchA SOMObject_somDispatchA
#define ODNameSpace_somDispatchD SOMObject_somDispatchD
#define ODNameSpace_somPrintSelf SOMObject_somPrintSelf
#define ODNameSpace_somDumpSelf SOMObject_somDumpSelf
#define ODNameSpace_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODNameSpace_h */
