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

80 lines
2.6 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1997.
//
// File: rmstate.hxx
//
// Contents: CResManager state tracking
//
// Classes: CResManState
//
// History: 1-24-97 SrikantS Created
// 07-05-97 SitaramR Changed to use disable/enable updates logic
//
//----------------------------------------------------------------------------
#pragma once
enum EState
{
eSteady, // No scan is needed (or same as the state where
// client has been notified that updates are enabled)
eUpdatesToBeDisabled, // Client needs to be notified that updates are
// to be disabled. eUpdateType specifies
// whether this will need an incremental or a full
// update
eUpdatesDisabled, // Client has been notified that updates have
// been disabled
eUpdatesToBeEnabled, // Client needs to be notified that updates have
// to be enabled
};
enum EUpdateType // Type of update that needs to be done when updates
{ // are disabled and then subsequently enabled
eIncremental,
eFull
};
//+---------------------------------------------------------------------------
//
// Class: CResManState
//
// Purpose: Tracks the state of ContentIndex in CResManager (in-memory).
// Updates to be enabled/disabled events are kept track in this.
//
// History: 2-10-97 SrikantS Created
// 07-05-97 SitaramR Usns
//
//----------------------------------------------------------------------------
class CResManState
{
public:
CResManState()
: _eState( eSteady ),
_eUpdateType( eIncremental ),
_fCorruptionNotified(FALSE)
{
}
void LokSetState( EState eState ) { _eState = eState; }
EState LokGetState() const { return _eState; }
void LokSetUpdateType( EUpdateType eType ) { _eUpdateType = eType; }
EUpdateType LokGetUpdateType() const { return _eUpdateType; }
void LokSetCorruptionNotified() { _fCorruptionNotified = TRUE; }
BOOL FLokCorruptionNotified() const { return _fCorruptionNotified; }
private:
EState _eState; // State of updates
EUpdateType _eUpdateType; // Update type
BOOL _fCorruptionNotified; // Has corruption been notified to client ?
};