
/*
 * This file was generated by the SOM Compiler.
 * FileName: F:\build\newproj\include.ppc\tdict.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith: 2.41
 */

/*
 *    COMPONENT_NAME: somuc
 * 
 *    ORIGINS: 82, 81, 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.
 * 
 *    Copyright © 1988, 1989 Apple Computer, Inc. All rights reserved.
 * 
 * CLASS_NAME: somf_TDictionary
 * 
 * DESCRIPTION: This class represents a collection of paired objects
 *              (associations).  Because dictionaries are sometimes used
 *              to represent a bijective mapping, functions for retrieving a
 *              key given a value are provided along with the usual access
 *              functions (however, this will probably be slow).
 * 
 *  This file was generated by the SOM Compiler.
 *  FileName: TDict.id2.
 *  Generated using:
 *      SOM Precompiler spc: 6.13
 *      SOM Emitter emitidl.dll: 6.18
 */


#ifndef SOM_somf_TDictionary_h
#define SOM_somf_TDictionary_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 the class name as an object type
 */
#ifndef somf_TDictionary
#define somf_TDictionary SOMObject
#endif
#include <tcollect.h>

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef somf_TIterator
    #define somf_TIterator SOMObject
#endif /* somf_TIterator */
#ifndef somf_THashTable
    #define somf_THashTable SOMObject
#endif /* somf_THashTable */

/*
 * End of bindings for IDL types.
 */

/*
 * Passthru lines: File: "C.h", "after"
 */


#include <mcollect.h>
#include <thash.h>


#define somf_TDictionary_MajorVersion 2
#define somf_TDictionary_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define somf_TDictionaryNewClass c
#pragma linkage(c, system)
#define somf_TDictionaryClassData d
#define somf_TDictionaryCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define somf_TDictionary_classObj somf_TDictionaryClassData.classObject
#define _somf_TDictionary somf_TDictionary_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK somf_TDictionaryNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);
#pragma linkage(somf_TDictionaryNewClass, system)

/*
 * Declare the class data structure
 */
SOMEXTERN struct somf_TDictionaryClassDataStructure {
	SOMClass *classObject;
	somMToken somfDeleteAllKeys;
	somMToken somfDeleteAllValues;
	somMToken somfValueAt;
	somMToken somfKeyAtMF;
	somMToken somfKeyAtM;
	somMToken somfDeleteKey;
	somMToken somfAddKeyValuePairMMB;
	somMToken somfAddKeyValuePairMM;
	somMToken somfSetHashFunction;
	somMToken somfGetHashFunction;
	somMToken somfCreateNewImplementationFLLL;
	somMToken somfCreateNewImplementationF;
	somMToken somfCreateNewImplementationFL;
	somMToken somfCreateNewImplementationFLL;
	somMToken somfCopyImplementation;
	somMToken somfAssign;
	somMToken somfTDictionaryInitFLL;
	somMToken somfTDictionaryInitFL;
	somMToken somfTDictionaryInitF;
	somMToken somfTDictionaryInitLLF;
	somMToken somfTDictionaryInitLL;
	somMToken somfTDictionaryInitL;
	somMToken somfTDictionaryInitD;
} SOMDLINK somf_TDictionaryClassData;

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct somf_TDictionaryCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOMDLINK somf_TDictionaryCClassData;

/*
 * New and Renew macros for somf_TDictionary
 */
#define somf_TDictionaryNew() \
   (_somNew(_somf_TDictionary ? _somf_TDictionary : somf_TDictionaryNewClass(somf_TDictionary_MajorVersion, somf_TDictionary_MinorVersion)))
#define somf_TDictionaryRenew(buf) \
   (_somRenew(_somf_TDictionary ? _somf_TDictionary : somf_TDictionaryNewClass(somf_TDictionary_MajorVersion, somf_TDictionary_MinorVersion), buf))

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

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

/*
 * Override method: somfCreateIterator
 */
#define somf_TDictionary_somfCreateIterator(somSelf,ev) \
	somf_TCollection_somfCreateIterator(somSelf,ev)

/*
 * Override method: somfRemove
 */
#define somf_TDictionary_somfRemove(somSelf,ev,obj) \
	somf_TCollection_somfRemove(somSelf,ev,obj)

/*
 * Override method: somfRemoveAll
 */
