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

111 lines
2.9 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1998.
//
// File: QCAT.HXX
//
// Contents: Query catalog -- downlevel catalog w/o CI support
//
// History: 18-Aug-94 KyleP Extracted from CiCat
//
//----------------------------------------------------------------------------
#pragma once
#include <catalog.hxx>
#include <spropmap.hxx>
class CPidMapper;
//+---------------------------------------------------------------------------
//
// Class: CQCat
//
// Purpose: Catalog for downlevel media used by content index
//
// History: 10-Mar-92 BartoszM Created
//
//----------------------------------------------------------------------------
class CQCat: public PCatalog
{
friend class CUpdate;
public:
CQCat( WCHAR const * pwcName=0 );
virtual ~CQCat ();
// Tell the world we are a real catalog ...
BOOL IsNullCatalog()
{
return FALSE;
}
//
// The following are implemented.
//
PROPID PropertyToPropId ( CFullPropSpec const & ps, BOOL fCreate = FALSE )
{
return _propMapper.PropertyToPropId( ps, fCreate);
}
//
// The following are CI-Specific and will return an error.
//
unsigned WorkIdToPath ( WORKID wid, CFunnyPath & funnyPath );
WORKID PathToWorkId ( const CLowerFunnyPath & lcaseFunnyPath, const BOOL fCreate );
CRWStore * ComputeRelevantWords(ULONG cRows,ULONG cRW,
WORKID *pwid,PARTITIONID partid);
CRWStore * RetrieveRelevantWords(BOOL fAcquire,PARTITIONID partid);
PStorage& GetStorage ();
unsigned ReserveUpdate( WORKID wid );
void Update( unsigned iHint, WORKID wid, PARTITIONID partid, USN usn, ULONG flags );
void DisableUsnUpdate( PARTITIONID partid );
void EnableUsnUpdate( PARTITIONID partid );
void UpdateDocuments ( WCHAR const* rootPath=0, ULONG flag=UPD_FULL );
void SetPartition( PARTITIONID PartId );
PARTITIONID GetPartition() const;
WCHAR * GetDriveName();
SCODE CreateContentIndex();
void EmptyContentIndex();
void PidMapToPidRemap( const CPidMapper & pidMap,
CPidRemapper & pidRemap );
NTSTATUS CiState( CI_STATE & state );
void FlushScanStatus() {}
CCiRegParams * GetRegParams() { return & _regParams; }
CScopeFixup * GetScopeFixup() { Win4Assert( !"not implemented" ); return 0; }
protected:
PROPID StandardPropertyToPropId ( CFullPropSpec const & ps )
{
return _propMapper.StandardPropertyToPropId( ps );
}
CCiRegParams _regParams;
private:
//
// This array will hold the mapping of GUID\DISPID and GUID\Name to pid.
// "Real" pids are allocated sequentially, and are good only for the life
// of the catalog object.
//
CStandardPropMapper _propMapper;
};