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

/*
 * 
 *  Scalar Types
 * 
 * 
 *  Class defined in this interface
 * 
 */


#ifndef SOM_ODArbitrator_h
#define SOM_ODArbitrator_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 ODArbitratorClassData (*resolve_ODArbitratorClassData())
#define ODArbitratorCClassData (*resolve_ODArbitratorCClassData())

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

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODArbitrator
    #define ODArbitrator SOMObject
#endif /* ODArbitrator */
#ifndef ODFocusModule
    #define ODFocusModule SOMObject
#endif /* ODFocusModule */
#ifndef ODFocusSet
    #define ODFocusSet SOMObject
#endif /* ODFocusSet */
#ifndef ODFocusOwnerIterator
    #define ODFocusOwnerIterator SOMObject
#endif /* ODFocusOwnerIterator */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODFrame
    #define ODFrame SOMObject
#endif /* ODFrame */

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

#define ODArbitrator_MajorVersion 1
#define ODArbitrator_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODArbitratorNewClass c
#define ODArbitratorClassData d
#define ODArbitratorCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODArbitrator_classObj ODArbitratorClassData.classObject
#define _ODArbitrator ODArbitrator_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODArbitratorClassDataStructure {
	SOMClass *classObject;
	somMToken RequestFocusSet;
	somMToken RequestFocus;
	somMToken RelinquishFocusSet;
	somMToken RelinquishFocus;
	somMToken TransferFocus;
	somMToken TransferFocusSet;
	somMToken GetFocusOwner;
	somMToken CreateOwnerIterator;
	somMToken RegisterFocus;
	somMToken UnregisterFocus;
	somMToken IsFocusRegistered;
	somMToken IsFocusExclusive;
	somMToken GetFocusModule;
	somMToken CreateFocusSet;
	somMToken InitArbitrator;
}  _ODArbitratorClassData;
SOMEXTERN struct ODArbitratorClassDataStructure * SOMLINK resolve_ODArbitratorClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODArbitratorCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODArbitratorCClassData;
SOMEXTERN struct ODArbitratorCClassDataStructure * SOMLINK resolve_ODArbitratorCClassData(void);

/*
 * New and Renew macros for ODArbitrator
 */
#define ODArbitratorNew() \
   (_somNew(_ODArbitrator ? _ODArbitrator : ODArbitratorNewClass(ODArbitrator_MajorVersion, ODArbitrator_MinorVersion)))
#define ODArbitratorRenew(buf) \
   (_somRenew(_ODArbitrator ? _ODArbitrator : ODArbitratorNewClass(ODArbitrator_MajorVersion, ODArbitrator_MinorVersion), buf))

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

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

/*
 * Override method: Purge
 */
#define ODArbitrator_Purge(somSelf,ev,size) \
	ODObject_Purge(somSelf,ev,size)

/*
 * New Method: RequestFocusSet
 */
typedef ODBoolean   (SOMLINK * somTD_ODArbitrator_RequestFocusSet)(ODArbitrator *somSelf, Environment *ev,
		ODFocusSet* focusSet,
		ODFrame* requestingFrame);
#define somMD_ODArbitrator_RequestFocusSet "::ODArbitrator::RequestFocusSet"
#define ODArbitrator_RequestFocusSet(somSelf,ev,focusSet,requestingFrame) \
    (SOM_Resolve(somSelf, ODArbitrator, RequestFocusSet) \
	(somSelf,ev,focusSet,requestingFrame))
#ifndef SOMGD_RequestFocusSet
    #if (defined(_RequestFocusSet) || defined(__RequestFocusSet))
        #undef _RequestFocusSet
        #undef __RequestFocusSet
        #define SOMGD_RequestFocusSet 1
    #else
        #define _RequestFocusSet ODArbitrator_RequestFocusSet
    #endif /* _RequestFocusSet */
#endif /* SOMGD_RequestFocusSet */

/*
 * New Method: RequestFocus
 */
typedef ODBoolean   (SOMLINK * somTD_ODArbitrator_RequestFocus)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* requestingFrame);
#define somMD_ODArbitrator_RequestFocus "::ODArbitrator::RequestFocus"
#define ODArbitrator_RequestFocus(somSelf,ev,focus,requestingFrame) \
    (SOM_Resolve(somSelf, ODArbitrator, RequestFocus) \
	(somSelf,ev,focus,requestingFrame))
#ifndef SOMGD_RequestFocus
    #if (defined(_RequestFocus) || defined(__RequestFocus))
        #undef _RequestFocus
        #undef __RequestFocus
        #define SOMGD_RequestFocus 1
    #else
        #define _RequestFocus ODArbitrator_RequestFocus
    #endif /* _RequestFocus */
