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

/*
 * 
 *    COMPONENT_NAME: somd
 * 
 *    ORIGINS: 27
 * 
 * 
 *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,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.
 * 
 *    IDL interface spec for DSOM Distributed Object Manager.
 * 
 * 
 *    This is a subclass of the abstract ObjectMgr class.
 *    All ObjectMgr methods are implemented with DSOM calls.
 */


#ifndef SOM_SOMDObjectMgr_h
#define SOM_SOMDObjectMgr_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 SOMDObjectMgrClassData (*resolve_SOMDObjectMgrClassData())
#define SOMDObjectMgrCClassData (*resolve_SOMDObjectMgrCClassData())

/*
 * Define the class name as an object type
 */
#ifndef SOMDObjectMgr
#define SOMDObjectMgr SOMObject
#endif
#include <om.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Container
    #define Container SOMObject
#endif /* Container */
#ifndef SOMDServer
    #define SOMDServer SOMObject
#endif /* SOMDServer */
#ifndef _IDL_SEQUENCE_SOMDServer_defined
#define _IDL_SEQUENCE_SOMDServer_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    SOMDServer **_buffer;
} _IDL_SEQUENCE_SOMDServer;
#endif /* _IDL_SEQUENCE_SOMDServer_defined */ 

#ifndef SOM_DONT_USE_SHORT_NAMES
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

/*
 * Passthru lines: File: "C.h", "after"
 */

#ifdef SOM_STRICT_IDL
#define SOMD_ObjectMgr (*resolve_SOMD_ObjectMgr())
SOMEXTERN SOMDObjectMgr * resolve_SOMLINK SOMD_ObjectMgr(void);
#else
#define SOMD_ObjectMgr (*resolve_SOMD_ObjectMgr())
SOMEXTERN SOMDObjectMgr ** SOMLINK resolve_SOMD_ObjectMgr(void);
#endif /* SOM_STRICT_IDL */

#include <somdserv.h>


#define SOMDObjectMgr_MajorVersion 2
#define SOMDObjectMgr_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define SOMDObjectMgrNewClass c
#define SOMDObjectMgrClassData d
#define SOMDObjectMgrCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define SOMDObjectMgr_classObj SOMDObjectMgrClassData.classObject
#define _SOMDObjectMgr SOMDObjectMgr_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMDObjectMgrClassDataStructure {
	SOMClass *classObject;
	somMToken somdFindServer;
	somMToken somdFindServerByName;
	somMToken somdFindServersByClass;
	somMToken somdFindAnyServerByClass;
	somMToken _get_somd21somFree;
	somMToken _set_somd21somFree;
}  _SOMDObjectMgrClassData;
SOMEXTERN struct SOMDObjectMgrClassDataStructure * SOMLINK resolve_SOMDObjectMgrClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct SOMDObjectMgrCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _SOMDObjectMgrCClassData;
SOMEXTERN struct SOMDObjectMgrCClassDataStructure * SOMLINK resolve_SOMDObjectMgrCClassData(void);

/*
 * New and Renew macros for SOMDObjectMgr
 */
#define SOMDObjectMgrNew() \
   (_somNew(_SOMDObjectMgr ? _SOMDObjectMgr : SOMDObjectMgrNewClass(SOMDObjectMgr_MajorVersion, SOMDObjectMgr_MinorVersion)))
#define SOMDObjectMgrRenew(buf) \
   (_somRenew(_SOMDObjectMgr ? _SOMDObjectMgr : SOMDObjectMgrNewClass(SOMDObjectMgr_MajorVersion, SOMDObjectMgr_MinorVersion), buf))

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

/*
 * Override method: somdNewObject
 */
#define SOMDObjectMgr_somdNewObject(somSelf,ev,objclass,hints) \
	ObjectMgr_somdNewObject(somSelf,ev,objclass,hints)

/*
 * Override method: somdGetIdFromObject
 */
#define SOMDObjectMgr_somdGetIdFromObject(somSelf,ev,obj) \
	ObjectMgr_somdGetIdFromObject(somSelf,ev,obj)

/*
 * Override method: somdGetObjectFromId
 */
#define SOMDObjectMgr_somdGetObjectFromId(somSelf,ev,id) \
	ObjectMgr_somdGetObjectFromId(somSelf,ev,id)

/*
 * Override method: somdReleaseObject
 */