#define somf_TDictionary_somfRemoveAll(somSelf,ev) \
	somf_TCollection_somfRemoveAll(somSelf,ev)

/*
 * Override method: somfDeleteAll
 */
#define somf_TDictionary_somfDeleteAll(somSelf,ev) \
	somf_TCollection_somfDeleteAll(somSelf,ev)

/*
 * Override method: somfCount
 */
#define somf_TDictionary_somfCount(somSelf,ev) \
	somf_TCollection_somfCount(somSelf,ev)

/*
 * Override method: somfMember
 */
#define somf_TDictionary_somfMember(somSelf,ev,obj) \
	somf_TCollection_somfMember(somSelf,ev,obj)

/*
 * Override method: somfAdd
 */
#define somf_TDictionary_somfAdd(somSelf,ev,obj) \
	somf_TCollection_somfAdd(somSelf,ev,obj)

/*
 * New Method: somfTDictionaryInitFLL
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitFLL(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn, 
		long sizeHint, 
		long growthRate);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitFLL, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitFLL *somTD_somf_TDictionary_somfTDictionaryInitFLL;
#define somMD_somf_TDictionary_somfTDictionaryInitFLL "::somf_TDictionary::somfTDictionaryInitFLL"
#define somf_TDictionary_somfTDictionaryInitFLL(somSelf,ev,testfn,sizeHint,growthRate) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitFLL) \
	(somSelf,ev,testfn,sizeHint,growthRate))
#ifndef SOMGD_somfTDictionaryInitFLL
    #if (defined(_somfTDictionaryInitFLL) || defined(__somfTDictionaryInitFLL))
        #undef _somfTDictionaryInitFLL
        #undef __somfTDictionaryInitFLL
        #define SOMGD_somfTDictionaryInitFLL 1
    #else
        #define _somfTDictionaryInitFLL somf_TDictionary_somfTDictionaryInitFLL
    #endif /* _somfTDictionaryInitFLL */
#endif /* SOMGD_somfTDictionaryInitFLL */

/*
 * New Method: somfTDictionaryInitFL
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitFL(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn, 
		long sizeHint);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitFL, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitFL *somTD_somf_TDictionary_somfTDictionaryInitFL;
#define somMD_somf_TDictionary_somfTDictionaryInitFL "::somf_TDictionary::somfTDictionaryInitFL"
#define somf_TDictionary_somfTDictionaryInitFL(somSelf,ev,testfn,sizeHint) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitFL) \
	(somSelf,ev,testfn,sizeHint))
#ifndef SOMGD_somfTDictionaryInitFL
    #if (defined(_somfTDictionaryInitFL) || defined(__somfTDictionaryInitFL))
        #undef _somfTDictionaryInitFL
        #undef __somfTDictionaryInitFL
        #define SOMGD_somfTDictionaryInitFL 1
    #else
        #define _somfTDictionaryInitFL somf_TDictionary_somfTDictionaryInitFL
    #endif /* _somfTDictionaryInitFL */
#endif /* SOMGD_somfTDictionaryInitFL */

/*
 * New Method: somfTDictionaryInitF
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitF(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitF, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitF *somTD_somf_TDictionary_somfTDictionaryInitF;
#define somMD_somf_TDictionary_somfTDictionaryInitF "::somf_TDictionary::somfTDictionaryInitF"
#define somf_TDictionary_somfTDictionaryInitF(somSelf,ev,testfn) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitF) \
	(somSelf,ev,testfn))
#ifndef SOMGD_somfTDictionaryInitF
    #if (defined(_somfTDictionaryInitF) || defined(__somfTDictionaryInitF))
        #undef _somfTDictionaryInitF
        #undef __somfTDictionaryInitF
        #define SOMGD_somfTDictionaryInitF 1
    #else
        #define _somfTDictionaryInitF somf_TDictionary_somfTDictionaryInitF
    #endif /* _somfTDictionaryInitF */
#endif /* SOMGD_somfTDictionaryInitF */