#endif /* SOMGD_RequestFocus */

/*
 * New Method: RelinquishFocusSet
 */
typedef void   (SOMLINK * somTD_ODArbitrator_RelinquishFocusSet)(ODArbitrator *somSelf, Environment *ev,
		ODFocusSet* focusSet,
		ODFrame* relinquishingFrame);
#define somMD_ODArbitrator_RelinquishFocusSet "::ODArbitrator::RelinquishFocusSet"
#define ODArbitrator_RelinquishFocusSet(somSelf,ev,focusSet,relinquishingFrame) \
    (SOM_Resolve(somSelf, ODArbitrator, RelinquishFocusSet) \
	(somSelf,ev,focusSet,relinquishingFrame))
#ifndef SOMGD_RelinquishFocusSet
    #if (defined(_RelinquishFocusSet) || defined(__RelinquishFocusSet))
        #undef _RelinquishFocusSet
        #undef __RelinquishFocusSet
        #define SOMGD_RelinquishFocusSet 1
    #else
        #define _RelinquishFocusSet ODArbitrator_RelinquishFocusSet
    #endif /* _RelinquishFocusSet */
#endif /* SOMGD_RelinquishFocusSet */

/*
 * New Method: RelinquishFocus
 */
typedef void   (SOMLINK * somTD_ODArbitrator_RelinquishFocus)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* relinquishingFrame);
#define somMD_ODArbitrator_RelinquishFocus "::ODArbitrator::RelinquishFocus"
#define ODArbitrator_RelinquishFocus(somSelf,ev,focus,relinquishingFrame) \
    (SOM_Resolve(somSelf, ODArbitrator, RelinquishFocus) \
	(somSelf,ev,focus,relinquishingFrame))
#ifndef SOMGD_RelinquishFocus
    #if (defined(_RelinquishFocus) || defined(__RelinquishFocus))
        #undef _RelinquishFocus
        #undef __RelinquishFocus
        #define SOMGD_RelinquishFocus 1
    #else
        #define _RelinquishFocus ODArbitrator_RelinquishFocus
    #endif /* _RelinquishFocus */
#endif /* SOMGD_RelinquishFocus */

/*
 * New Method: TransferFocus
 */
typedef void   (SOMLINK * somTD_ODArbitrator_TransferFocus)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* transferringFrame,
		ODFrame* newOwner);
#define somMD_ODArbitrator_TransferFocus "::ODArbitrator::TransferFocus"
#define ODArbitrator_TransferFocus(somSelf,ev,focus,transferringFrame,newOwner) \
    (SOM_Resolve(somSelf, ODArbitrator, TransferFocus) \
	(somSelf,ev,focus,transferringFrame,newOwner))
#ifndef SOMGD_TransferFocus
    #if (defined(_TransferFocus) || defined(__TransferFocus))
        #undef _TransferFocus
        #undef __TransferFocus
        #define SOMGD_TransferFocus 1
    #else
        #define _TransferFocus ODArbitrator_TransferFocus
    #endif /* _TransferFocus */
#endif /* SOMGD_TransferFocus */

/*
 * New Method: TransferFocusSet
 */
typedef void   (SOMLINK * somTD_ODArbitrator_TransferFocusSet)(ODArbitrator *somSelf, Environment *ev,
		ODFocusSet* focusSet,
		ODFrame* transferringFrame,
		ODFrame* newOwner);
#define somMD_ODArbitrator_TransferFocusSet "::ODArbitrator::TransferFocusSet"
#define ODArbitrator_TransferFocusSet(somSelf,ev,focusSet,transferringFrame,newOwner) \
    (SOM_Resolve(somSelf, ODArbitrator, TransferFocusSet) \
	(somSelf,ev,focusSet,transferringFrame,newOwner))
#ifndef SOMGD_TransferFocusSet
    #if (defined(_TransferFocusSet) || defined(__TransferFocusSet))
        #undef _TransferFocusSet
        #undef __TransferFocusSet
        #define SOMGD_TransferFocusSet 1
    #else
        #define _TransferFocusSet ODArbitrator_TransferFocusSet
    #endif /* _TransferFocusSet */
#endif /* SOMGD_TransferFocusSet */

/*
 * New Method: GetFocusOwner
 */
typedef ODFrame*   (SOMLINK * somTD_ODArbitrator_GetFocusOwner)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODArbitrator_GetFocusOwner "::ODArbitrator::GetFocusOwner"
#define ODArbitrator_GetFocusOwner(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODArbitrator, GetFocusOwner) \
	(somSelf,ev,focus))
