windows-nt/Source/XPSP1/NT/inetsrv/iis/lkrhash/samples/hashtest/inifile.h
2020-09-26 16:20:57 +08:00

90 lines
2.4 KiB
C++

/*++
Copyright (c) 1998-2000 Microsoft Corporation
Module Name :
HashTest.h
Abstract:
Test harness for LKRhash
Author:
George V. Reilly (GeorgeRe) 06-Jan-1998
Environment:
Win32 - User Mode
Project:
Internet Information Server RunTime Library
Revision History:
--*/
#ifndef __INIFILE_H__
#define __INIFILE_H__
#ifndef _MAX_PATH
# define _MAX_PATH 260
#endif
class CIniFileSettings
{
public:
TCHAR m_tszIniFile[_MAX_PATH]; // the .ini file
TCHAR m_tszDataFile[_MAX_PATH]; // where string data table lives
int m_nMaxKeys; // maximum number of keys
double m_dblHighLoad; // maximum load of table (avg. bucket length)
DWORD m_nInitSize; // initsize (1 => "small", 2 => "medium",
// 3 => "large", other => exact)
int m_nSubTables; // num subtables (0 => heuristic)
int m_nLookupFreq; // lookup frequency
int m_nMinThreads; // min threads
int m_nMaxThreads; // max threads
int m_nRounds; // num rounds
int m_nSeed; // random seed
bool m_fCaseInsensitive; // case-insensitive
bool m_fMemCmp; // memcmp or strcmp
int m_nLastChars; // num last chars (0 => all chars)
WORD m_wTableSpin; // table lock spin count (0 => no spinning on
// MP machines)
WORD m_wBucketSpin; // bucket lock spin count (0 => no MP spinning)
double m_dblSpinAdjFctr; // spin adjustment factor
bool m_fTestIterators; // run test_iterators?
int m_nInsertIfNotFound;// test WriteLock, if(!FindKey) InsertRec, WUL?
// if IINF > 0, do this with probability 1/IINF
int m_nFindKeyCopy; // search for a COPY of the key?
// if FKC > 0, do this probability 1/FKC
bool m_fNonPagedAllocs;
bool m_fRefTrace;
int
ParseIniFile(
LPCSTR pszIniFile);
void
ReadIniFile(
LPCTSTR ptszIniFile);
void
Dump(
LPCTSTR ptszProlog,
LPCTSTR ptszEpilog) const;
};
extern "C"
const TCHAR*
CommaNumber(
int n,
TCHAR* ptszBuff);
int
LKR_TestHashTable(
CIniFileSettings& ifs);
extern "C"
int
NumProcessors();
#endif // __INIFILE_H__