/*
 * New Method: somfTDictionaryInitLLF
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitLLF(somf_TDictionary *somSelf, Environment *ev, 
		long sizeHint, 
		long growthRate, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitLLF, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitLLF *somTD_somf_TDictionary_somfTDictionaryInitLLF;
#define somMD_somf_TDictionary_somfTDictionaryInitLLF "::somf_TDictionary::somfTDictionaryInitLLF"
#define somf_TDictionary_somfTDictionaryInitLLF(somSelf,ev,sizeHint,growthRate,testfn) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitLLF) \
	(somSelf,ev,sizeHint,growthRate,testfn))
#ifndef SOMGD_somfTDictionaryInitLLF
    #if (defined(_somfTDictionaryInitLLF) || defined(__somfTDictionaryInitLLF))
        #undef _somfTDictionaryInitLLF
        #undef __somfTDictionaryInitLLF
        #define SOMGD_somfTDictionaryInitLLF 1
    #else
        #define _somfTDictionaryInitLLF somf_TDictionary_somfTDictionaryInitLLF
    #endif /* _somfTDictionaryInitLLF */
#endif /* SOMGD_somfTDictionaryInitLLF */

/*
 * New Method: somfTDictionaryInitLL
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitLL(somf_TDictionary *somSelf, Environment *ev, 
		long sizeHint, 
		long growthRate);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitLL, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitLL *somTD_somf_TDictionary_somfTDictionaryInitLL;
#define somMD_somf_TDictionary_somfTDictionaryInitLL "::somf_TDictionary::somfTDictionaryInitLL"
#define somf_TDictionary_somfTDictionaryInitLL(somSelf,ev,sizeHint,growthRate) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitLL) \
	(somSelf,ev,sizeHint,growthRate))
#ifndef SOMGD_somfTDictionaryInitLL
    #if (defined(_somfTDictionaryInitLL) || defined(__somfTDictionaryInitLL))
        #undef _somfTDictionaryInitLL
        #undef __somfTDictionaryInitLL
        #define SOMGD_somfTDictionaryInitLL 1
    #else
        #define _somfTDictionaryInitLL somf_TDictionary_somfTDictionaryInitLL
    #endif /* _somfTDictionaryInitLL */
#endif /* SOMGD_somfTDictionaryInitLL */

/*
 * New Method: somfTDictionaryInitL
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitL(somf_TDictionary *somSelf, Environment *ev, 
		long sizeHint);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitL, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitL *somTD_somf_TDictionary_somfTDictionaryInitL;
#define somMD_somf_TDictionary_somfTDictionaryInitL "::somf_TDictionary::somfTDictionaryInitL"
#define somf_TDictionary_somfTDictionaryInitL(somSelf,ev,sizeHint) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitL) \
	(somSelf,ev,sizeHint))
#ifndef SOMGD_somfTDictionaryInitL
    #if (defined(_somfTDictionaryInitL) || defined(__somfTDictionaryInitL))
        #undef _somfTDictionaryInitL
        #undef __somfTDictionaryInitL
        #define SOMGD_somfTDictionaryInitL 1
    #else
        #define _somfTDictionaryInitL somf_TDictionary_somfTDictionaryInitL
    #endif /* _somfTDictionaryInitL */
#endif /* SOMGD_somfTDictionaryInitL */

/*
 * New Method: somfTDictionaryInitD
 */
typedef somf_TDictionary*   SOMLINK somTP_somf_TDictionary_somfTDictionaryInitD(somf_TDictionary *somSelf, Environment *ev, 
		somf_TDictionary* dictionary);
#pragma linkage(somTP_somf_TDictionary_somfTDictionaryInitD, system)
typedef somTP_somf_TDictionary_somfTDictionaryInitD *somTD_somf_TDictionary_somfTDictionaryInitD;
#define somMD_somf_TDictionary_somfTDictionaryInitD "::somf_TDictionary::somfTDictionaryInitD"
#define somf_TDictionary_somfTDictionaryInitD(somSelf,ev,dictionary) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfTDictionaryInitD) \
	(somSelf,ev,dictionary))
#ifndef SOMGD_somfTDictionaryInitD
    #if (defined(_somfTDictionaryInitD) || defined(__somfTDictionaryInitD))
        #undef _somfTDictionaryInitD
        #undef __somfTDictionaryInitD
        #define SOMGD_somfTDictionaryInitD 1
    #else
        #define _somfTDictionaryInitD somf_TDictionary_somfTDictionaryInitD
    #endif /* _somfTDictionaryInitD */
#endif /* SOMGD_somfTDictionaryInitD */

/*
 * New Method: somfAssign
 */
typedef void   SOMLINK somTP_somf_TDictionary_somfAssign(somf_TDictionary *somSelf, Environment *ev, 
		somf_TDictionary* source);
