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

/*
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODFocusSet_h
#define SOM_ODFocusSet_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 ODFocusSetClassData (*resolve_ODFocusSetClassData())
#define ODFocusSetCClassData (*resolve_ODFocusSetCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODFocusSet
#define ODFocusSet 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 ODFocusSet
    #define ODFocusSet SOMObject
#endif /* ODFocusSet */
#ifndef ODFocusSetIterator
    #define ODFocusSetIterator SOMObject
#endif /* ODFocusSetIterator */

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

#define ODFocusSet_MajorVersion 0
#define ODFocusSet_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODFocusSetNewClass c
#define ODFocusSetClassData d
#define ODFocusSetCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODFocusSet_classObj ODFocusSetClassData.classObject
#define _ODFocusSet ODFocusSet_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODFocusSetClassDataStructure {
	SOMClass *classObject;
	somMToken InitFocusSet;
	somMToken Add;
	somMToken Remove;
	somMToken Contains;
	somMToken CreateIterator;
	somMToken GetImplementation;
}  _ODFocusSetClassData;
SOMEXTERN struct ODFocusSetClassDataStructure * SOMLINK resolve_ODFocusSetClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODFocusSetCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODFocusSetCClassData;
SOMEXTERN struct ODFocusSetCClassDataStructure * SOMLINK resolve_ODFocusSetCClassData(void);

/*
 * New and Renew macros for ODFocusSet
 */
#define ODFocusSetNew() \
   (_somNew(_ODFocusSet ? _ODFocusSet : ODFocusSetNewClass(ODFocusSet_MajorVersion, ODFocusSet_MinorVersion)))
#define ODFocusSetRenew(buf) \
   (_somRenew(_ODFocusSet ? _ODFocusSet : ODFocusSetNewClass(ODFocusSet_MajorVersion, ODFocusSet_MinorVersion), buf))

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

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

/*
 * New Method: InitFocusSet
 */
typedef void   (SOMLINK * somTD_ODFocusSet_InitFocusSet)(ODFocusSet *somSelf, Environment *ev);
#define somMD_ODFocusSet_InitFocusSet "::ODFocusSet::InitFocusSet"
#define ODFocusSet_InitFocusSet(somSelf,ev) \
    (SOM_Resolve(somSelf, ODFocusSet, InitFocusSet) \
	(somSelf,ev))
#ifndef SOMGD_InitFocusSet
    #if (defined(_InitFocusSet) || defined(__InitFocusSet))
        #undef _InitFocusSet
        #undef __InitFocusSet
        #define SOMGD_InitFocusSet 1
    #else
        #define _InitFocusSet ODFocusSet_InitFocusSet
    #endif /* _InitFocusSet */
#endif /* SOMGD_InitFocusSet */

/*
 * New Method: Add
 */
typedef void   (SOMLINK * somTD_ODFocusSet_Add)(ODFocusSet *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODFocusSet_Add "::ODFocusSet::Add"
#define ODFocusSet_Add(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODFocusSet, Add) \
	(somSelf,ev,focus))
#ifndef SOMGD_Add
    #if (defined(_Add) || defined(__Add))
        #undef _Add
        #undef __Add
        #define SOMGD_Add 1
    #else
        #define _Add ODFocusSet_Add
    #endif /* _Add */
#endif /* SOMGD_Add */

/*
 * New Method: Remove
 */
typedef void   (SOMLINK * somTD_ODFocusSet_Remove)(ODFocusSet *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODFocusSet_Remove "::ODFocusSet::Remove"
#define ODFocusSet_Remove(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODFocusSet, Remove) \
	(somSelf,ev,focus))
#ifndef SOMGD_Remove
    #if (defined(_Remove) || defined(__Remove))
        #undef _Remove
        #undef __Remove
        #define SOMGD_Remove 1
    #else
        #define _Remove ODFocusSet_Remove
    #endif /* _Remove */
#endif /* SOMGD_Remove */

/*
 * New Method: Contains
 */
typedef ODBoolean   (SOMLINK * somTD_ODFocusSet_Contains)(ODFocusSet *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODFocusSet_Contains "::ODFocusSet::Contains"
#define ODFocusSet_Contains(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODFocusSet, Contains) \
	(somSelf,ev,focus))