#define SOMDObjectMgr_somdReleaseObject(somSelf,ev,obj) \
	ObjectMgr_somdReleaseObject(somSelf,ev,obj)

/*
 * Override method: somdDestroyObject
 */
#define SOMDObjectMgr_somdDestroyObject(somSelf,ev,obj) \
	ObjectMgr_somdDestroyObject(somSelf,ev,obj)

/*
 * New Method: somdFindServer
 */
typedef SOMDServer*   (SOMLINK * somTD_SOMDObjectMgr_somdFindServer)(SOMDObjectMgr *somSelf, Environment *ev,
		ImplId serverid);
#define somMD_SOMDObjectMgr_somdFindServer "::SOMDObjectMgr::somdFindServer"
#define SOMDObjectMgr_somdFindServer(somSelf,ev,serverid) \
    (SOM_Resolve(somSelf, SOMDObjectMgr, somdFindServer) \
	(somSelf,ev,serverid))
#ifndef SOMGD_somdFindServer
    #if (defined(_somdFindServer) || defined(__somdFindServer))
        #undef _somdFindServer
        #undef __somdFindServer
        #define SOMGD_somdFindServer 1
    #else
        #define _somdFindServer SOMDObjectMgr_somdFindServer
    #endif /* _somdFindServer */
#endif /* SOMGD_somdFindServer */

/*
 * New Method: somdFindServerByName
 */
typedef SOMDServer*   (SOMLINK * somTD_SOMDObjectMgr_somdFindServerByName)(SOMDObjectMgr *somSelf, Environment *ev,
		string servername);
#define somMD_SOMDObjectMgr_somdFindServerByName "::SOMDObjectMgr::somdFindServerByName"
#define SOMDObjectMgr_somdFindServerByName(somSelf,ev,servername) \
    (SOM_Resolve(somSelf, SOMDObjectMgr, somdFindServerByName) \
	(somSelf,ev,servername))
#ifndef SOMGD_somdFindServerByName
    #if (defined(_somdFindServerByName) || defined(__somdFindServerByName))
        #undef _somdFindServerByName
        #undef __somdFindServerByName
        #define SOMGD_somdFindServerByName 1
    #else
        #define _somdFindServerByName SOMDObjectMgr_somdFindServerByName
    #endif /* _somdFindServerByName */
#endif /* SOMGD_somdFindServerByName */

/*
 * New Method: somdFindServersByClass
 */
typedef _IDL_SEQUENCE_SOMDServer   (SOMLINK * somTD_SOMDObjectMgr_somdFindServersByClass)(SOMDObjectMgr *somSelf, Environment *ev,
		Identifier objclass);
#define somMD_SOMDObjectMgr_somdFindServersByClass "::SOMDObjectMgr::somdFindServersByClass"
#define SOMDObjectMgr_somdFindServersByClass(somSelf,ev,objclass) \
    (SOM_Resolve(somSelf, SOMDObjectMgr, somdFindServersByClass) \
	(somSelf,ev,objclass))
#ifndef SOMGD_somdFindServersByClass
    #if (defined(_somdFindServersByClass) || defined(__somdFindServersByClass))
        #undef _somdFindServersByClass
        #undef __somdFindServersByClass
        #define SOMGD_somdFindServersByClass 1
    #else
        #define _somdFindServersByClass SOMDObjectMgr_somdFindServersByClass
    #endif /* _somdFindServersByClass */
#endif /* SOMGD_somdFindServersByClass */

/*
 * New Method: somdFindAnyServerByClass
 */
typedef SOMDServer*   (SOMLINK * somTD_SOMDObjectMgr_somdFindAnyServerByClass)(SOMDObjectMgr *somSelf, Environment *ev,
		Identifier objclass);
#define somMD_SOMDObjectMgr_somdFindAnyServerByClass "::SOMDObjectMgr::somdFindAnyServerByClass"
#define SOMDObjectMgr_somdFindAnyServerByClass(somSelf,ev,objclass) \
    (SOM_Resolve(somSelf, SOMDObjectMgr, somdFindAnyServerByClass) \
	(somSelf,ev,objclass))