#pragma linkage(somTP_somf_TDictionary_somfAssign, system)
typedef somTP_somf_TDictionary_somfAssign *somTD_somf_TDictionary_somfAssign;
#define somMD_somf_TDictionary_somfAssign "::somf_TDictionary::somfAssign"
#define somf_TDictionary_somfAssign(somSelf,ev,source) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfAssign) \
	(somSelf,ev,source))
#ifndef SOMGD_somfAssign
    #if (defined(_somfAssign) || defined(__somfAssign))
        #undef _somfAssign
        #undef __somfAssign
        #define SOMGD_somfAssign 1
    #else
        #define _somfAssign somf_TDictionary_somfAssign
    #endif /* _somfAssign */
#endif /* SOMGD_somfAssign */

/*
 * New Method: somfDeleteAllKeys
 */
typedef void   SOMLINK somTP_somf_TDictionary_somfDeleteAllKeys(somf_TDictionary *somSelf, Environment *ev);
#pragma linkage(somTP_somf_TDictionary_somfDeleteAllKeys, system)
typedef somTP_somf_TDictionary_somfDeleteAllKeys *somTD_somf_TDictionary_somfDeleteAllKeys;
#define somMD_somf_TDictionary_somfDeleteAllKeys "::somf_TDictionary::somfDeleteAllKeys"
#define somf_TDictionary_somfDeleteAllKeys(somSelf,ev) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfDeleteAllKeys) \
	(somSelf,ev))
#ifndef SOMGD_somfDeleteAllKeys
    #if (defined(_somfDeleteAllKeys) || defined(__somfDeleteAllKeys))
        #undef _somfDeleteAllKeys
        #undef __somfDeleteAllKeys
        #define SOMGD_somfDeleteAllKeys 1
    #else
        #define _somfDeleteAllKeys somf_TDictionary_somfDeleteAllKeys
    #endif /* _somfDeleteAllKeys */
#endif /* SOMGD_somfDeleteAllKeys */

/*
 * New Method: somfDeleteAllValues
 */
typedef void   SOMLINK somTP_somf_TDictionary_somfDeleteAllValues(somf_TDictionary *somSelf, Environment *ev);
#pragma linkage(somTP_somf_TDictionary_somfDeleteAllValues, system)
typedef somTP_somf_TDictionary_somfDeleteAllValues *somTD_somf_TDictionary_somfDeleteAllValues;
#define somMD_somf_TDictionary_somfDeleteAllValues "::somf_TDictionary::somfDeleteAllValues"
#define somf_TDictionary_somfDeleteAllValues(somSelf,ev) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfDeleteAllValues) \
	(somSelf,ev))
#ifndef SOMGD_somfDeleteAllValues
    #if (defined(_somfDeleteAllValues) || defined(__somfDeleteAllValues))
        #undef _somfDeleteAllValues
        #undef __somfDeleteAllValues
        #define SOMGD_somfDeleteAllValues 1
    #else
        #define _somfDeleteAllValues somf_TDictionary_somfDeleteAllValues
    #endif /* _somfDeleteAllValues */
#endif /* SOMGD_somfDeleteAllValues */

/*
 * New Method: somfValueAt
 */
typedef somf_MCollectible*   SOMLINK somTP_somf_TDictionary_somfValueAt(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible* key);
#pragma linkage(somTP_somf_TDictionary_somfValueAt, system)
typedef somTP_somf_TDictionary_somfValueAt *somTD_somf_TDictionary_somfValueAt;
#define somMD_somf_TDictionary_somfValueAt "::somf_TDictionary::somfValueAt"
#define somf_TDictionary_somfValueAt(somSelf,ev,key) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfValueAt) \
	(somSelf,ev,key))
#ifndef SOMGD_somfValueAt
    #if (defined(_somfValueAt) || defined(__somfValueAt))
        #undef _somfValueAt
        #undef __somfValueAt
        #define SOMGD_somfValueAt 1
    #else
        #define _somfValueAt somf_TDictionary_somfValueAt
    #endif /* _somfValueAt */
#endif /* SOMGD_somfValueAt */

/*
 * New Method: somfKeyAtMF
 */
