Leaked source code of windows server 2003
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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1992.
//
// File: PRTIFLST.HXX
//
// Contents: Partition Information List
//
// Classes: CPartInfoList
// CPartInfo
//
// History: 16-Feb-94 SrikantS Created
//
//----------------------------------------------------------------------------
#pragma once
//+---------------------------------------------------------------------------
//
// Class: CPartInfo
//
// Purpose: Object holding information pertaining to a CI partition.
// This information is loaded from the index table.
//
// History: 2-16-94 srikants Created
//
// Notes:
//
//----------------------------------------------------------------------------
class CPartInfo : public CDoubleLink {
public:
CPartInfo(PARTITIONID partId );
PARTITIONID GetPartId() { return _partId; } WORKID GetChangeLogObjectId() { return _widChangeLog; } WORKID GetCurrMasterIndex() { return _widCurrMasterIndex; } WORKID GetNewMasterIndex() { return _widNewMasterIndex; } WORKID GetMMergeLog() { return _widMMergeLog; }
void SetChangeLogObjectId( WORKID wid ) { _widChangeLog = wid; } void SetCurrMasterIndex( WORKID wid ) { _widCurrMasterIndex = wid; } void SetNewMasterIndex( WORKID wid ) { _widNewMasterIndex = wid; } void SetMMergeLog( WORKID wid ) { _widMMergeLog = wid; }
private:
PARTITIONID _partId; WORKID _widChangeLog; WORKID _widCurrMasterIndex; WORKID _widNewMasterIndex; WORKID _widMMergeLog;
};
//+---------------------------------------------------------------------------
//
// Class: CPartInfoList
//
// Purpose: A list of CPartInfo structures.
//
// History: 2-16-94 srikants Created
//
// Notes:
//
//----------------------------------------------------------------------------
class CPartInfoList : public CDoubleList { friend class CForPartInfoIter;
public:
CPartInfoList(): _count(0) {} ~CPartInfoList();
ULONG Count() const { return _count; } void Append( CPartInfo* p ) { _Queue(p); _count++; } CPartInfo * GetFirst() { return (CPartInfo *) _Top(); } CPartInfo * GetPartInfo( PARTITIONID partId ); inline CPartInfo * RemoveFirst();
private:
ULONG _count; };
class SPartInfoList : INHERIT_UNWIND { DECLARE_UNWIND
public:
SPartInfoList( CPartInfoList * pList ) : _pList(pList) { END_CONSTRUCTION( SPartInfoList ) ; }
~SPartInfoList() { delete _pList; }
CPartInfoList * operator->() { return _pList; } CPartInfoList & operator* () { return *_pList; }
CPartInfoList * Acquire() { CPartInfoList * temp = _pList; _pList = 0; return temp; }
private:
CPartInfoList * _pList; };
//+---------------------------------------------------------------------------
//
// Class: CForPartInfoIter
//
// Purpose: Forward iterator for the CPartInfoList
//
// History: 2-16-94 srikants Created
//
// Notes:
//
//----------------------------------------------------------------------------
class CForPartInfoIter : public CForwardIter { public:
CForPartInfoIter ( CPartInfoList& list ) : CForwardIter(list) {}
CPartInfo* operator->() { return (CPartInfo *) _pLinkCur; } CPartInfo* GetPartInfo() { return (CPartInfo *) _pLinkCur; } };
inline CPartInfo* CPartInfoList::RemoveFirst() { ciDebugOut (( DEB_ITRACE, "CPartInfoList::RemoveFirst\n" ));
CPartInfo* pPartInfo = (CPartInfo*) _Pop(); if ( pPartInfo ) _count--;
return pPartInfo; }
|