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__
|