typedef somf_MCollectible*   SOMLINK somTP_somf_TDictionary_somfKeyAtMF(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible* val, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn);
#pragma linkage(somTP_somf_TDictionary_somfKeyAtMF, system)
typedef somTP_somf_TDictionary_somfKeyAtMF *somTD_somf_TDictionary_somfKeyAtMF;
#define somMD_somf_TDictionary_somfKeyAtMF "::somf_TDictionary::somfKeyAtMF"
#define somf_TDictionary_somfKeyAtMF(somSelf,ev,val,testfn) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfKeyAtMF) \
	(somSelf,ev,val,testfn))
#ifndef SOMGD_somfKeyAtMF
    #if (defined(_somfKeyAtMF) || defined(__somfKeyAtMF))
        #undef _somfKeyAtMF
        #undef __somfKeyAtMF
        #define SOMGD_somfKeyAtMF 1
    #else
        #define _somfKeyAtMF somf_TDictionary_somfKeyAtMF
    #endif /* _somfKeyAtMF */
#endif /* SOMGD_somfKeyAtMF */

/*
 * New Method: somfKeyAtM
 */
typedef somf_MCollectible*   SOMLINK somTP_somf_TDictionary_somfKeyAtM(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible* val);
#pragma linkage(somTP_somf_TDictionary_somfKeyAtM, system)
typedef somTP_somf_TDictionary_somfKeyAtM *somTD_somf_TDictionary_somfKeyAtM;
#define somMD_somf_TDictionary_somfKeyAtM "::somf_TDictionary::somfKeyAtM"
#define somf_TDictionary_somfKeyAtM(somSelf,ev,val) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfKeyAtM) \
	(somSelf,ev,val))
#ifndef SOMGD_somfKeyAtM
    #if (defined(_somfKeyAtM) || defined(__somfKeyAtM))
        #undef _somfKeyAtM
        #undef __somfKeyAtM
        #define SOMGD_somfKeyAtM 1
    #else
        #define _somfKeyAtM somf_TDictionary_somfKeyAtM
    #endif /* _somfKeyAtM */
#endif /* SOMGD_somfKeyAtM */

/*
 * New Method: somfDeleteKey
 */
typedef somf_MCollectible*   SOMLINK somTP_somf_TDictionary_somfDeleteKey(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible* key);
#pragma linkage(somTP_somf_TDictionary_somfDeleteKey, system)
typedef somTP_somf_TDictionary_somfDeleteKey *somTD_somf_TDictionary_somfDeleteKey;
#define somMD_somf_TDictionary_somfDeleteKey "::somf_TDictionary::somfDeleteKey"
#define somf_TDictionary_somfDeleteKey(somSelf,ev,key) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfDeleteKey) \
	(somSelf,ev,key))
#ifndef SOMGD_somfDeleteKey
    #if (defined(_somfDeleteKey) || defined(__somfDeleteKey))
        #undef _somfDeleteKey
        #undef __somfDeleteKey
        #define SOMGD_somfDeleteKey 1
    #else
        #define _somfDeleteKey somf_TDictionary_somfDeleteKey
    #endif /* _somfDeleteKey */
#endif /* SOMGD_somfDeleteKey */

/*
 * New Method: somfAddKeyValuePairMMB
 */
typedef somf_MCollectible*   SOMLINK somTP_somf_TDictionary_somfAddKeyValuePairMMB(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible* key, 
		somf_MCollectible* val, 
		boolean replace);
#pragma linkage(somTP_somf_TDictionary_somfAddKeyValuePairMMB, system)
typedef somTP_somf_TDictionary_somfAddKeyValuePairMMB *somTD_somf_TDictionary_somfAddKeyValuePairMMB;
#define somMD_somf_TDictionary_somfAddKeyValuePairMMB "::somf_TDictionary::somfAddKeyValuePairMMB"
#define somf_TDictionary_somfAddKeyValuePairMMB(somSelf,ev,key,val,replace) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfAddKeyValuePairMMB) \
	(somSelf,ev,key,val,replace))
#ifndef SOMGD_somfAddKeyValuePairMMB
    #if (defined(_somfAddKeyValuePairMMB) || defined(__somfAddKeyValuePairMMB))
        #undef _somfAddKeyValuePairMMB
        #undef __somfAddKeyValuePairMMB
        #define SOMGD_somfAddKeyValuePairMMB 1
    #else
        #define _somfAddKeyValuePairMMB somf_TDictionary_somfAddKeyValuePairMMB
    #endif /* _somfAddKeyValuePairMMB */
