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

/*
 *  @(#)46	1.3  src/somk/somcm.idl, somk.cm, som2.1.1 6/20/95 11:22:39
 * 
 *    COMPONENT_NAME: somk
 * 
 *    ORIGINS: 27
 * 
 * 
 *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1994
 *    All Rights Reserved
 *    Licensed Materials - Property of IBM
 *    US Government Users Restricted Rights - Use, duplication or
 *    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 * 
 *   SOMClassMgr: System Object Model class manager
 */


#ifndef SOM_SOMClassMgr_h
#define SOM_SOMClassMgr_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 the class name as an object type
 */
#ifndef SOMClassMgr
#define SOMClassMgr SOMObject
#endif
#include <somobj.h>

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Repository
    #define Repository SOMObject
#endif /* Repository */
typedef
SOMClass** SOMClassMgr_SOMClassArray;
/*
 *  Used for SOM 1.0 binary compatibility
 */

#ifndef _IDL_SEQUENCE_SOMClass_defined
#define _IDL_SEQUENCE_SOMClass_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    SOMClass **_buffer;
} _IDL_SEQUENCE_SOMClass;
#endif /* _IDL_SEQUENCE_SOMClass_defined */ 

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_SOMClassArray
    #ifdef SOMClassArray
        #undef SOMClassArray
        #define SOMTGD_SOMClassArray 1
    #else
        #define SOMClassArray SOMClassMgr_SOMClassArray
    #endif /* SOMClassArray */
#endif /* SOMTGD_SOMClassArray */
#endif /* SOM_DONT_USE_SHORT_NAMES */

#ifndef SOM_DONT_USE_SHORT_NAMES
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */

#define SOMClassMgr_MajorVersion 1
#define SOMClassMgr_MinorVersion 4

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define SOMClassMgrNewClass somcmc
#pragma linkage(somcmc, system)
#define SOMClassMgrClassData somcmd
#define SOMClassMgrCClassData somcmx
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define SOMClassMgr_classObj SOMClassMgrClassData.classObject
#define _SOMClassMgr SOMClassMgr_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK SOMClassMgrNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);
#pragma linkage(SOMClassMgrNewClass, system)

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMClassMgrClassDataStructure {
	SOMClass *classObject;
	somMToken somFindClsInFile;
	somMToken somFindClass;
	somMToken somClassFromId;
	somMToken somRegisterClass;
	somMToken somUnregisterClass;
	somMToken somLocateClassFile;
	somMToken somLoadClassFile;
	somMToken somUnloadClassFile;
	somMToken somGetInitFunction;
	somMToken somMergeInto;
	somMToken somGetRelatedClasses;
	somMToken somSubstituteClass;
	somMToken _get_somInterfaceRepository;
	somMToken _set_somInterfaceRepository;
	somMToken _get_somRegisteredClasses;
	somMToken somBeginPersistentClasses;
	somMToken somEndPersistentClasses;
	somMToken somcmPrivate1;
	somMToken somcmPrivate2;
	somMToken somRegisterClassLibrary;
	somMToken somJoinAffinityGroup;
} SOMDLINK SOMClassMgrClassData;

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct SOMClassMgrCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOMDLINK SOMClassMgrCClassData;

/*
 * New and Renew macros for SOMClassMgr
 */
#define SOMClassMgrNew() \
   (_somNew(_SOMClassMgr ? _SOMClassMgr : SOMClassMgrNewClass(SOMClassMgr_MajorVersion, SOMClassMgr_MinorVersion)))
#define SOMClassMgrRenew(buf) \
   (_somRenew(_SOMClassMgr ? _SOMClassMgr : SOMClassMgrNewClass(SOMClassMgr_MajorVersion, SOMClassMgr_MinorVersion), buf))

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

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

/*
 * Override method: somDumpSelfInt
 */
#define SOMClassMgr_somDumpSelfInt(somSelf,level) \
	SOMObject_somDumpSelfInt(somSelf,level)

/*
 * New Method: somLoadClassFile
 */
typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somLoadClassFile(SOMClassMgr *somSelf, 
		somId classId, 
		long majorVersion, 
		long minorVersion, 
		string file);
#pragma linkage(somTP_SOMClassMgr_somLoadClassFile, system)
typedef somTP_SOMClassMgr_somLoadClassFile *somTD_SOMClassMgr_somLoadClassFile;
#define somMD_SOMClassMgr_somLoadClassFile "::SOMClassMgr::somLoadClassFile"
#define SOMClassMgr_somLoadClassFile(somSelf,classId,majorVersion,minorVersion,file) \
    (SOM_Resolve(somSelf, SOMClassMgr, somLoadClassFile) \
	(somSelf,classId,majorVersion,minorVersion,file))
#ifndef SOMGD_somLoadClassFile
    #if (defined(_somLoadClassFile) || defined(__somLoadClassFile))
        #undef _somLoadClassFile
        #undef __somLoadClassFile
        #define SOMGD_somLoadClassFile 1
    #else
        #define _somLoadClassFile SOMClassMgr_somLoadClassFile
    #endif /* _somLoadClassFile */
#endif /* SOMGD_somLoadClassFile */

/*
 * New Method: somLocateClassFile
 */
typedef string   SOMLINK somTP_SOMClassMgr_somLocateClassFile(SOMClassMgr *somSelf, 
		somId classId, 
		long majorVersion, 
		long minorVersion);
#pragma linkage(somTP_SOMClassMgr_somLocateClassFile, system)
typedef somTP_SOMClassMgr_somLocateClassFile *somTD_SOMClassMgr_somLocateClassFile;
#define somMD_SOMClassMgr_somLocateClassFile "::SOMClassMgr::somLocateClassFile"
#define SOMClassMgr_somLocateClassFile(somSelf,classId,majorVersion,minorVersion) \
    (SOM_Resolve(somSelf, SOMClassMgr, somLocateClassFile) \
	(somSelf,classId,majorVersion,minorVersion))
#ifndef SOMGD_somLocateClassFile
    #if (defined(_somLocateClassFile) || defined(__somLocateClassFile))
        #undef _somLocateClassFile
        #undef __somLocateClassFile
        #define SOMGD_somLocateClassFile 1
    #else
        #define _somLocateClassFile SOMClassMgr_somLocateClassFile
    #endif /* _somLocateClassFile */
#endif /* SOMGD_somLocateClassFile */

/*
 * New Method: somRegisterClass
 */
typedef void   SOMLINK somTP_SOMClassMgr_somRegisterClass(SOMClassMgr *somSelf, 
		SOMClass* classObj);
#pragma linkage(somTP_SOMClassMgr_somRegisterClass, system)
typedef somTP_SOMClassMgr_somRegisterClass *somTD_SOMClassMgr_somRegisterClass;
#define somMD_SOMClassMgr_somRegisterClass "::SOMClassMgr::somRegisterClass"
#define SOMClassMgr_somRegisterClass(somSelf,classObj) \
    (SOM_Resolve(somSelf, SOMClassMgr, somRegisterClass) \
	(somSelf,classObj))
#ifndef SOMGD_somRegisterClass
    #if (defined(_somRegisterClass) || defined(__somRegisterClass))
        #undef _somRegisterClass
        #undef __somRegisterClass
        #define SOMGD_somRegisterClass 1
    #else
        #define _somRegisterClass SOMClassMgr_somRegisterClass
    #endif /* _somRegisterClass */
#endif /* SOMGD_somRegisterClass */

/*
 * New Method: somRegisterClassLibrary
 */
typedef void   SOMLINK somTP_SOMClassMgr_somRegisterClassLibrary(SOMClassMgr *somSelf, 
		string libraryName, 
		somMethodPtr libraryInitRtn);
