windows-nt/Source/XPSP1/NT/inetsrv/query/h/dirtree.hxx
2020-09-26 16:20:57 +08:00

63 lines
1.4 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1992.
//
// File: DIRTREE.HXX
//
// Contents: Directory Tree
//
// Classes: CDirTree
//
// History: 13-Aug-91 BartoszM Created
//
//----------------------------------------------------------------------------
#pragma once
class CKey;
class CKeyBuf;
//+---------------------------------------------------------------------------
//
// Class: CDirTree
//
// Purpose: Directory tree
//
// History: 13-Jun-91 BartoszM Created
//
//----------------------------------------------------------------------------
class CDirTree
{
public:
CDirTree(): _count(0) {
_pKeys = new CKeyArray(1);
}
~CDirTree() { delete _pKeys; }
void Init ( unsigned count );
void Init ( CKeyArray& keys, unsigned count );
void Add ( unsigned i, const CKeyBuf& key );
void Done( unsigned i );
unsigned Seek ( const CKey& key ) const;
unsigned CountLeaf() { return _count - _firstLeaf; }
#ifdef CIEXTMODE
void CiExtDump(void *ciExtSelf);
#endif
private:
unsigned Index( unsigned i );
unsigned _digits; // number of binary digits in _count
unsigned _count;
unsigned _firstLeaf;
CKeyArray * _pKeys;
};