#endif /* SOMGD_somfAddKeyValuePairMMB */

/*
 * New Method: somfAddKeyValuePairMM
 */
typedef somf_MCollectible*   SOMLINK somTP_somf_TDictionary_somfAddKeyValuePairMM(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible* key, 
		somf_MCollectible* val);
#pragma linkage(somTP_somf_TDictionary_somfAddKeyValuePairMM, system)
typedef somTP_somf_TDictionary_somfAddKeyValuePairMM *somTD_somf_TDictionary_somfAddKeyValuePairMM;
#define somMD_somf_TDictionary_somfAddKeyValuePairMM "::somf_TDictionary::somfAddKeyValuePairMM"
#define somf_TDictionary_somfAddKeyValuePairMM(somSelf,ev,key,val) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfAddKeyValuePairMM) \
	(somSelf,ev,key,val))
#ifndef SOMGD_somfAddKeyValuePairMM
    #if (defined(_somfAddKeyValuePairMM) || defined(__somfAddKeyValuePairMM))
        #undef _somfAddKeyValuePairMM
        #undef __somfAddKeyValuePairMM
        #define SOMGD_somfAddKeyValuePairMM 1
    #else
        #define _somfAddKeyValuePairMM somf_TDictionary_somfAddKeyValuePairMM
    #endif /* _somfAddKeyValuePairMM */
#endif /* SOMGD_somfAddKeyValuePairMM */

/*
 * New Method: somfSetHashFunction
 */
typedef void   SOMLINK somTP_somf_TDictionary_somfSetHashFunction(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleHashFn fn);
#pragma linkage(somTP_somf_TDictionary_somfSetHashFunction, system)
typedef somTP_somf_TDictionary_somfSetHashFunction *somTD_somf_TDictionary_somfSetHashFunction;
#define somMD_somf_TDictionary_somfSetHashFunction "::somf_TDictionary::somfSetHashFunction"
#define somf_TDictionary_somfSetHashFunction(somSelf,ev,fn) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfSetHashFunction) \
	(somSelf,ev,fn))
#ifndef SOMGD_somfSetHashFunction
    #if (defined(_somfSetHashFunction) || defined(__somfSetHashFunction))
        #undef _somfSetHashFunction
        #undef __somfSetHashFunction
        #define SOMGD_somfSetHashFunction 1
    #else
        #define _somfSetHashFunction somf_TDictionary_somfSetHashFunction
    #endif /* _somfSetHashFunction */
#endif /* SOMGD_somfSetHashFunction */

/*
 * New Method: somfGetHashFunction
 */
typedef somf_MCollectible_somf_MCollectibleHashFn   SOMLINK somTP_somf_TDictionary_somfGetHashFunction(somf_TDictionary *somSelf, Environment *ev);
#pragma linkage(somTP_somf_TDictionary_somfGetHashFunction, system)
typedef somTP_somf_TDictionary_somfGetHashFunction *somTD_somf_TDictionary_somfGetHashFunction;
#define somMD_somf_TDictionary_somfGetHashFunction "::somf_TDictionary::somfGetHashFunction"
#define somf_TDictionary_somfGetHashFunction(somSelf,ev) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfGetHashFunction) \
	(somSelf,ev))
#ifndef SOMGD_somfGetHashFunction
    #if (defined(_somfGetHashFunction) || defined(__somfGetHashFunction))
        #undef _somfGetHashFunction
        #undef __somfGetHashFunction
        #define SOMGD_somfGetHashFunction 1
    #else
        #define _somfGetHashFunction somf_TDictionary_somfGetHashFunction
    #endif /* _somfGetHashFunction */
#endif /* SOMGD_somfGetHashFunction */

/*
 * New Method: somfCreateNewImplementationFLLL
 */
typedef somf_THashTable*   SOMLINK somTP_somf_TDictionary_somfCreateNewImplementationFLLL(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn, 
		long tablesize, 
		long rate, 
		long threshold);