#pragma linkage(somTP_SOMClassMgr_somRegisterClassLibrary, system)
typedef somTP_SOMClassMgr_somRegisterClassLibrary *somTD_SOMClassMgr_somRegisterClassLibrary;
#define somMD_SOMClassMgr_somRegisterClassLibrary "::SOMClassMgr::somRegisterClassLibrary"
#define SOMClassMgr_somRegisterClassLibrary(somSelf,libraryName,libraryInitRtn) \
    (SOM_Resolve(somSelf, SOMClassMgr, somRegisterClassLibrary) \
	(somSelf,libraryName,libraryInitRtn))
#ifndef SOMGD_somRegisterClassLibrary
    #if (defined(_somRegisterClassLibrary) || defined(__somRegisterClassLibrary))
        #undef _somRegisterClassLibrary
        #undef __somRegisterClassLibrary
        #define SOMGD_somRegisterClassLibrary 1
    #else
        #define _somRegisterClassLibrary SOMClassMgr_somRegisterClassLibrary
    #endif /* _somRegisterClassLibrary */
#endif /* SOMGD_somRegisterClassLibrary */

/*
 * New Method: somUnloadClassFile
 */
typedef long   SOMLINK somTP_SOMClassMgr_somUnloadClassFile(SOMClassMgr *somSelf, 
		SOMClass* classObj);
#pragma linkage(somTP_SOMClassMgr_somUnloadClassFile, system)
typedef somTP_SOMClassMgr_somUnloadClassFile *somTD_SOMClassMgr_somUnloadClassFile;
#define somMD_SOMClassMgr_somUnloadClassFile "::SOMClassMgr::somUnloadClassFile"
#define SOMClassMgr_somUnloadClassFile(somSelf,classObj) \
    (SOM_Resolve(somSelf, SOMClassMgr, somUnloadClassFile) \
	(somSelf,classObj))
#ifndef SOMGD_somUnloadClassFile
    #if (defined(_somUnloadClassFile) || defined(__somUnloadClassFile))
        #undef _somUnloadClassFile
        #undef __somUnloadClassFile
        #define SOMGD_somUnloadClassFile 1
    #else
        #define _somUnloadClassFile SOMClassMgr_somUnloadClassFile
    #endif /* _somUnloadClassFile */
#endif /* SOMGD_somUnloadClassFile */

/*
 * New Method: somUnregisterClass
 */
typedef long   SOMLINK somTP_SOMClassMgr_somUnregisterClass(SOMClassMgr *somSelf, 
		SOMClass* classObj);
#pragma linkage(somTP_SOMClassMgr_somUnregisterClass, system)
typedef somTP_SOMClassMgr_somUnregisterClass *somTD_SOMClassMgr_somUnregisterClass;
#define somMD_SOMClassMgr_somUnregisterClass "::SOMClassMgr::somUnregisterClass"
#define SOMClassMgr_somUnregisterClass(somSelf,classObj) \
    (SOM_Resolve(somSelf, SOMClassMgr, somUnregisterClass) \
	(somSelf,classObj))
#ifndef SOMGD_somUnregisterClass
    #if (defined(_somUnregisterClass) || defined(__somUnregisterClass))
        #undef _somUnregisterClass
        #undef __somUnregisterClass
        #define SOMGD_somUnregisterClass 1
    #else
        #define _somUnregisterClass SOMClassMgr_somUnregisterClass
    #endif /* _somUnregisterClass */
#endif /* SOMGD_somUnregisterClass */

/*
 * New Method: somBeginPersistentClasses
 */
typedef void   SOMLINK somTP_SOMClassMgr_somBeginPersistentClasses(SOMClassMgr *somSelf);
#pragma linkage(somTP_SOMClassMgr_somBeginPersistentClasses, system)
typedef somTP_SOMClassMgr_somBeginPersistentClasses *somTD_SOMClassMgr_somBeginPersistentClasses;
#define somMD_SOMClassMgr_somBeginPersistentClasses "::SOMClassMgr::somBeginPersistentClasses"
#define SOMClassMgr_somBeginPersistentClasses(somSelf) \
    (SOM_Resolve(somSelf, SOMClassMgr, somBeginPersistentClasses) \
	(somSelf))
