
/*
 * This file was generated by the SOM Compiler.
 * FileName: timerev.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_SOMETimerEvent_h
#define SOM_SOMETimerEvent_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 SOMETimerEventClassData (*resolve_SOMETimerEventClassData())
#define SOMETimerEventCClassData (*resolve_SOMETimerEventCClassData())

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

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

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

#define SOMETimerEvent_MajorVersion 2
#define SOMETimerEvent_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define SOMETimerEventNewClass c
#define SOMETimerEventClassData d
#define SOMETimerEventCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define SOMETimerEvent_classObj SOMETimerEventClassData.classObject
#define _SOMETimerEvent SOMETimerEvent_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct SOMETimerEventClassDataStructure {
	SOMClass *classObject;
	somMToken somevGetEventInterval;
	somMToken somevSetEventInterval;
}  _SOMETimerEventClassData;
SOMEXTERN struct SOMETimerEventClassDataStructure * SOMLINK resolve_SOMETimerEventClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct SOMETimerEventCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _SOMETimerEventCClassData;
SOMEXTERN struct SOMETimerEventCClassDataStructure * SOMLINK resolve_SOMETimerEventCClassData(void);

/*
 * New and Renew macros for SOMETimerEvent
 */
#define SOMETimerEventNew() \
   (_somNew(_SOMETimerEvent ? _SOMETimerEvent : SOMETimerEventNewClass(SOMETimerEvent_MajorVersion, SOMETimerEvent_MinorVersion)))
#define SOMETimerEventRenew(buf) \
   (_somRenew(_SOMETimerEvent ? _SOMETimerEvent : SOMETimerEventNewClass(SOMETimerEvent_MajorVersion, SOMETimerEvent_MinorVersion), buf))

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

/*
 * New Method: somevGetEventInterval
 */
typedef long   (SOMLINK * somTD_SOMETimerEvent_somevGetEventInterval)(SOMETimerEvent *somSelf, Environment *ev);
#define somMD_SOMETimerEvent_somevGetEventInterval "::SOMETimerEvent::somevGetEventInterval"
#define SOMETimerEvent_somevGetEventInterval(somSelf,ev) \
    (SOM_Resolve(somSelf, SOMETimerEvent, somevGetEventInterval) \
	(somSelf,ev))
#ifndef SOMGD_somevGetEventInterval
    #if (defined(_somevGetEventInterval) || defined(__somevGetEventInterval))
        #undef _somevGetEventInterval
        #undef __somevGetEventInterval
        #define SOMGD_somevGetEventInterval 1
    #else
        #define _somevGetEventInterval SOMETimerEvent_somevGetEventInterval
    #endif /* _somevGetEventInterval */
#endif /* SOMGD_somevGetEventInterval */

/*
 * New Method: somevSetEventInterval
 */
typedef void   (SOMLINK * somTD_SOMETimerEvent_somevSetEventInterval)(SOMETimerEvent *somSelf, Environment *ev,
		long interval);
#define somMD_SOMETimerEvent_somevSetEventInterval "::SOMETimerEvent::somevSetEventInterval"
#define SOMETimerEvent_somevSetEventInterval(somSelf,ev,interval) \
    (SOM_Resolve(somSelf, SOMETimerEvent, somevSetEventInterval) \
	(somSelf,ev,interval))
#ifndef SOMGD_somevSetEventInterval
    #if (defined(_somevSetEventInterval) || defined(__somevSetEventInterval))
        #undef _somevSetEventInterval
        #undef __somevSetEventInterval
        #define SOMGD_somevSetEventInterval 1
    #else
        #define _somevSetEventInterval SOMETimerEvent_somevSetEventInterval
    #endif /* _somevSetEventInterval */
#endif /* SOMGD_somevSetEventInterval */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define SOMETimerEvent_somevGetEventTime SOMEEvent_somevGetEventTime
#define SOMETimerEvent_somevGetEventType SOMEEvent_somevGetEventType
#define SOMETimerEvent_somevSetEventTime SOMEEvent_somevSetEventTime
#define SOMETimerEvent_somevSetEventType SOMEEvent_somevSetEventType
#define SOMETimerEvent_somDefaultInit SOMObject_somDefaultInit
#define SOMETimerEvent_somDestruct SOMObject_somDestruct
#define SOMETimerEvent_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define SOMETimerEvent_somDefaultAssign SOMObject_somDefaultAssign
#define SOMETimerEvent_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define SOMETimerEvent_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define SOMETimerEvent_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define SOMETimerEvent_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define SOMETimerEvent_somDefaultVAssign SOMObject_somDefaultVAssign
#define SOMETimerEvent_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define SOMETimerEvent_somFree SOMObject_somFree
#define SOMETimerEvent_somUninit SOMObject_somUninit
#define SOMETimerEvent_somGetClass SOMObject_somGetClass
#define SOMETimerEvent_somGetClassName SOMObject_somGetClassName
#define SOMETimerEvent_somGetSize SOMObject_somGetSize
#define SOMETimerEvent_somIsA SOMObject_somIsA
#define SOMETimerEvent_somIsInstanceOf SOMObject_somIsInstanceOf
#define SOMETimerEvent_somRespondsTo SOMObject_somRespondsTo
#define SOMETimerEvent_somDispatch SOMObject_somDispatch
#define SOMETimerEvent_somClassDispatch SOMObject_somClassDispatch
#define SOMETimerEvent_somCastObj SOMObject_somCastObj
#define SOMETimerEvent_somResetObj SOMObject_somResetObj
#define SOMETimerEvent_somDispatchV SOMObject_somDispatchV
#define SOMETimerEvent_somDispatchL SOMObject_somDispatchL
#define SOMETimerEvent_somDispatchA SOMObject_somDispatchA
#define SOMETimerEvent_somDispatchD SOMObject_somDispatchD
#define SOMETimerEvent_somPrintSelf SOMObject_somPrintSelf
#define SOMETimerEvent_somDumpSelf SOMObject_somDumpSelf
#define SOMETimerEvent_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_SOMETimerEvent_h */
