windows-nt/Source/XPSP1/NT/inetsrv/query/web/dll/idqreg.hxx
2020-09-26 16:20:57 +08:00

104 lines
3.5 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 2000.
//
// File: IDQREG.HXX
//
// Contents: Default registry parameters for idq.dll
//
// History: 22 Oct 97 AlanW Created from params.hxx
//
//----------------------------------------------------------------------------
#pragma once
const ULONG IS_DATETIME_FORMATTING_USER_LCID = 0;
const ULONG IS_DATETIME_FORMATTING_SYSTEM_LCID = 1;
const ULONG IS_DATETIME_FORMATTING_FAST_LCID = 2;
//+---------------------------------------------------------------------------
//
// Class: CIdqRegVars
//
// Purpose: Registry variables used by IDQ.dll
//
// History 10-11-96 dlee Created from user+kernel params
//
//----------------------------------------------------------------------------
class CIdqRegVars
{
public:
void SetDefault();
ULONG _maxISRowsInResultSet; // max rows in result for ISAPI exten.
ULONG _maxISQueryCache; // max size of query cache for ISAPI exten.
ULONG _ISFirstRowsInResultSet;
ULONG _ISCachePurgeInterval; // query cache purge interval for ISAPI ext.
ULONG _ISRequestQueueSize; // query queue for web requests w for ISAPI ext.
ULONG _ISRequestThresholdFactor; // thread factor for # processors for
// queueing requests
ULONG _ISDateTimeFormatting; // mode for formatting date/time
ULONG _ISDateTimeLocal; // 0 for GMT, 1 for local system time
// Note: Not really an IDQ param, but used with ISRequestThresholdFactor to
// compute the max # of threads in idq.dll.
ULONG _maxActiveQueryThreads; // Maximum number of query threads to allow
WCHAR _awcISDefaultCatalog[_MAX_PATH]; // default IS catalog dir
};
//+---------------------------------------------------------------------------
//
// Class: CIdqRegParams
//
// Purpose: Registry variables used by CI
//
// History 10-11-96 dlee Created from user+kernel params
//
//----------------------------------------------------------------------------
class CRegAccess;
class CIdqRegParams : public CIdqRegVars
{
public :
CIdqRegParams( );
void Refresh( BOOL fUseDefaultsOnFailure = FALSE );
const ULONG GetMaxISRowsInResultSet() { return _maxISRowsInResultSet; }
const ULONG GetMaxISQueryCache() { return _maxISQueryCache; }
const ULONG GetISFirstRowsInResultSet() { return _ISFirstRowsInResultSet; }
const ULONG GetISCachePurgeInterval() { return _ISCachePurgeInterval; }
const ULONG GetISRequestQueueSize() { return _ISRequestQueueSize; }
const ULONG GetISRequestThresholdFactor() { return _ISRequestThresholdFactor; }
const ULONG GetMaxActiveQueryThreads() { return _maxActiveQueryThreads; }
const ULONG GetDateTimeFormatting() { return _ISDateTimeFormatting; }
const BOOL GetDateTimeLocal() { return 0 != _ISDateTimeLocal; }
const ULONG GetISDefaultCatalog( WCHAR *pwc, ULONG cwc )
{
CLock lock( _mutex );
// copy the whole string under lock
ULONG cwcBuf = wcslen( _awcISDefaultCatalog );
if ( cwc > cwcBuf )
wcscpy( pwc, _awcISDefaultCatalog );
return cwcBuf;
}
private:
void _ReadValues( CRegAccess & reg, CIdqRegVars & vars );
void _ReadAndOverrideValues( CRegAccess & reg );
void _StoreNewValues( CIdqRegVars & vars );
CMutexSem _mutex; // Used to serialize access
};