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

/*
 * 
 *    COMPONENT_NAME: somu
 * 
 *    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.
 * 
 *  Defect: 1920    Date:2/22/94		User:kthadani    Flag: K1-W
 *  Description:	   Added Support for DS preservation from registration
 *                  to callback. Method someExecute has additional
 * 		   Parameter for Callback
 */


#ifndef SOM_SOMEEMan_h
#define SOM_SOMEEMan_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 SOMEEManClassData (*resolve_SOMEEManClassData())
#define SOMEEManCClassData (*resolve_SOMEEManCClassData())

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

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef SOMEEvent
    #define SOMEEvent SOMObject
#endif /* SOMEEvent */
#ifndef SOMEClientEvent
    #define SOMEClientEvent SOMObject
#endif /* SOMEClientEvent */
#ifndef SOMEEMRegisterData
    #define SOMEEMRegisterData SOMObject
#endif /* SOMEEMRegisterData */

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

/*
 * Passthru lines: File: "C.h", "after"
 */
#include <emtypes.h>

#define SOMEEMan_MajorVersion 2
#define SOMEEMan_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define SOMEEManNewClass c
#define SOMEEManClassData d
#define SOMEEManCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */

/*
 * Include the meta class file
 */
#include <snglicls.h>
/*--------------Migration------------*/
#define SOMEEMan_classObj SOMEEManClassData.classObject
#define _SOMEEMan SOMEEMan_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMEEManClassDataStructure {
	SOMClass *classObject;
	somMToken someGetEManSem;
	somMToken someReleaseEManSem;
	somMToken someChangeRegData;
	somMToken someProcessEvent;
	somMToken someProcessEvents;
	somMToken someQueueEvent;
	somMToken someRegister;
	somMToken someRegisterEv;
	somMToken someRegisterProc;
	somMToken someShutdown;
	somMToken someUnRegister;
}  _SOMEEManClassData;
SOMEXTERN struct SOMEEManClassDataStructure * SOMLINK resolve_SOMEEManClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct SOMEEManCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _SOMEEManCClassData;
SOMEXTERN struct SOMEEManCClassDataStructure * SOMLINK resolve_SOMEEManCClassData(void);

/*
 * New and Renew macros for SOMEEMan
 */
#define SOMEEManNew() \
   (_somNew(_SOMEEMan ? _SOMEEMan : SOMEEManNewClass(SOMEEMan_MajorVersion, SOMEEMan_MinorVersion)))
#define SOMEEManRenew(buf) \
   (_somRenew(_SOMEEMan ? _SOMEEMan : SOMEEManNewClass(SOMEEMan_MajorVersion, SOMEEMan_MinorVersion), buf))

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

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

/*
 * New Method: someGetEManSem
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someGetEManSem)(SOMEEMan *somSelf, Environment *ev);
#define somMD_SOMEEMan_someGetEManSem "::SOMEEMan::someGetEManSem"
#define SOMEEMan_someGetEManSem(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMEEMan, someGetEManSem) \
	(somSelf,ev))
#ifndef SOMGD_someGetEManSem
    #if (defined(_someGetEManSem) || defined(__someGetEManSem))
        #undef _someGetEManSem
        #undef __someGetEManSem
        #define SOMGD_someGetEManSem 1
    #else
        #define _someGetEManSem SOMEEMan_someGetEManSem
    #endif /* _someGetEManSem */
#endif /* SOMGD_someGetEManSem */

/*
 * New Method: someReleaseEManSem
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someReleaseEManSem)(SOMEEMan *somSelf, Environment *ev);
#define somMD_SOMEEMan_someReleaseEManSem "::SOMEEMan::someReleaseEManSem"
#define SOMEEMan_someReleaseEManSem(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMEEMan, someReleaseEManSem) \
	(somSelf,ev))
#ifndef SOMGD_someReleaseEManSem
    #if (defined(_someReleaseEManSem) || defined(__someReleaseEManSem))
        #undef _someReleaseEManSem
        #undef __someReleaseEManSem
        #define SOMGD_someReleaseEManSem 1
    #else
        #define _someReleaseEManSem SOMEEMan_someReleaseEManSem
    #endif /* _someReleaseEManSem */
#endif /* SOMGD_someReleaseEManSem */

/*
 * New Method: someChangeRegData
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someChangeRegData)(SOMEEMan *somSelf, Environment *ev,
		long registrationId,
		SOMEEMRegisterData* registerData);
#define somMD_SOMEEMan_someChangeRegData "::SOMEEMan::someChangeRegData"
#define SOMEEMan_someChangeRegData(somSelf,ev,registrationId,registerData) \
    (SOM_Resolve(somSelf, SOMEEMan, someChangeRegData) \
	(somSelf,ev,registrationId,registerData))
#ifndef SOMGD_someChangeRegData
    #if (defined(_someChangeRegData) || defined(__someChangeRegData))
        #undef _someChangeRegData
        #undef __someChangeRegData
        #define SOMGD_someChangeRegData 1
    #else
        #define _someChangeRegData SOMEEMan_someChangeRegData
    #endif /* _someChangeRegData */
