/*++ Copyright (c) 1998 Microsoft Corporation All rights reserved. Module Name: dnode.h Abstract: Node template class for double link list. Author: Weihai Chen (WeihaiC) 05/12/99 Revision History: Weihai Chen (WeihaiC) 03/08/00 Rename to T* --*/ #ifndef _DNODE_H #define _DNODE_H ////////////////////////////////////////////////////////////////////// // // dnode.h: template for the DoubleList Node class. // ////////////////////////////////////////////////////////////////////// template <class T, class KEYTYPE> class TDoubleNode { public: TDoubleNode (void); TDoubleNode (T); TDoubleNode (T, TDoubleNode<T, KEYTYPE> *, TDoubleNode<T, KEYTYPE> *); virtual ~TDoubleNode (void); void SetNext (TDoubleNode<T, KEYTYPE> *); void SetPrev (TDoubleNode<T, KEYTYPE> *); TDoubleNode<T, KEYTYPE> * GetNext (); TDoubleNode<T, KEYTYPE> * GetPrev (); BOOL IsSameItem (T&); BOOL IsSameKey (KEYTYPE&); T GetData (void); void SetData (T pData); private: T m_Data; TDoubleNode<T, KEYTYPE> *m_pPrev; TDoubleNode<T, KEYTYPE> *m_pNext; }; #include "dnode.inl" #endif