#pragma linkage(somTP_somf_TDictionary_somfCreateNewImplementationFLLL, system)
typedef somTP_somf_TDictionary_somfCreateNewImplementationFLLL *somTD_somf_TDictionary_somfCreateNewImplementationFLLL;
#define somMD_somf_TDictionary_somfCreateNewImplementationFLLL "::somf_TDictionary::somfCreateNewImplementationFLLL"
#define somf_TDictionary_somfCreateNewImplementationFLLL(somSelf,ev,testfn,tablesize,rate,threshold) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfCreateNewImplementationFLLL) \
	(somSelf,ev,testfn,tablesize,rate,threshold))
#ifndef SOMGD_somfCreateNewImplementationFLLL
    #if (defined(_somfCreateNewImplementationFLLL) || defined(__somfCreateNewImplementationFLLL))
        #undef _somfCreateNewImplementationFLLL
        #undef __somfCreateNewImplementationFLLL
        #define SOMGD_somfCreateNewImplementationFLLL 1
    #else
        #define _somfCreateNewImplementationFLLL somf_TDictionary_somfCreateNewImplementationFLLL
    #endif /* _somfCreateNewImplementationFLLL */
#endif /* SOMGD_somfCreateNewImplementationFLLL */

/*
 * New Method: somfCreateNewImplementationF
 */
typedef somf_THashTable*   SOMLINK somTP_somf_TDictionary_somfCreateNewImplementationF(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn);
#pragma linkage(somTP_somf_TDictionary_somfCreateNewImplementationF, system)
typedef somTP_somf_TDictionary_somfCreateNewImplementationF *somTD_somf_TDictionary_somfCreateNewImplementationF;
#define somMD_somf_TDictionary_somfCreateNewImplementationF "::somf_TDictionary::somfCreateNewImplementationF"
#define somf_TDictionary_somfCreateNewImplementationF(somSelf,ev,testfn) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfCreateNewImplementationF) \
	(somSelf,ev,testfn))
#ifndef SOMGD_somfCreateNewImplementationF
    #if (defined(_somfCreateNewImplementationF) || defined(__somfCreateNewImplementationF))
        #undef _somfCreateNewImplementationF
        #undef __somfCreateNewImplementationF
        #define SOMGD_somfCreateNewImplementationF 1
    #else
        #define _somfCreateNewImplementationF somf_TDictionary_somfCreateNewImplementationF
    #endif /* _somfCreateNewImplementationF */
#endif /* SOMGD_somfCreateNewImplementationF */

/*
 * New Method: somfCreateNewImplementationFL
 */
typedef somf_THashTable*   SOMLINK somTP_somf_TDictionary_somfCreateNewImplementationFL(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn, 
		long tablesize);
#pragma linkage(somTP_somf_TDictionary_somfCreateNewImplementationFL, system)
typedef somTP_somf_TDictionary_somfCreateNewImplementationFL *somTD_somf_TDictionary_somfCreateNewImplementationFL;
#define somMD_somf_TDictionary_somfCreateNewImplementationFL "::somf_TDictionary::somfCreateNewImplementationFL"
#define somf_TDictionary_somfCreateNewImplementationFL(somSelf,ev,testfn,tablesize) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfCreateNewImplementationFL) \
	(somSelf,ev,testfn,tablesize))
#ifndef SOMGD_somfCreateNewImplementationFL
    #if (defined(_somfCreateNewImplementationFL) || defined(__somfCreateNewImplementationFL))
        #undef _somfCreateNewImplementationFL
        #undef __somfCreateNewImplementationFL
        #define SOMGD_somfCreateNewImplementationFL 1
    #else
        #define _somfCreateNewImplementationFL somf_TDictionary_somfCreateNewImplementationFL
    #endif /* _somfCreateNewImplementationFL */
#endif /* SOMGD_somfCreateNewImplementationFL */

/*
 * New Method: somfCreateNewImplementationFLL
 */
typedef somf_THashTable*   SOMLINK somTP_somf_TDictionary_somfCreateNewImplementationFLL(somf_TDictionary *somSelf, Environment *ev, 
		somf_MCollectible_somf_MCollectibleCompareFn testfn, 
		long tablesize, 
		long rate);
#pragma linkage(somTP_somf_TDictionary_somfCreateNewImplementationFLL, system)
typedef somTP_somf_TDictionary_somfCreateNewImplementationFLL *somTD_somf_TDictionary_somfCreateNewImplementationFLL;
#define somMD_somf_TDictionary_somfCreateNewImplementationFLL "::somf_TDictionary::somfCreateNewImplementationFLL"
#define somf_TDictionary_somfCreateNewImplementationFLL(somSelf,ev,testfn,tablesize,rate) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfCreateNewImplementationFLL) \
	(somSelf,ev,testfn,tablesize,rate))
