Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
1.5 KiB

  1. #ifndef _SITEM_H
  2. #define _SITEM_H
  3. //////////////////////////////////////////////////////////////////////
  4. //
  5. // sitem.h: template for the SingleList Item class.
  6. //
  7. //////////////////////////////////////////////////////////////////////
  8. template <class T> class CSingleItem
  9. {
  10. public:
  11. CSingleItem (void);
  12. CSingleItem (T);
  13. CSingleItem (T, CSingleItem<T> *);
  14. ~CSingleItem (void);
  15. void SetNext (CSingleItem<T> *);
  16. CSingleItem<T> * GetNext ();
  17. BOOL IsSame (T&);
  18. T GetData (void);
  19. private:
  20. T m_Data;
  21. CSingleItem<T> *m_Next;
  22. };
  23. //////////////////////////////////////////////////////////////////////
  24. // Template for CSIngleItem
  25. //////////////////////////////////////////////////////////////////////
  26. template <class T>
  27. CSingleItem<T>::CSingleItem(void)
  28. : m_Data(NULL), m_Next(NULL)
  29. {
  30. }
  31. template <class T>
  32. CSingleItem<T>::CSingleItem(T item)
  33. : m_Data(item), m_Next(NULL)
  34. {
  35. }
  36. template <class T>
  37. CSingleItem<T>::CSingleItem(T item, CSingleItem<T>* next)
  38. : m_Data(item), m_Next(next)
  39. {
  40. }
  41. template <class T>
  42. CSingleItem<T>::~CSingleItem(void)
  43. {
  44. if (m_Data) {
  45. delete (m_Data);
  46. }
  47. }
  48. template <class T>
  49. void CSingleItem<T>::SetNext (CSingleItem<T> *item)
  50. {
  51. m_Next = item;
  52. }
  53. template <class T>
  54. CSingleItem<T> * CSingleItem<T>::GetNext (void )
  55. {
  56. return m_Next;
  57. }
  58. template <class T>
  59. T CSingleItem<T>::GetData (void )
  60. {
  61. return m_Data;
  62. }
  63. template <class T>
  64. BOOL CSingleItem<T>::IsSame (T &item)
  65. {
  66. return m_Data->Compare (item) == 0;
  67. }
  68. #endif