#ifndef SOMGD_GetFocusOwner
    #if (defined(_GetFocusOwner) || defined(__GetFocusOwner))
        #undef _GetFocusOwner
        #undef __GetFocusOwner
        #define SOMGD_GetFocusOwner 1
    #else
        #define _GetFocusOwner ODArbitrator_GetFocusOwner
    #endif /* _GetFocusOwner */
#endif /* SOMGD_GetFocusOwner */

/*
 * New Method: CreateOwnerIterator
 */
typedef ODFocusOwnerIterator*   (SOMLINK * somTD_ODArbitrator_CreateOwnerIterator)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODArbitrator_CreateOwnerIterator "::ODArbitrator::CreateOwnerIterator"
#define ODArbitrator_CreateOwnerIterator(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODArbitrator, CreateOwnerIterator) \
	(somSelf,ev,focus))
#ifndef SOMGD_CreateOwnerIterator
    #if (defined(_CreateOwnerIterator) || defined(__CreateOwnerIterator))
        #undef _CreateOwnerIterator
        #undef __CreateOwnerIterator
        #define SOMGD_CreateOwnerIterator 1
    #else
        #define _CreateOwnerIterator ODArbitrator_CreateOwnerIterator
    #endif /* _CreateOwnerIterator */
#endif /* SOMGD_CreateOwnerIterator */

/*
 * New Method: RegisterFocus
 */
typedef void   (SOMLINK * somTD_ODArbitrator_RegisterFocus)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFocusModule* focusModule);
#define somMD_ODArbitrator_RegisterFocus "::ODArbitrator::RegisterFocus"
#define ODArbitrator_RegisterFocus(somSelf,ev,focus,focusModule) \
    (SOM_Resolve(somSelf, ODArbitrator, RegisterFocus) \
	(somSelf,ev,focus,focusModule))
#ifndef SOMGD_RegisterFocus
    #if (defined(_RegisterFocus) || defined(__RegisterFocus))
        #undef _RegisterFocus
        #undef __RegisterFocus
        #define SOMGD_RegisterFocus 1
    #else
        #define _RegisterFocus ODArbitrator_RegisterFocus
    #endif /* _RegisterFocus */
#endif /* SOMGD_RegisterFocus */

/*
 * New Method: UnregisterFocus
 */
typedef void   (SOMLINK * somTD_ODArbitrator_UnregisterFocus)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODArbitrator_UnregisterFocus "::ODArbitrator::UnregisterFocus"
#define ODArbitrator_UnregisterFocus(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODArbitrator, UnregisterFocus) \
	(somSelf,ev,focus))
#ifndef SOMGD_UnregisterFocus
    #if (defined(_UnregisterFocus) || defined(__UnregisterFocus))
        #undef _UnregisterFocus
        #undef __UnregisterFocus
        #define SOMGD_UnregisterFocus 1
    #else
        #define _UnregisterFocus ODArbitrator_UnregisterFocus
    #endif /* _UnregisterFocus */
#endif /* SOMGD_UnregisterFocus */

/*
 * New Method: IsFocusRegistered
 */
typedef ODBoolean   (SOMLINK * somTD_ODArbitrator_IsFocusRegistered)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODArbitrator_IsFocusRegistered "::ODArbitrator::IsFocusRegistered"
#define ODArbitrator_IsFocusRegistered(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODArbitrator, IsFocusRegistered) \
	(somSelf,ev,focus))
#ifndef SOMGD_IsFocusRegistered
    #if (defined(_IsFocusRegistered) || defined(__IsFocusRegistered))
        #undef _IsFocusRegistered
        #undef __IsFocusRegistered
        #define SOMGD_IsFocusRegistered 1
    #else
        #define _IsFocusRegistered ODArbitrator_IsFocusRegistered
    #endif /* _IsFocusRegistered */
#endif /* SOMGD_IsFocusRegistered */

/*
 * New Method: IsFocusExclusive
 */
typedef ODBoolean   (SOMLINK * somTD_ODArbitrator_IsFocusExclusive)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODArbitrator_IsFocusExclusive "::ODArbitrator::IsFocusExclusive"
#define ODArbitrator_IsFocusExclusive(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODArbitrator, IsFocusExclusive) \
	(somSelf,ev,focus))
#ifndef SOMGD_IsFocusExclusive
    #if (defined(_IsFocusExclusive) || defined(__IsFocusExclusive))
        #undef _IsFocusExclusive
        #undef __IsFocusExclusive
        #define SOMGD_IsFocusExclusive 1
    #else
        #define _IsFocusExclusive ODArbitrator_IsFocusExclusive
    #endif /* _IsFocusExclusive */