#ifndef SOMGD_Contains
    #if (defined(_Contains) || defined(__Contains))
        #undef _Contains
        #undef __Contains
        #define SOMGD_Contains 1
    #else
        #define _Contains ODFocusSet_Contains
    #endif /* _Contains */
#endif /* SOMGD_Contains */

/*
 * New Method: CreateIterator
 */
typedef ODFocusSetIterator*   (SOMLINK * somTD_ODFocusSet_CreateIterator)(ODFocusSet *somSelf, Environment *ev);
#define somMD_ODFocusSet_CreateIterator "::ODFocusSet::CreateIterator"
#define ODFocusSet_CreateIterator(somSelf,ev) \
    (SOM_Resolve(somSelf, ODFocusSet, CreateIterator) \
	(somSelf,ev))
#ifndef SOMGD_CreateIterator
    #if (defined(_CreateIterator) || defined(__CreateIterator))
        #undef _CreateIterator
        #undef __CreateIterator
        #define SOMGD_CreateIterator 1
    #else
        #define _CreateIterator ODFocusSet_CreateIterator
    #endif /* _CreateIterator */
#endif /* SOMGD_CreateIterator */

/*
 * New Method: GetImplementation
 */
typedef LinkedList*   (SOMLINK * somTD_ODFocusSet_GetImplementation)(ODFocusSet *somSelf, Environment *ev);
#define somMD_ODFocusSet_GetImplementation "::ODFocusSet::GetImplementation"
#define ODFocusSet_GetImplementation(somSelf,ev) \
    (SOM_Resolve(somSelf, ODFocusSet, GetImplementation) \
	(somSelf,ev))
#ifndef SOMGD_GetImplementation
    #if (defined(_GetImplementation) || defined(__GetImplementation))
        #undef _GetImplementation
        #undef __GetImplementation
        #define SOMGD_GetImplementation 1
    #else
        #define _GetImplementation ODFocusSet_GetImplementation
    #endif /* _GetImplementation */
#endif /* SOMGD_GetImplementation */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODFocusSet_InitObject ODObject_InitObject
#define ODFocusSet_IsInitialized ODObject_IsInitialized
#define ODFocusSet_HasExtension ODObject_HasExtension
#define ODFocusSet_GetExtension ODObject_GetExtension
#define ODFocusSet_ReleaseExtension ODObject_ReleaseExtension
#define ODFocusSet_Purge ODObject_Purge
#define ODFocusSet_IsEqualTo ODObject_IsEqualTo
#define ODFocusSet_SubClassResponsibility ODObject_SubClassResponsibility
#define ODFocusSet_somDefaultInit SOMObject_somDefaultInit
#define ODFocusSet_somDestruct SOMObject_somDestruct
#define ODFocusSet_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODFocusSet_somDefaultAssign SOMObject_somDefaultAssign
#define ODFocusSet_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODFocusSet_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODFocusSet_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODFocusSet_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODFocusSet_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODFocusSet_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODFocusSet_somFree SOMObject_somFree
#define ODFocusSet_somGetClass SOMObject_somGetClass
#define ODFocusSet_somGetClassName SOMObject_somGetClassName
#define ODFocusSet_somGetSize SOMObject_somGetSize
#define ODFocusSet_somIsA SOMObject_somIsA
#define ODFocusSet_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODFocusSet_somRespondsTo SOMObject_somRespondsTo
#define ODFocusSet_somDispatch SOMObject_somDispatch
#define ODFocusSet_somClassDispatch SOMObject_somClassDispatch
#define ODFocusSet_somCastObj SOMObject_somCastObj
#define ODFocusSet_somResetObj SOMObject_somResetObj
#define ODFocusSet_somDispatchV SOMObject_somDispatchV
#define ODFocusSet_somDispatchL SOMObject_somDispatchL
#define ODFocusSet_somDispatchA SOMObject_somDispatchA
#define ODFocusSet_somDispatchD SOMObject_somDispatchD
#define ODFocusSet_somPrintSelf SOMObject_somPrintSelf
#define ODFocusSet_somDumpSelf SOMObject_somDumpSelf
#define ODFocusSet_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODFocusSet_h */