#ifndef SOMGD_somBeginPersistentClasses
    #if (defined(_somBeginPersistentClasses) || defined(__somBeginPersistentClasses))
        #undef _somBeginPersistentClasses
        #undef __somBeginPersistentClasses
        #define SOMGD_somBeginPersistentClasses 1
    #else
        #define _somBeginPersistentClasses SOMClassMgr_somBeginPersistentClasses
    #endif /* _somBeginPersistentClasses */
#endif /* SOMGD_somBeginPersistentClasses */

/*
 * New Method: somEndPersistentClasses
 */
typedef void   SOMLINK somTP_SOMClassMgr_somEndPersistentClasses(SOMClassMgr *somSelf);
#pragma linkage(somTP_SOMClassMgr_somEndPersistentClasses, system)
typedef somTP_SOMClassMgr_somEndPersistentClasses *somTD_SOMClassMgr_somEndPersistentClasses;
#define somMD_SOMClassMgr_somEndPersistentClasses "::SOMClassMgr::somEndPersistentClasses"
#define SOMClassMgr_somEndPersistentClasses(somSelf) \
    (SOM_Resolve(somSelf, SOMClassMgr, somEndPersistentClasses) \
	(somSelf))
#ifndef SOMGD_somEndPersistentClasses
    #if (defined(_somEndPersistentClasses) || defined(__somEndPersistentClasses))
        #undef _somEndPersistentClasses
        #undef __somEndPersistentClasses
        #define SOMGD_somEndPersistentClasses 1
    #else
        #define _somEndPersistentClasses SOMClassMgr_somEndPersistentClasses
    #endif /* _somEndPersistentClasses */
#endif /* SOMGD_somEndPersistentClasses */

/*
 * New Method: somJoinAffinityGroup
 */
typedef boolean   SOMLINK somTP_SOMClassMgr_somJoinAffinityGroup(SOMClassMgr *somSelf, 
		SOMClass* newClass, 
		SOMClass* affClass);
#pragma linkage(somTP_SOMClassMgr_somJoinAffinityGroup, system)
typedef somTP_SOMClassMgr_somJoinAffinityGroup *somTD_SOMClassMgr_somJoinAffinityGroup;
#define somMD_SOMClassMgr_somJoinAffinityGroup "::SOMClassMgr::somJoinAffinityGroup"
#define SOMClassMgr_somJoinAffinityGroup(somSelf,newClass,affClass) \
    (SOM_Resolve(somSelf, SOMClassMgr, somJoinAffinityGroup) \
	(somSelf,newClass,affClass))
#ifndef SOMGD_somJoinAffinityGroup
    #if (defined(_somJoinAffinityGroup) || defined(__somJoinAffinityGroup))
        #undef _somJoinAffinityGroup
        #undef __somJoinAffinityGroup
        #define SOMGD_somJoinAffinityGroup 1
    #else
        #define _somJoinAffinityGroup SOMClassMgr_somJoinAffinityGroup
    #endif /* _somJoinAffinityGroup */
#endif /* SOMGD_somJoinAffinityGroup */

/*
 * New Method: somGetInitFunction
 */
typedef string   SOMLINK somTP_SOMClassMgr_somGetInitFunction(SOMClassMgr *somSelf);
#pragma linkage(somTP_SOMClassMgr_somGetInitFunction, system)
typedef somTP_SOMClassMgr_somGetInitFunction *somTD_SOMClassMgr_somGetInitFunction;
#define somMD_SOMClassMgr_somGetInitFunction "::SOMClassMgr::somGetInitFunction"
#define SOMClassMgr_somGetInitFunction(somSelf) \
    (SOM_Resolve(somSelf, SOMClassMgr, somGetInitFunction) \
	(somSelf))
#ifndef SOMGD_somGetInitFunction
    #if (defined(_somGetInitFunction) || defined(__somGetInitFunction))
        #undef _somGetInitFunction
        #undef __somGetInitFunction
        #define SOMGD_somGetInitFunction 1
    #else
        #define _somGetInitFunction SOMClassMgr_somGetInitFunction
    #endif /* _somGetInitFunction */
#endif /* SOMGD_somGetInitFunction */