#endif /* SOMGD_someChangeRegData */

/*
 * New Method: someProcessEvent
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someProcessEvent)(SOMEEMan *somSelf, Environment *ev,
		unsigned long mask);
#define somMD_SOMEEMan_someProcessEvent "::SOMEEMan::someProcessEvent"
#define SOMEEMan_someProcessEvent(somSelf,ev,mask) \
    (SOM_Resolve(somSelf, SOMEEMan, someProcessEvent) \
	(somSelf,ev,mask))
#ifndef SOMGD_someProcessEvent
    #if (defined(_someProcessEvent) || defined(__someProcessEvent))
        #undef _someProcessEvent
        #undef __someProcessEvent
        #define SOMGD_someProcessEvent 1
    #else
        #define _someProcessEvent SOMEEMan_someProcessEvent
    #endif /* _someProcessEvent */
#endif /* SOMGD_someProcessEvent */

/*
 * New Method: someProcessEvents
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someProcessEvents)(SOMEEMan *somSelf, Environment *ev);
#define somMD_SOMEEMan_someProcessEvents "::SOMEEMan::someProcessEvents"
#define SOMEEMan_someProcessEvents(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMEEMan, someProcessEvents) \
	(somSelf,ev))
#ifndef SOMGD_someProcessEvents
    #if (defined(_someProcessEvents) || defined(__someProcessEvents))
        #undef _someProcessEvents
        #undef __someProcessEvents
        #define SOMGD_someProcessEvents 1
    #else
        #define _someProcessEvents SOMEEMan_someProcessEvents
    #endif /* _someProcessEvents */
#endif /* SOMGD_someProcessEvents */

/*
 * New Method: someQueueEvent
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someQueueEvent)(SOMEEMan *somSelf, Environment *ev,
		SOMEClientEvent* event);
#define somMD_SOMEEMan_someQueueEvent "::SOMEEMan::someQueueEvent"
#define SOMEEMan_someQueueEvent(somSelf,ev,event) \
    (SOM_Resolve(somSelf, SOMEEMan, someQueueEvent) \
	(somSelf,ev,event))
#ifndef SOMGD_someQueueEvent
    #if (defined(_someQueueEvent) || defined(__someQueueEvent))
        #undef _someQueueEvent
        #undef __someQueueEvent
        #define SOMGD_someQueueEvent 1
    #else
        #define _someQueueEvent SOMEEMan_someQueueEvent
    #endif /* _someQueueEvent */
#endif /* SOMGD_someQueueEvent */

/*
 * New Method: someRegister
 */
typedef long   (SOMLINK * somTD_SOMEEMan_someRegister)(SOMEEMan *somSelf, Environment *ev,
		SOMEEMRegisterData* registerData,
		SOMObject* targetObject,
		string targetMethod,
		void* targetData);
#define somMD_SOMEEMan_someRegister "::SOMEEMan::someRegister"
#define SOMEEMan_someRegister(somSelf,ev,registerData,targetObject,targetMethod,targetData) \
    (SOM_Resolve(somSelf, SOMEEMan, someRegister) \
	(somSelf,ev,registerData,targetObject,targetMethod,targetData))
#ifndef SOMGD_someRegister
    #if (defined(_someRegister) || defined(__someRegister))
        #undef _someRegister
        #undef __someRegister
        #define SOMGD_someRegister 1
    #else
        #define _someRegister SOMEEMan_someRegister
    #endif /* _someRegister */
#endif /* SOMGD_someRegister */

/*
 * New Method: someRegisterEv
 */
typedef long   (SOMLINK * somTD_SOMEEMan_someRegisterEv)(SOMEEMan *somSelf, Environment *ev,
		SOMEEMRegisterData* registerData,
		SOMObject* targetObject,
		Environment* callbackEv,
		string targetMethod,
		void* targetData);
#define somMD_SOMEEMan_someRegisterEv "::SOMEEMan::someRegisterEv"
#define SOMEEMan_someRegisterEv(somSelf,ev,registerData,targetObject,callbackEv,targetMethod,targetData) \
    (SOM_Resolve(somSelf, SOMEEMan, someRegisterEv) \
	(somSelf,ev,registerData,targetObject,callbackEv,targetMethod,targetData))
