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.
 
 
 
 
 
 

105 lines
2.7 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1992.
//
// File: FRESHLOG.HXX
//
// Contents: Fresh persistent log classes
//
// Classes: CPersRec, CPersStream, SPersStream, CPersFresh, CPersFreshTrans
//
// History: 93-Nov-15 DwightKr Created.
//
//----------------------------------------------------------------------------
#pragma once
#ifdef DISPLAY_INCLUDES
#pragma message( "#include <" __FILE__ ">..." )
#endif
#include <xact.hxx>
#include <pstore.hxx>
class CFreshTable;
class SRcovStorageObj;
class CPartList;
//+-------------------------------------------------------------------------
//
// Class: CPersRec
//
// Synopsis: Records written to CPersLog and CPersSnap objects to track
// changes to the presistent indexes.
//
// History: 93-Nov-15 DwightKr Created
//
//--------------------------------------------------------------------------
#include <pshpack4.h>
class CPersRec
{
public:
CPersRec( WORKID wid, INDEXID iid ) { _wid = wid; _iid = iid; }
WORKID GetWorkID() { return _wid; }
INDEXID GetIndexID() { return _iid; }
private:
WORKID _wid; // WorkID in record
INDEXID _iid; // IndexID in record
};
#include <poppack.h>
//+-------------------------------------------------------------------------
//
// Class: CPersFresh
//
// Synopsis: Keeps track of the persistant log in the freshlist
//
// History: 93-Nov-15 DwightKr Created
// 94-Sep-07 Srikants Modified Load and ctor
//
//--------------------------------------------------------------------------
class CIdxSubstitution;
class CPersFresh
{
public:
inline CPersFresh( PStorage & storage, CPartList & partList );
ULONG GetPersRecCount();
void LokEmpty();
void LoadFreshTest( CFreshTable & freshTable );
void LokCompactLog( SRcovStorageObj & persFreshLog,
CFreshTableIter & iter,
CIdxSubstitution& subst);
private:
PStorage & _storage; // Storage containing CPersFresh
CPartList & _partList;
};
//+---------------------------------------------------------------------------
//
// Member: CPersFresh::CPersFresh, public
//
// Synopsis: Constructor.
//
// Arguments: [storage] -- storage containing this CPersFresh
//
// History: 93-Nov-15 DwightKr Created.
//
//----------------------------------------------------------------------------
CPersFresh::CPersFresh( PStorage & storage, CPartList & partList )
: _storage(storage), _partList(partList)
{
}