
/*
 * This file was generated by the SOM Compiler.
 * FileName: F:\build\newproj\include.ppc\somdom.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith: 2.41
 */

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

/*
 * Start of bindings for IDL 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 bindings for IDL types.
 */

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

#ifdef SOM_STRICT_IDL
SOMEXTERN SOMDObjectMgr   SOMDLINK SOMD_ObjectMgr;
#else
SOMEXTERN SOMDObjectMgr *  SOMDLINK SOMD_ObjectMgr;
#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 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMDObjectMgrClassDataStructure {
	SOMClass *classObject;
	somMToken somdFindServer;
	somMToken somdFindServerByName;
	somMToken somdFindServersByClass;
	somMToken somdFindAnyServerByClass;
	somMToken _get_somd21somFree;
	somMToken _set_somd21somFree;
} SOMDLINK SOMDObjectMgrClassData;

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

/*
 * 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 somTP_SOMDObjectMgr_somdFindServer(SOMDObjectMgr *somSelf, Environment *ev, 
		ImplId serverid);
typedef somTP_SOMDObjectMgr_somdFindServer *somTD_SOMDObjectMgr_somdFindServer;
#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 somTP_SOMDObjectMgr_somdFindServerByName(SOMDObjectMgr *somSelf, Environment *ev, 
		string servername);
typedef somTP_SOMDObjectMgr_somdFindServerByName *somTD_SOMDObjectMgr_somdFindServerByName;
#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 somTP_SOMDObjectMgr_somdFindServersByClass(SOMDObjectMgr *somSelf, Environment *ev, 
		Identifier objclass);
typedef somTP_SOMDObjectMgr_somdFindServersByClass *somTD_SOMDObjectMgr_somdFindServersByClass;
#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 somTP_SOMDObjectMgr_somdFindAnyServerByClass(SOMDObjectMgr *somSelf, Environment *ev, 
		Identifier objclass);
typedef somTP_SOMDObjectMgr_somdFindAnyServerByClass *somTD_SOMDObjectMgr_somdFindAnyServerByClass;
#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 somTP_SOMDObjectMgr__get_somd21somFree(SOMDObjectMgr *somSelf, Environment *ev);
typedef somTP_SOMDObjectMgr__get_somd21somFree *somTD_SOMDObjectMgr__get_somd21somFree;
#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 somTP_SOMDObjectMgr__set_somd21somFree(SOMDObjectMgr *somSelf, Environment *ev, 
		boolean somd21somFree);
typedef somTP_SOMDObjectMgr__set_somd21somFree *somTD_SOMDObjectMgr__set_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_somPrintSelf SOMObject_somPrintSelf
#define SOMDObjectMgr_somDumpSelf SOMObject_somDumpSelf
#define SOMDObjectMgr_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMDObjectMgr_h */