#ifndef SOMGD_someRegisterEv
    #if (defined(_someRegisterEv) || defined(__someRegisterEv))
        #undef _someRegisterEv
        #undef __someRegisterEv
        #define SOMGD_someRegisterEv 1
    #else
        #define _someRegisterEv SOMEEMan_someRegisterEv
    #endif /* _someRegisterEv */
#endif /* SOMGD_someRegisterEv */

/*
 * New Method: someRegisterProc
 */
typedef long   (SOMLINK * somTD_SOMEEMan_someRegisterProc)(SOMEEMan *somSelf, Environment *ev,
		SOMEEMRegisterData* registerData,
		EMRegProc* targetProcedure,
		void* targetData);
#define somMD_SOMEEMan_someRegisterProc "::SOMEEMan::someRegisterProc"
#define SOMEEMan_someRegisterProc(somSelf,ev,registerData,targetProcedure,targetData) \
    (SOM_Resolve(somSelf, SOMEEMan, someRegisterProc) \
	(somSelf,ev,registerData,targetProcedure,targetData))
#ifndef SOMGD_someRegisterProc
    #if (defined(_someRegisterProc) || defined(__someRegisterProc))
        #undef _someRegisterProc
        #undef __someRegisterProc
        #define SOMGD_someRegisterProc 1
    #else
        #define _someRegisterProc SOMEEMan_someRegisterProc
    #endif /* _someRegisterProc */
#endif /* SOMGD_someRegisterProc */

/*
 * New Method: someShutdown
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someShutdown)(SOMEEMan *somSelf, Environment *ev);
#define somMD_SOMEEMan_someShutdown "::SOMEEMan::someShutdown"
#define SOMEEMan_someShutdown(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMEEMan, someShutdown) \
	(somSelf,ev))
#ifndef SOMGD_someShutdown
    #if (defined(_someShutdown) || defined(__someShutdown))
        #undef _someShutdown
        #undef __someShutdown
        #define SOMGD_someShutdown 1
    #else
        #define _someShutdown SOMEEMan_someShutdown
    #endif /* _someShutdown */
#endif /* SOMGD_someShutdown */

/*
 * New Method: someUnRegister
 */
typedef void   (SOMLINK * somTD_SOMEEMan_someUnRegister)(SOMEEMan *somSelf, Environment *ev,
		long registrationId);
#define somMD_SOMEEMan_someUnRegister "::SOMEEMan::someUnRegister"
#define SOMEEMan_someUnRegister(somSelf,ev,registrationId) \
    (SOM_Resolve(somSelf, SOMEEMan, someUnRegister) \
	(somSelf,ev,registrationId))
#ifndef SOMGD_someUnRegister
    #if (defined(_someUnRegister) || defined(__someUnRegister))
        #undef _someUnRegister
        #undef __someUnRegister
        #define SOMGD_someUnRegister 1
    #else
        #define _someUnRegister SOMEEMan_someUnRegister
    #endif /* _someUnRegister */
#endif /* SOMGD_someUnRegister */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define SOMEEMan_somDefaultInit SOMObject_somDefaultInit
#define SOMEEMan_somDestruct SOMObject_somDestruct
#define SOMEEMan_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define SOMEEMan_somDefaultAssign SOMObject_somDefaultAssign
#define SOMEEMan_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define SOMEEMan_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define SOMEEMan_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define SOMEEMan_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define SOMEEMan_somDefaultVAssign SOMObject_somDefaultVAssign
#define SOMEEMan_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define SOMEEMan_somFree SOMObject_somFree
#define SOMEEMan_somGetClass SOMObject_somGetClass
#define SOMEEMan_somGetClassName SOMObject_somGetClassName
#define SOMEEMan_somGetSize SOMObject_somGetSize
#define SOMEEMan_somIsA SOMObject_somIsA
#define SOMEEMan_somIsInstanceOf SOMObject_somIsInstanceOf
#define SOMEEMan_somRespondsTo SOMObject_somRespondsTo
#define SOMEEMan_somDispatch SOMObject_somDispatch
#define SOMEEMan_somClassDispatch SOMObject_somClassDispatch
#define SOMEEMan_somCastObj SOMObject_somCastObj
#define SOMEEMan_somResetObj SOMObject_somResetObj
#define SOMEEMan_somDispatchV SOMObject_somDispatchV
#define SOMEEMan_somDispatchL SOMObject_somDispatchL
#define SOMEEMan_somDispatchA SOMObject_somDispatchA
#define SOMEEMan_somDispatchD SOMObject_somDispatchD
#define SOMEEMan_somPrintSelf SOMObject_somPrintSelf
#define SOMEEMan_somDumpSelf SOMObject_somDumpSelf
#define SOMEEMan_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMEEMan_h */
