
/*
 * This file was generated by the SOM Compiler.
 * FileName: event.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.
 * 
 */


#ifndef SOM_SOMEEvent_h
#define SOM_SOMEEvent_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 SOMEEventClassData (*resolve_SOMEEventClassData())
#define SOMEEventCClassData (*resolve_SOMEEventCClassData())

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

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

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

#define SOMEEvent_MajorVersion 2
#define SOMEEvent_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define SOMEEventNewClass c
#define SOMEEventClassData d
#define SOMEEventCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define SOMEEvent_classObj SOMEEventClassData.classObject
#define _SOMEEvent SOMEEvent_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMEEventClassDataStructure {
	SOMClass *classObject;
	somMToken somevGetEventTime;
	somMToken somevGetEventType;
	somMToken somevSetEventTime;
	somMToken somevSetEventType;
}  _SOMEEventClassData;
SOMEXTERN struct SOMEEventClassDataStructure * SOMLINK resolve_SOMEEventClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct SOMEEventCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _SOMEEventCClassData;
SOMEXTERN struct SOMEEventCClassDataStructure * SOMLINK resolve_SOMEEventCClassData(void);

/*
 * New and Renew macros for SOMEEvent
 */
#define SOMEEventNew() \
   (_somNew(_SOMEEvent ? _SOMEEvent : SOMEEventNewClass(SOMEEvent_MajorVersion, SOMEEvent_MinorVersion)))
#define SOMEEventRenew(buf) \
   (_somRenew(_SOMEEvent ? _SOMEEvent : SOMEEventNewClass(SOMEEvent_MajorVersion, SOMEEvent_MinorVersion), buf))

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

/*
 * New Method: somevGetEventTime
 */
typedef unsigned long   (SOMLINK * somTD_SOMEEvent_somevGetEventTime)(SOMEEvent *somSelf, Environment *ev);
#define somMD_SOMEEvent_somevGetEventTime "::SOMEEvent::somevGetEventTime"
#define SOMEEvent_somevGetEventTime(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMEEvent, somevGetEventTime) \
	(somSelf,ev))
#ifndef SOMGD_somevGetEventTime
    #if (defined(_somevGetEventTime) || defined(__somevGetEventTime))
        #undef _somevGetEventTime
        #undef __somevGetEventTime
        #define SOMGD_somevGetEventTime 1
    #else
        #define _somevGetEventTime SOMEEvent_somevGetEventTime
    #endif /* _somevGetEventTime */
#endif /* SOMGD_somevGetEventTime */

/*
 * New Method: somevGetEventType
 */
typedef unsigned long   (SOMLINK * somTD_SOMEEvent_somevGetEventType)(SOMEEvent *somSelf, Environment *ev);
#define somMD_SOMEEvent_somevGetEventType "::SOMEEvent::somevGetEventType"
#define SOMEEvent_somevGetEventType(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMEEvent, somevGetEventType) \
	(somSelf,ev))
#ifndef SOMGD_somevGetEventType
    #if (defined(_somevGetEventType) || defined(__somevGetEventType))
        #undef _somevGetEventType
        #undef __somevGetEventType
        #define SOMGD_somevGetEventType 1
    #else
        #define _somevGetEventType SOMEEvent_somevGetEventType
    #endif /* _somevGetEventType */
#endif /* SOMGD_somevGetEventType */

/*
 * New Method: somevSetEventTime
 */
typedef void   (SOMLINK * somTD_SOMEEvent_somevSetEventTime)(SOMEEvent *somSelf, Environment *ev,
		unsigned long time);
#define somMD_SOMEEvent_somevSetEventTime "::SOMEEvent::somevSetEventTime"
#define SOMEEvent_somevSetEventTime(somSelf,ev,time) \
    (SOM_Resolve(somSelf, SOMEEvent, somevSetEventTime) \
	(somSelf,ev,time))
#ifndef SOMGD_somevSetEventTime
    #if (defined(_somevSetEventTime) || defined(__somevSetEventTime))
        #undef _somevSetEventTime
        #undef __somevSetEventTime
        #define SOMGD_somevSetEventTime 1
    #else
        #define _somevSetEventTime SOMEEvent_somevSetEventTime
    #endif /* _somevSetEventTime */
#endif /* SOMGD_somevSetEventTime */

/*
 * New Method: somevSetEventType
 */
typedef void   (SOMLINK * somTD_SOMEEvent_somevSetEventType)(SOMEEvent *somSelf, Environment *ev,
		unsigned long type);
#define somMD_SOMEEvent_somevSetEventType "::SOMEEvent::somevSetEventType"
#define SOMEEvent_somevSetEventType(somSelf,ev,type) \
    (SOM_Resolve(somSelf, SOMEEvent, somevSetEventType) \
	(somSelf,ev,type))
#ifndef SOMGD_somevSetEventType
    #if (defined(_somevSetEventType) || defined(__somevSetEventType))
        #undef _somevSetEventType
        #undef __somevSetEventType
        #define SOMGD_somevSetEventType 1
    #else
        #define _somevSetEventType SOMEEvent_somevSetEventType
    #endif /* _somevSetEventType */
#endif /* SOMGD_somevSetEventType */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define SOMEEvent_somDefaultInit SOMObject_somDefaultInit
#define SOMEEvent_somDestruct SOMObject_somDestruct
#define SOMEEvent_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define SOMEEvent_somDefaultAssign SOMObject_somDefaultAssign
#define SOMEEvent_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define SOMEEvent_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define SOMEEvent_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define SOMEEvent_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define SOMEEvent_somDefaultVAssign SOMObject_somDefaultVAssign
#define SOMEEvent_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define SOMEEvent_somFree SOMObject_somFree
#define SOMEEvent_somUninit SOMObject_somUninit
#define SOMEEvent_somGetClass SOMObject_somGetClass
#define SOMEEvent_somGetClassName SOMObject_somGetClassName
#define SOMEEvent_somGetSize SOMObject_somGetSize
#define SOMEEvent_somIsA SOMObject_somIsA
#define SOMEEvent_somIsInstanceOf SOMObject_somIsInstanceOf
#define SOMEEvent_somRespondsTo SOMObject_somRespondsTo
#define SOMEEvent_somDispatch SOMObject_somDispatch
#define SOMEEvent_somClassDispatch SOMObject_somClassDispatch
#define SOMEEvent_somCastObj SOMObject_somCastObj
#define SOMEEvent_somResetObj SOMObject_somResetObj
#define SOMEEvent_somDispatchV SOMObject_somDispatchV
#define SOMEEvent_somDispatchL SOMObject_somDispatchL
#define SOMEEvent_somDispatchA SOMObject_somDispatchA
#define SOMEEvent_somDispatchD SOMObject_somDispatchD
#define SOMEEvent_somPrintSelf SOMObject_somPrintSelf
#define SOMEEvent_somDumpSelf SOMObject_somDumpSelf
#define SOMEEvent_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMEEvent_h */