/*
 * New Method: _get_somInterfaceRepository
 */
typedef Repository*   SOMLINK somTP_SOMClassMgr__get_somInterfaceRepository(SOMClassMgr *somSelf);
#pragma linkage(somTP_SOMClassMgr__get_somInterfaceRepository, system)
typedef somTP_SOMClassMgr__get_somInterfaceRepository *somTD_SOMClassMgr__get_somInterfaceRepository;
#define somMD_SOMClassMgr__get_somInterfaceRepository "::SOMClassMgr::somInterfaceRepository"
#define SOMClassMgr__get_somInterfaceRepository(somSelf) \
    (SOM_Resolve(somSelf, SOMClassMgr, _get_somInterfaceRepository) \
	(somSelf))
#ifndef SOMGD_get_somInterfaceRepository
    #if (defined(_get_somInterfaceRepository) || defined(__get_somInterfaceRepository))
        #undef _get_somInterfaceRepository
        #undef __get_somInterfaceRepository
        #define SOMGD_get_somInterfaceRepository 1
    #else
        #define __get_somInterfaceRepository SOMClassMgr__get_somInterfaceRepository
    #endif /* __get_somInterfaceRepository */
#endif /* SOMGD_get_somInterfaceRepository */

/*
 * New Method: _set_somInterfaceRepository
 */
typedef void   SOMLINK somTP_SOMClassMgr__set_somInterfaceRepository(SOMClassMgr *somSelf, 
		Repository* somInterfaceRepository);
#pragma linkage(somTP_SOMClassMgr__set_somInterfaceRepository, system)
typedef somTP_SOMClassMgr__set_somInterfaceRepository *somTD_SOMClassMgr__set_somInterfaceRepository;
#define somMD_SOMClassMgr__set_somInterfaceRepository "::SOMClassMgr::somInterfaceRepository"
#define SOMClassMgr__set_somInterfaceRepository(somSelf,somInterfaceRepository) \
    (SOM_Resolve(somSelf, SOMClassMgr, _set_somInterfaceRepository) \
	(somSelf,somInterfaceRepository))
#ifndef SOMGD_set_somInterfaceRepository
    #if (defined(_set_somInterfaceRepository) || defined(__set_somInterfaceRepository))
        #undef _set_somInterfaceRepository
        #undef __set_somInterfaceRepository
        #define SOMGD_set_somInterfaceRepository 1
    #else
        #define __set_somInterfaceRepository SOMClassMgr__set_somInterfaceRepository
    #endif /* __set_somInterfaceRepository */
#endif /* SOMGD_set_somInterfaceRepository */

/*
 * New Method: _get_somRegisteredClasses
 */
typedef _IDL_SEQUENCE_SOMClass   SOMLINK somTP_SOMClassMgr__get_somRegisteredClasses(SOMClassMgr *somSelf);
#pragma linkage(somTP_SOMClassMgr__get_somRegisteredClasses, system)
typedef somTP_SOMClassMgr__get_somRegisteredClasses *somTD_SOMClassMgr__get_somRegisteredClasses;
#define somMD_SOMClassMgr__get_somRegisteredClasses "::SOMClassMgr::somRegisteredClasses"
#define SOMClassMgr__get_somRegisteredClasses(somSelf) \
    (SOM_Resolve(somSelf, SOMClassMgr, _get_somRegisteredClasses) \
	(somSelf))
#ifndef SOMGD_get_somRegisteredClasses
    #if (defined(_get_somRegisteredClasses) || defined(__get_somRegisteredClasses))
        #undef _get_somRegisteredClasses
        #undef __get_somRegisteredClasses
        #define SOMGD_get_somRegisteredClasses 1
    #else
        #define __get_somRegisteredClasses SOMClassMgr__get_somRegisteredClasses
    #endif /* __get_somRegisteredClasses */
#endif /* SOMGD_get_somRegisteredClasses */

/*
 * New Method: somGetRelatedClasses
 */
typedef SOMClassMgr_SOMClassArray   SOMLINK somTP_SOMClassMgr_somGetRelatedClasses(SOMClassMgr *somSelf, 
		SOMClass* classObj);
