108 lines
2.2 KiB
C++
108 lines
2.2 KiB
C++
//+--------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1996.
|
|
//
|
|
// File: entry.hxx
|
|
//
|
|
// Contents: Entry management classes
|
|
//
|
|
// Classes: PEntry
|
|
// CDirectEntry
|
|
//
|
|
//---------------------------------------------------------------
|
|
|
|
#ifndef __ENTRY_HXX__
|
|
#define __ENTRY_HXX__
|
|
|
|
#include "msf.hxx"
|
|
|
|
//+--------------------------------------------------------------
|
|
//
|
|
// Class: PEntry (en)
|
|
//
|
|
// Purpose: Entry management
|
|
//
|
|
// Interface: See below
|
|
//
|
|
//---------------------------------------------------------------
|
|
|
|
#define ROOT_LUID 1
|
|
#define MINISTREAM_LUID 2
|
|
#define ITERATOR_LUID 3
|
|
#define LUID_BASE 4
|
|
|
|
class PEntry
|
|
{
|
|
public:
|
|
inline DFLUID GetLuid(void);
|
|
virtual SCODE GetTime(WHICHTIME wt, TIME_T *ptm) = 0;
|
|
virtual SCODE SetTime(WHICHTIME wt, TIME_T tm) = 0;
|
|
|
|
SCODE CopyTimesFrom(PEntry *penFrom);
|
|
|
|
static inline DFLUID GetNewLuid(void);
|
|
|
|
protected:
|
|
PEntry(DFLUID dl);
|
|
|
|
private:
|
|
static DFLUID _dlBase;
|
|
|
|
const DFLUID _dl;
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(disable:4512)
|
|
// default assignment operator could not be generated since we have a const
|
|
// member variable. This is okay snce we are not using the assignment
|
|
// operatot anyway.
|
|
#endif
|
|
};
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(default:4512)
|
|
#endif
|
|
|
|
//+--------------------------------------------------------------
|
|
//
|
|
// Member: PEntry::GetNewLuid, public
|
|
//
|
|
// Synopsis: Returns a new luid
|
|
//
|
|
//---------------------------------------------------------------
|
|
|
|
inline DFLUID PEntry::GetNewLuid(void)
|
|
{
|
|
DFLUID dl = _dlBase;
|
|
AtomicInc((long *)&_dlBase);
|
|
return dl;
|
|
}
|
|
|
|
//+--------------------------------------------------------------
|
|
//
|
|
// Member: PEntry::PEntry, protected
|
|
//
|
|
// Synopsis: Constructor, sets luid
|
|
//
|
|
//---------------------------------------------------------------
|
|
|
|
inline PEntry::PEntry(DFLUID dl)
|
|
: _dl(dl)
|
|
{
|
|
}
|
|
|
|
//+--------------------------------------------------------------
|
|
//
|
|
// Member: PEntry::GetLuid, public
|
|
//
|
|
// Synopsis: Returns the luid
|
|
//
|
|
//---------------------------------------------------------------
|
|
|
|
inline DFLUID PEntry::GetLuid(void)
|
|
{
|
|
return _dl;
|
|
}
|
|
|
|
#endif // #ifndef __ENTRY_HXX__
|