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

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


#ifndef SOM_ODValueIterator_h
#define SOM_ODValueIterator_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 ODValueIteratorClassData (*resolve_ODValueIteratorClassData())
#define ODValueIteratorCClassData (*resolve_ODValueIteratorCClassData())

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

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

#define ODValueIterator_MajorVersion 1
#define ODValueIterator_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODValueIteratorNewClass c
#define ODValueIteratorClassData d
#define ODValueIteratorCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODValueIterator_classObj ODValueIteratorClassData.classObject
#define _ODValueIterator ODValueIterator_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODValueIteratorClassDataStructure {
	SOMClass *classObject;
	somMToken InitValueIterator;
	somMToken First;
	somMToken Next;
	somMToken IsNotComplete;
}  _ODValueIteratorClassData;
SOMEXTERN struct ODValueIteratorClassDataStructure * SOMLINK resolve_ODValueIteratorClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODValueIteratorCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODValueIteratorCClassData;
SOMEXTERN struct ODValueIteratorCClassDataStructure * SOMLINK resolve_ODValueIteratorCClassData(void);

/*
 * New and Renew macros for ODValueIterator
 */
#define ODValueIteratorNew() \
   (_somNew(_ODValueIterator ? _ODValueIterator : ODValueIteratorNewClass(ODValueIterator_MajorVersion, ODValueIterator_MinorVersion)))
#define ODValueIteratorRenew(buf) \
   (_somRenew(_ODValueIterator ? _ODValueIterator : ODValueIteratorNewClass(ODValueIterator_MajorVersion, ODValueIterator_MinorVersion), buf))

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

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

/*
 * New Method: InitValueIterator
 */
typedef void   (SOMLINK * somTD_ODValueIterator_InitValueIterator)(ODValueIterator *somSelf, Environment *ev,
		ODValueNameSpace* nameSpace);
#define somMD_ODValueIterator_InitValueIterator "::ODValueIterator::InitValueIterator"
#define ODValueIterator_InitValueIterator(somSelf,ev,nameSpace) \
    (SOM_Resolve(somSelf, ODValueIterator, InitValueIterator) \
	(somSelf,ev,nameSpace))
#ifndef SOMGD_InitValueIterator
    #if (defined(_InitValueIterator) || defined(__InitValueIterator))
        #undef _InitValueIterator
        #undef __InitValueIterator
        #define SOMGD_InitValueIterator 1
    #else
        #define _InitValueIterator ODValueIterator_InitValueIterator
    #endif /* _InitValueIterator */
#endif /* SOMGD_InitValueIterator */

/*
 * New Method: First
 */
typedef void   (SOMLINK * somTD_ODValueIterator_First)(ODValueIterator *somSelf, Environment *ev,
		ODISOStr* key,
		ODPtr* value,
		ODULong* valueLength);
#define somMD_ODValueIterator_First "::ODValueIterator::First"
#define ODValueIterator_First(somSelf,ev,key,value,valueLength) \
    (SOM_Resolve(somSelf, ODValueIterator, First) \
	(somSelf,ev,key,value,valueLength))
#ifndef SOMGD_First
    #if (defined(_First) || defined(__First))
        #undef _First
        #undef __First
        #define SOMGD_First 1
    #else
        #define _First ODValueIterator_First
    #endif /* _First */
#endif /* SOMGD_First */

/*
 * New Method: Next
 */
typedef void   (SOMLINK * somTD_ODValueIterator_Next)(ODValueIterator *somSelf, Environment *ev,
		ODISOStr* key,
		ODPtr* value,
		ODULong* valueLength);
#define somMD_ODValueIterator_Next "::ODValueIterator::Next"
#define ODValueIterator_Next(somSelf,ev,key,value,valueLength) \
    (SOM_Resolve(somSelf, ODValueIterator, Next) \
	(somSelf,ev,key,value,valueLength))
#ifndef SOMGD_Next
    #if (defined(_Next) || defined(__Next))
        #undef _Next
        #undef __Next
        #define SOMGD_Next 1
    #else
        #define _Next ODValueIterator_Next
    #endif /* _Next */
#endif /* SOMGD_Next */

/*
 * New Method: IsNotComplete
 */
typedef ODBoolean   (SOMLINK * somTD_ODValueIterator_IsNotComplete)(ODValueIterator *somSelf, Environment *ev);
#define somMD_ODValueIterator_IsNotComplete "::ODValueIterator::IsNotComplete"
#define ODValueIterator_IsNotComplete(somSelf,ev) \
    (SOM_Resolve(somSelf, ODValueIterator, IsNotComplete) \
	(somSelf,ev))
#ifndef SOMGD_IsNotComplete
    #if (defined(_IsNotComplete) || defined(__IsNotComplete))
        #undef _IsNotComplete
        #undef __IsNotComplete
        #define SOMGD_IsNotComplete 1
    #else
        #define _IsNotComplete ODValueIterator_IsNotComplete
    #endif /* _IsNotComplete */
#endif /* SOMGD_IsNotComplete */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODValueIterator_InitObject ODObject_InitObject
#define ODValueIterator_IsInitialized ODObject_IsInitialized
#define ODValueIterator_HasExtension ODObject_HasExtension
#define ODValueIterator_GetExtension ODObject_GetExtension
#define ODValueIterator_ReleaseExtension ODObject_ReleaseExtension
#define ODValueIterator_Purge ODObject_Purge
#define ODValueIterator_IsEqualTo ODObject_IsEqualTo
#define ODValueIterator_SubClassResponsibility ODObject_SubClassResponsibility
#define ODValueIterator_somDefaultInit SOMObject_somDefaultInit
#define ODValueIterator_somDestruct SOMObject_somDestruct
#define ODValueIterator_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODValueIterator_somDefaultAssign SOMObject_somDefaultAssign
#define ODValueIterator_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODValueIterator_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODValueIterator_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODValueIterator_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODValueIterator_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODValueIterator_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODValueIterator_somFree SOMObject_somFree
#define ODValueIterator_somGetClass SOMObject_somGetClass
#define ODValueIterator_somGetClassName SOMObject_somGetClassName
#define ODValueIterator_somGetSize SOMObject_somGetSize
#define ODValueIterator_somIsA SOMObject_somIsA
#define ODValueIterator_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODValueIterator_somRespondsTo SOMObject_somRespondsTo
#define ODValueIterator_somDispatch SOMObject_somDispatch
#define ODValueIterator_somClassDispatch SOMObject_somClassDispatch
#define ODValueIterator_somCastObj SOMObject_somCastObj
#define ODValueIterator_somResetObj SOMObject_somResetObj
#define ODValueIterator_somDispatchV SOMObject_somDispatchV
#define ODValueIterator_somDispatchL SOMObject_somDispatchL
#define ODValueIterator_somDispatchA SOMObject_somDispatchA
#define ODValueIterator_somDispatchD SOMObject_somDispatchD
#define ODValueIterator_somPrintSelf SOMObject_somPrintSelf
#define ODValueIterator_somDumpSelf SOMObject_somDumpSelf
#define ODValueIterator_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODValueIterator_h */