#pragma linkage(somTP_SOMClassMgr_somGetRelatedClasses, system)
typedef somTP_SOMClassMgr_somGetRelatedClasses *somTD_SOMClassMgr_somGetRelatedClasses;
#define somMD_SOMClassMgr_somGetRelatedClasses "::SOMClassMgr::somGetRelatedClasses"
#define SOMClassMgr_somGetRelatedClasses(somSelf,classObj) \
    (SOM_Resolve(somSelf, SOMClassMgr, somGetRelatedClasses) \
	(somSelf,classObj))
#ifndef SOMGD_somGetRelatedClasses
    #if (defined(_somGetRelatedClasses) || defined(__somGetRelatedClasses))
        #undef _somGetRelatedClasses
        #undef __somGetRelatedClasses
        #define SOMGD_somGetRelatedClasses 1
    #else
        #define _somGetRelatedClasses SOMClassMgr_somGetRelatedClasses
    #endif /* _somGetRelatedClasses */
#endif /* SOMGD_somGetRelatedClasses */

/*
 * New Method: somClassFromId
 */
typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somClassFromId(SOMClassMgr *somSelf, 
		somId classId);
#pragma linkage(somTP_SOMClassMgr_somClassFromId, system)
typedef somTP_SOMClassMgr_somClassFromId *somTD_SOMClassMgr_somClassFromId;
#define somMD_SOMClassMgr_somClassFromId "::SOMClassMgr::somClassFromId"
#define SOMClassMgr_somClassFromId(somSelf,classId) \
    (SOM_Resolve(somSelf, SOMClassMgr, somClassFromId) \
	(somSelf,classId))
#ifndef SOMGD_somClassFromId
    #if (defined(_somClassFromId) || defined(__somClassFromId))
        #undef _somClassFromId
        #undef __somClassFromId
        #define SOMGD_somClassFromId 1
    #else
        #define _somClassFromId SOMClassMgr_somClassFromId
    #endif /* _somClassFromId */
#endif /* SOMGD_somClassFromId */

/*
 * New Method: somFindClass
 */
typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somFindClass(SOMClassMgr *somSelf, 
		somId classId, 
		long majorVersion, 
		long minorVersion);
#pragma linkage(somTP_SOMClassMgr_somFindClass, system)
typedef somTP_SOMClassMgr_somFindClass *somTD_SOMClassMgr_somFindClass;
#define somMD_SOMClassMgr_somFindClass "::SOMClassMgr::somFindClass"
#define SOMClassMgr_somFindClass(somSelf,classId,majorVersion,minorVersion) \
    (SOM_Resolve(somSelf, SOMClassMgr, somFindClass) \
	(somSelf,classId,majorVersion,minorVersion))
#ifndef SOMGD_somFindClass
    #if (defined(_somFindClass) || defined(__somFindClass))
        #undef _somFindClass
        #undef __somFindClass
        #define SOMGD_somFindClass 1
    #else
        #define _somFindClass SOMClassMgr_somFindClass
    #endif /* _somFindClass */
#endif /* SOMGD_somFindClass */

/*
 * New Method: somFindClsInFile
 */
typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somFindClsInFile(SOMClassMgr *somSelf, 
		somId classId, 
		long majorVersion, 
		long minorVersion, 
		string file);
#pragma linkage(somTP_SOMClassMgr_somFindClsInFile, system)
typedef somTP_SOMClassMgr_somFindClsInFile *somTD_SOMClassMgr_somFindClsInFile;
#define somMD_SOMClassMgr_somFindClsInFile "::SOMClassMgr::somFindClsInFile"
#define SOMClassMgr_somFindClsInFile(somSelf,classId,majorVersion,minorVersion,file) \
    (SOM_Resolve(somSelf, SOMClassMgr, somFindClsInFile) \
	(somSelf,classId,majorVersion,minorVersion,file))