#endif /* SOMGD_IsFocusExclusive */

/*
 * New Method: GetFocusModule
 */
typedef ODFocusModule*   (SOMLINK * somTD_ODArbitrator_GetFocusModule)(ODArbitrator *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODArbitrator_GetFocusModule "::ODArbitrator::GetFocusModule"
#define ODArbitrator_GetFocusModule(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODArbitrator, GetFocusModule) \
	(somSelf,ev,focus))
#ifndef SOMGD_GetFocusModule
    #if (defined(_GetFocusModule) || defined(__GetFocusModule))
        #undef _GetFocusModule
        #undef __GetFocusModule
        #define SOMGD_GetFocusModule 1
    #else
        #define _GetFocusModule ODArbitrator_GetFocusModule
    #endif /* _GetFocusModule */
#endif /* SOMGD_GetFocusModule */

/*
 * New Method: CreateFocusSet
 */
typedef ODFocusSet*   (SOMLINK * somTD_ODArbitrator_CreateFocusSet)(ODArbitrator *somSelf, Environment *ev);
#define somMD_ODArbitrator_CreateFocusSet "::ODArbitrator::CreateFocusSet"
#define ODArbitrator_CreateFocusSet(somSelf,ev) \
    (SOM_Resolve(somSelf, ODArbitrator, CreateFocusSet) \
	(somSelf,ev))
#ifndef SOMGD_CreateFocusSet
    #if (defined(_CreateFocusSet) || defined(__CreateFocusSet))
        #undef _CreateFocusSet
        #undef __CreateFocusSet
        #define SOMGD_CreateFocusSet 1
    #else
        #define _CreateFocusSet ODArbitrator_CreateFocusSet
    #endif /* _CreateFocusSet */
#endif /* SOMGD_CreateFocusSet */

/*
 * New Method: InitArbitrator
 */
typedef void   (SOMLINK * somTD_ODArbitrator_InitArbitrator)(ODArbitrator *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODArbitrator_InitArbitrator "::ODArbitrator::InitArbitrator"
#define ODArbitrator_InitArbitrator(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODArbitrator, InitArbitrator) \
	(somSelf,ev,session))
#ifndef SOMGD_InitArbitrator
    #if (defined(_InitArbitrator) || defined(__InitArbitrator))
        #undef _InitArbitrator
        #undef __InitArbitrator
        #define SOMGD_InitArbitrator 1
    #else
        #define _InitArbitrator ODArbitrator_InitArbitrator
    #endif /* _InitArbitrator */
#endif /* SOMGD_InitArbitrator */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODArbitrator_InitObject ODObject_InitObject
#define ODArbitrator_IsInitialized ODObject_IsInitialized
#define ODArbitrator_HasExtension ODObject_HasExtension
#define ODArbitrator_GetExtension ODObject_GetExtension
#define ODArbitrator_ReleaseExtension ODObject_ReleaseExtension
#define ODArbitrator_IsEqualTo ODObject_IsEqualTo
#define ODArbitrator_SubClassResponsibility ODObject_SubClassResponsibility
#define ODArbitrator_somDefaultInit SOMObject_somDefaultInit
#define ODArbitrator_somDestruct SOMObject_somDestruct
#define ODArbitrator_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODArbitrator_somDefaultAssign SOMObject_somDefaultAssign
#define ODArbitrator_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODArbitrator_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODArbitrator_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODArbitrator_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODArbitrator_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODArbitrator_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODArbitrator_somFree SOMObject_somFree
#define ODArbitrator_somGetClass SOMObject_somGetClass
#define ODArbitrator_somGetClassName SOMObject_somGetClassName
#define ODArbitrator_somGetSize SOMObject_somGetSize
#define ODArbitrator_somIsA SOMObject_somIsA
#define ODArbitrator_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODArbitrator_somRespondsTo SOMObject_somRespondsTo
#define ODArbitrator_somDispatch SOMObject_somDispatch
#define ODArbitrator_somClassDispatch SOMObject_somClassDispatch
#define ODArbitrator_somCastObj SOMObject_somCastObj
#define ODArbitrator_somResetObj SOMObject_somResetObj
#define ODArbitrator_somDispatchV SOMObject_somDispatchV
#define ODArbitrator_somDispatchL SOMObject_somDispatchL
#define ODArbitrator_somDispatchA SOMObject_somDispatchA
#define ODArbitrator_somDispatchD SOMObject_somDispatchD
#define ODArbitrator_somPrintSelf SOMObject_somPrintSelf
#define ODArbitrator_somDumpSelf SOMObject_somDumpSelf
#define ODArbitrator_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODArbitrator_h */
