Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
1.8 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1997.
//
// File: appcur.hxx
//
// Contents:
//
// History:
//
//--------------------------------------------------------------------------
#pragma once
#include <ocursor.hxx>
#include <querble.hxx>
#include <recogniz.hxx>
class CHitSink;
class CAppQueriable : public CQueriable
{
public:
CAppQueriable ( CRecognizer& recog, CHitSink& hitSink )
: _recog (recog), _hitSink (hitSink) {}
COccCursor * QueryCursor( const CKey * pkey, BOOL isRange, ULONG & cMaxNodes );
COccCursor * QueryRangeCursor( const CKey * pkeyBegin,
const CKey * pkeyEnd,
ULONG & cMaxNodes );
COccCursor * QuerySynCursor( CKeyArray & keyArr,
BOOL isRange,
ULONG & cMaxNodes );
private:
CRecognizer& _recog;
CHitSink& _hitSink;
};
class CAppCursor : public COccCursor
{
public:
CAppCursor ( CRegionList& regList, CHitSink& hitSink );
// pure virtual overrides for CCursor
WORKID WorkId();
WORKID NextWorkId();
ULONG OccurrenceCount();
ULONG HitCount();
LONG Rank();
ULONG WorkIdCount(); // virtual
OCCURRENCE Occurrence();
OCCURRENCE NextOccurrence();
OCCURRENCE MaxOccurrence() { return 1; }
LONG Hit();
LONG NextHit();
void RatioFinished (ULONG& denom, ULONG& num) {}
private:
void Advance ();
void LoadPosition ();
CHitSink& _hitSink;
CRegionList& _regList;
CRegionIter _regIter;
OCCURRENCE _occ;
BOOL _fWidInvalid;
};