#ifndef SOMGD_somfCreateNewImplementationFLL
    #if (defined(_somfCreateNewImplementationFLL) || defined(__somfCreateNewImplementationFLL))
        #undef _somfCreateNewImplementationFLL
        #undef __somfCreateNewImplementationFLL
        #define SOMGD_somfCreateNewImplementationFLL 1
    #else
        #define _somfCreateNewImplementationFLL somf_TDictionary_somfCreateNewImplementationFLL
    #endif /* _somfCreateNewImplementationFLL */
#endif /* SOMGD_somfCreateNewImplementationFLL */

/*
 * New Method: somfCopyImplementation
 */
typedef somf_THashTable*   SOMLINK somTP_somf_TDictionary_somfCopyImplementation(somf_TDictionary *somSelf, Environment *ev);
#pragma linkage(somTP_somf_TDictionary_somfCopyImplementation, system)
typedef somTP_somf_TDictionary_somfCopyImplementation *somTD_somf_TDictionary_somfCopyImplementation;
#define somMD_somf_TDictionary_somfCopyImplementation "::somf_TDictionary::somfCopyImplementation"
#define somf_TDictionary_somfCopyImplementation(somSelf,ev) \
    (SOM_Resolve(somSelf, somf_TDictionary, somfCopyImplementation) \
	(somSelf,ev))
#ifndef SOMGD_somfCopyImplementation
    #if (defined(_somfCopyImplementation) || defined(__somfCopyImplementation))
        #undef _somfCopyImplementation
        #undef __somfCopyImplementation
        #define SOMGD_somfCopyImplementation 1
    #else
        #define _somfCopyImplementation somf_TDictionary_somfCopyImplementation
    #endif /* _somfCopyImplementation */
#endif /* SOMGD_somfCopyImplementation */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define somf_TDictionary_somfAddAll somf_TCollection_somfAddAll
#define somf_TDictionary_somfTestFunction somf_TCollection_somfTestFunction
#define somf_TDictionary_somfSetTestFunction somf_TCollection_somfSetTestFunction
#define somf_TDictionary_somfTCollectionInit somf_TCollection_somfTCollectionInit
#define somf_TDictionary_somfClone somf_MCollectible_somfClone
#define somf_TDictionary_somfClonePointer somf_MCollectible_somfClonePointer
#define somf_TDictionary_somfHash somf_MCollectible_somfHash
#define somf_TDictionary_somfIsEqual somf_MCollectible_somfIsEqual
#define somf_TDictionary_somfIsSame somf_MCollectible_somfIsSame
#define somf_TDictionary_somfIsNotEqual somf_MCollectible_somfIsNotEqual
#define somf_TDictionary_somDefaultInit SOMObject_somDefaultInit
#define somf_TDictionary_somDestruct SOMObject_somDestruct
#define somf_TDictionary_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define somf_TDictionary_somDefaultAssign SOMObject_somDefaultAssign
#define somf_TDictionary_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define somf_TDictionary_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define somf_TDictionary_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define somf_TDictionary_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define somf_TDictionary_somDefaultVAssign SOMObject_somDefaultVAssign
#define somf_TDictionary_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define somf_TDictionary_somFree SOMObject_somFree
#define somf_TDictionary_somGetClass SOMObject_somGetClass
#define somf_TDictionary_somGetClassName SOMObject_somGetClassName
#define somf_TDictionary_somGetSize SOMObject_somGetSize
#define somf_TDictionary_somIsA SOMObject_somIsA
#define somf_TDictionary_somIsInstanceOf SOMObject_somIsInstanceOf
#define somf_TDictionary_somRespondsTo SOMObject_somRespondsTo
#define somf_TDictionary_somDispatch SOMObject_somDispatch
#define somf_TDictionary_somClassDispatch SOMObject_somClassDispatch
#define somf_TDictionary_somCastObj SOMObject_somCastObj
#define somf_TDictionary_somResetObj SOMObject_somResetObj
#define somf_TDictionary_somPrintSelf SOMObject_somPrintSelf
#define somf_TDictionary_somDumpSelf SOMObject_somDumpSelf
#define somf_TDictionary_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_somf_TDictionary_h */