#ifndef SOMGD_somFindClsInFile
    #if (defined(_somFindClsInFile) || defined(__somFindClsInFile))
        #undef _somFindClsInFile
        #undef __somFindClsInFile
        #define SOMGD_somFindClsInFile 1
    #else
        #define _somFindClsInFile SOMClassMgr_somFindClsInFile
    #endif /* _somFindClsInFile */
#endif /* SOMGD_somFindClsInFile */

/*
 * New Method: somMergeInto
 */
typedef void   SOMLINK somTP_SOMClassMgr_somMergeInto(SOMClassMgr *somSelf, 
		SOMObject* targetObj);
#pragma linkage(somTP_SOMClassMgr_somMergeInto, system)
typedef somTP_SOMClassMgr_somMergeInto *somTD_SOMClassMgr_somMergeInto;
#define somMD_SOMClassMgr_somMergeInto "::SOMClassMgr::somMergeInto"
#define SOMClassMgr_somMergeInto(somSelf,targetObj) \
    (SOM_Resolve(somSelf, SOMClassMgr, somMergeInto) \
	(somSelf,targetObj))
#ifndef SOMGD_somMergeInto
    #if (defined(_somMergeInto) || defined(__somMergeInto))
        #undef _somMergeInto
        #undef __somMergeInto
        #define SOMGD_somMergeInto 1
    #else
        #define _somMergeInto SOMClassMgr_somMergeInto
    #endif /* _somMergeInto */
#endif /* SOMGD_somMergeInto */

/*
 * New Method: somSubstituteClass
 */
typedef long   SOMLINK somTP_SOMClassMgr_somSubstituteClass(SOMClassMgr *somSelf, 
		string origClassName, 
		string newClassName);
#pragma linkage(somTP_SOMClassMgr_somSubstituteClass, system)
typedef somTP_SOMClassMgr_somSubstituteClass *somTD_SOMClassMgr_somSubstituteClass;
#define somMD_SOMClassMgr_somSubstituteClass "::SOMClassMgr::somSubstituteClass"
#define SOMClassMgr_somSubstituteClass(somSelf,origClassName,newClassName) \
    (SOM_Resolve(somSelf, SOMClassMgr, somSubstituteClass) \
	(somSelf,origClassName,newClassName))
#ifndef SOMGD_somSubstituteClass
    #if (defined(_somSubstituteClass) || defined(__somSubstituteClass))
        #undef _somSubstituteClass
        #undef __somSubstituteClass
        #define SOMGD_somSubstituteClass 1
    #else
        #define _somSubstituteClass SOMClassMgr_somSubstituteClass
    #endif /* _somSubstituteClass */
#endif /* SOMGD_somSubstituteClass */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define SOMClassMgr_somDefaultInit SOMObject_somDefaultInit
#define SOMClassMgr_somDestruct SOMObject_somDestruct
#define SOMClassMgr_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define SOMClassMgr_somDefaultAssign SOMObject_somDefaultAssign
#define SOMClassMgr_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define SOMClassMgr_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define SOMClassMgr_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define SOMClassMgr_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define SOMClassMgr_somDefaultVAssign SOMObject_somDefaultVAssign
#define SOMClassMgr_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define SOMClassMgr_somFree SOMObject_somFree
#define SOMClassMgr_somGetClass SOMObject_somGetClass
#define SOMClassMgr_somGetClassName SOMObject_somGetClassName
#define SOMClassMgr_somGetSize SOMObject_somGetSize
#define SOMClassMgr_somIsA SOMObject_somIsA
#define SOMClassMgr_somIsInstanceOf SOMObject_somIsInstanceOf
#define SOMClassMgr_somRespondsTo SOMObject_somRespondsTo
#define SOMClassMgr_somDispatch SOMObject_somDispatch
#define SOMClassMgr_somClassDispatch SOMObject_somClassDispatch
#define SOMClassMgr_somCastObj SOMObject_somCastObj
#define SOMClassMgr_somResetObj SOMObject_somResetObj
#define SOMClassMgr_somPrintSelf SOMObject_somPrintSelf
#define SOMClassMgr_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMClassMgr_h */