#ifndef SOMGD_somdFindAnyServerByClass
    #if (defined(_somdFindAnyServerByClass) || defined(__somdFindAnyServerByClass))
        #undef _somdFindAnyServerByClass
        #undef __somdFindAnyServerByClass
        #define SOMGD_somdFindAnyServerByClass 1
    #else
        #define _somdFindAnyServerByClass SOMDObjectMgr_somdFindAnyServerByClass
    #endif /* _somdFindAnyServerByClass */
#endif /* SOMGD_somdFindAnyServerByClass */

/*
 * New Method: _get_somd21somFree
 */
typedef boolean   (SOMLINK * somTD_SOMDObjectMgr__get_somd21somFree)(SOMDObjectMgr *somSelf, Environment *ev);
#define somMD_SOMDObjectMgr__get_somd21somFree "::SOMDObjectMgr::somd21somFree"
#define SOMDObjectMgr__get_somd21somFree(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMDObjectMgr, _get_somd21somFree) \
	(somSelf,ev))
#ifndef SOMGD_get_somd21somFree
    #if (defined(_get_somd21somFree) || defined(__get_somd21somFree))
        #undef _get_somd21somFree
        #undef __get_somd21somFree
        #define SOMGD_get_somd21somFree 1
    #else
        #define __get_somd21somFree SOMDObjectMgr__get_somd21somFree
    #endif /* __get_somd21somFree */
#endif /* SOMGD_get_somd21somFree */

/*
 * New Method: _set_somd21somFree
 */
typedef void   (SOMLINK * somTD_SOMDObjectMgr__set_somd21somFree)(SOMDObjectMgr *somSelf, Environment *ev,
		boolean somd21somFree);
#define somMD_SOMDObjectMgr__set_somd21somFree "::SOMDObjectMgr::somd21somFree"
#define SOMDObjectMgr__set_somd21somFree(somSelf,ev,somd21somFree) \
    (SOM_Resolve(somSelf, SOMDObjectMgr, _set_somd21somFree) \
	(somSelf,ev,somd21somFree))
#ifndef SOMGD_set_somd21somFree
    #if (defined(_set_somd21somFree) || defined(__set_somd21somFree))
        #undef _set_somd21somFree
        #undef __set_somd21somFree
        #define SOMGD_set_somd21somFree 1
    #else
        #define __set_somd21somFree SOMDObjectMgr__set_somd21somFree
    #endif /* __set_somd21somFree */
#endif /* SOMGD_set_somd21somFree */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define SOMDObjectMgr_somDefaultInit SOMObject_somDefaultInit
#define SOMDObjectMgr_somDestruct SOMObject_somDestruct
#define SOMDObjectMgr_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define SOMDObjectMgr_somDefaultAssign SOMObject_somDefaultAssign
#define SOMDObjectMgr_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define SOMDObjectMgr_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define SOMDObjectMgr_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define SOMDObjectMgr_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define SOMDObjectMgr_somDefaultVAssign SOMObject_somDefaultVAssign
#define SOMDObjectMgr_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define SOMDObjectMgr_somFree SOMObject_somFree
#define SOMDObjectMgr_somUninit SOMObject_somUninit
#define SOMDObjectMgr_somGetClass SOMObject_somGetClass
#define SOMDObjectMgr_somGetClassName SOMObject_somGetClassName
#define SOMDObjectMgr_somGetSize SOMObject_somGetSize
#define SOMDObjectMgr_somIsA SOMObject_somIsA
#define SOMDObjectMgr_somIsInstanceOf SOMObject_somIsInstanceOf
#define SOMDObjectMgr_somRespondsTo SOMObject_somRespondsTo
#define SOMDObjectMgr_somDispatch SOMObject_somDispatch
#define SOMDObjectMgr_somClassDispatch SOMObject_somClassDispatch
#define SOMDObjectMgr_somCastObj SOMObject_somCastObj
#define SOMDObjectMgr_somResetObj SOMObject_somResetObj
#define SOMDObjectMgr_somDispatchV SOMObject_somDispatchV
#define SOMDObjectMgr_somDispatchL SOMObject_somDispatchL
#define SOMDObjectMgr_somDispatchA SOMObject_somDispatchA
#define SOMDObjectMgr_somDispatchD SOMObject_somDispatchD
#define SOMDObjectMgr_somPrintSelf SOMObject_somPrintSelf
#define SOMDObjectMgr_somDumpSelf SOMObject_somDumpSelf
#define SOMDObjectMgr_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMDObjectMgr_h */
