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

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


#ifndef SOM_ODBaseNameSpaceManager_h
#define SOM_ODBaseNameSpaceManager_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 ODBaseNameSpaceManagerClassData (*resolve_ODBaseNameSpaceManagerClassData())
#define ODBaseNameSpaceManagerCClassData (*resolve_ODBaseNameSpaceManagerCClassData())

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

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

#define ODBaseNameSpaceManager_MajorVersion 1
#define ODBaseNameSpaceManager_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODBaseNameSpaceManagerNewClass c
#define ODBaseNameSpaceManagerClassData d
#define ODBaseNameSpaceManagerCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODBaseNameSpaceManager_classObj ODBaseNameSpaceManagerClassData.classObject
#define _ODBaseNameSpaceManager ODBaseNameSpaceManager_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODBaseNameSpaceManagerClassDataStructure {
	SOMClass *classObject;
	somMToken CreateNameSpace;
	somMToken DeleteNameSpace;
	somMToken HasNameSpace;
	somMToken InitBaseNameSpaceManager;
}  _ODBaseNameSpaceManagerClassData;
SOMEXTERN struct ODBaseNameSpaceManagerClassDataStructure * SOMLINK resolve_ODBaseNameSpaceManagerClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODBaseNameSpaceManagerCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODBaseNameSpaceManagerCClassData;
SOMEXTERN struct ODBaseNameSpaceManagerCClassDataStructure * SOMLINK resolve_ODBaseNameSpaceManagerCClassData(void);

/*
 * New and Renew macros for ODBaseNameSpaceManager
 */
#define ODBaseNameSpaceManagerNew() \
   (_somNew(_ODBaseNameSpaceManager ? _ODBaseNameSpaceManager : ODBaseNameSpaceManagerNewClass(ODBaseNameSpaceManager_MajorVersion, ODBaseNameSpaceManager_MinorVersion)))
#define ODBaseNameSpaceManagerRenew(buf) \
   (_somRenew(_ODBaseNameSpaceManager ? _ODBaseNameSpaceManager : ODBaseNameSpaceManagerNewClass(ODBaseNameSpaceManager_MajorVersion, ODBaseNameSpaceManager_MinorVersion), buf))

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

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

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

/*
 * New Method: CreateNameSpace
 */
typedef ODNameSpace*   (SOMLINK * somTD_ODBaseNameSpaceManager_CreateNameSpace)(ODBaseNameSpaceManager *somSelf, Environment *ev,
		ODISOStr spaceName,
		ODNameSpace* inheritsFrom,
		ODULong numExpectedEntries,
		ODNSTypeSpec type);
#define somMD_ODBaseNameSpaceManager_CreateNameSpace "::ODBaseNameSpaceManager::CreateNameSpace"
#define ODBaseNameSpaceManager_CreateNameSpace(somSelf,ev,spaceName,inheritsFrom,numExpectedEntries,type) \
    (SOM_Resolve(somSelf, ODBaseNameSpaceManager, CreateNameSpace) \
	(somSelf,ev,spaceName,inheritsFrom,numExpectedEntries,type))
#ifndef SOMGD_CreateNameSpace
    #if (defined(_CreateNameSpace) || defined(__CreateNameSpace))
        #undef _CreateNameSpace
        #undef __CreateNameSpace
        #define SOMGD_CreateNameSpace 1
    #else
        #define _CreateNameSpace ODBaseNameSpaceManager_CreateNameSpace
    #endif /* _CreateNameSpace */
#endif /* SOMGD_CreateNameSpace */

/*
 * New Method: DeleteNameSpace
 */
typedef void   (SOMLINK * somTD_ODBaseNameSpaceManager_DeleteNameSpace)(ODBaseNameSpaceManager *somSelf, Environment *ev,
		ODNameSpace* theNameSpace);
#define somMD_ODBaseNameSpaceManager_DeleteNameSpace "::ODBaseNameSpaceManager::DeleteNameSpace"
#define ODBaseNameSpaceManager_DeleteNameSpace(somSelf,ev,theNameSpace) \
    (SOM_Resolve(somSelf, ODBaseNameSpaceManager, DeleteNameSpace) \
	(somSelf,ev,theNameSpace))
#ifndef SOMGD_DeleteNameSpace
    #if (defined(_DeleteNameSpace) || defined(__DeleteNameSpace))
        #undef _DeleteNameSpace
        #undef __DeleteNameSpace
        #define SOMGD_DeleteNameSpace 1
    #else
        #define _DeleteNameSpace ODBaseNameSpaceManager_DeleteNameSpace
    #endif /* _DeleteNameSpace */
#endif /* SOMGD_DeleteNameSpace */

/*
 * New Method: HasNameSpace
 */
