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