typedef ODNameSpace*   (SOMLINK * somTD_ODBaseNameSpaceManager_HasNameSpace)(ODBaseNameSpaceManager *somSelf, Environment *ev,
		ODISOStr spaceName);
#define somMD_ODBaseNameSpaceManager_HasNameSpace "::ODBaseNameSpaceManager::HasNameSpace"
#define ODBaseNameSpaceManager_HasNameSpace(somSelf,ev,spaceName) \
    (SOM_Resolve(somSelf, ODBaseNameSpaceManager, HasNameSpace) \
	(somSelf,ev,spaceName))
#ifndef SOMGD_HasNameSpace
    #if (defined(_HasNameSpace) || defined(__HasNameSpace))
        #undef _HasNameSpace
        #undef __HasNameSpace
        #define SOMGD_HasNameSpace 1
    #else
        #define _HasNameSpace ODBaseNameSpaceManager_HasNameSpace
    #endif /* _HasNameSpace */
#endif /* SOMGD_HasNameSpace */

/*
 * New Method: InitBaseNameSpaceManager
 */
typedef void   (SOMLINK * somTD_ODBaseNameSpaceManager_InitBaseNameSpaceManager)(ODBaseNameSpaceManager *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODBaseNameSpaceManager_InitBaseNameSpaceManager "::ODBaseNameSpaceManager::InitBaseNameSpaceManager"
#define ODBaseNameSpaceManager_InitBaseNameSpaceManager(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODBaseNameSpaceManager, InitBaseNameSpaceManager) \
	(somSelf,ev,session))
#ifndef SOMGD_InitBaseNameSpaceManager
    #if (defined(_InitBaseNameSpaceManager) || defined(__InitBaseNameSpaceManager))
        #undef _InitBaseNameSpaceManager
        #undef __InitBaseNameSpaceManager
        #define SOMGD_InitBaseNameSpaceManager 1
    #else
        #define _InitBaseNameSpaceManager ODBaseNameSpaceManager_InitBaseNameSpaceManager
    #endif /* _InitBaseNameSpaceManager */
#endif /* SOMGD_InitBaseNameSpaceManager */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODBaseNameSpaceManager_InitObject ODObject_InitObject
#define ODBaseNameSpaceManager_IsInitialized ODObject_IsInitialized
#define ODBaseNameSpaceManager_HasExtension ODObject_HasExtension
#define ODBaseNameSpaceManager_GetExtension ODObject_GetExtension
#define ODBaseNameSpaceManager_ReleaseExtension ODObject_ReleaseExtension
#define ODBaseNameSpaceManager_IsEqualTo ODObject_IsEqualTo
#define ODBaseNameSpaceManager_SubClassResponsibility ODObject_SubClassResponsibility
#define ODBaseNameSpaceManager_somDefaultInit SOMObject_somDefaultInit
#define ODBaseNameSpaceManager_somDestruct SOMObject_somDestruct
#define ODBaseNameSpaceManager_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODBaseNameSpaceManager_somDefaultAssign SOMObject_somDefaultAssign
#define ODBaseNameSpaceManager_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODBaseNameSpaceManager_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODBaseNameSpaceManager_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODBaseNameSpaceManager_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODBaseNameSpaceManager_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODBaseNameSpaceManager_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODBaseNameSpaceManager_somFree SOMObject_somFree
#define ODBaseNameSpaceManager_somGetClass SOMObject_somGetClass
#define ODBaseNameSpaceManager_somGetClassName SOMObject_somGetClassName
#define ODBaseNameSpaceManager_somGetSize SOMObject_somGetSize
#define ODBaseNameSpaceManager_somIsA SOMObject_somIsA
#define ODBaseNameSpaceManager_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODBaseNameSpaceManager_somRespondsTo SOMObject_somRespondsTo
#define ODBaseNameSpaceManager_somDispatch SOMObject_somDispatch
#define ODBaseNameSpaceManager_somClassDispatch SOMObject_somClassDispatch
#define ODBaseNameSpaceManager_somCastObj SOMObject_somCastObj
#define ODBaseNameSpaceManager_somResetObj SOMObject_somResetObj
#define ODBaseNameSpaceManager_somDispatchV SOMObject_somDispatchV
#define ODBaseNameSpaceManager_somDispatchL SOMObject_somDispatchL
#define ODBaseNameSpaceManager_somDispatchA SOMObject_somDispatchA
#define ODBaseNameSpaceManager_somDispatchD SOMObject_somDispatchD
#define ODBaseNameSpaceManager_somPrintSelf SOMObject_somPrintSelf
#define ODBaseNameSpaceManager_somDumpSelf SOMObject_somDumpSelf
#define ODBaseNameSpaceManager_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODBaseNameSpaceManager_h */
