Leaked source code of windows server 2003
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.

117 lines
3.7 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2002 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // AsyncEvictCleanup.h
  7. //
  8. // Description:
  9. // This file contains the declaration of the CAsyncEvictCleanup
  10. // class. This class handles is used to clean up a node after it has been
  11. // evicted from a cluster.
  12. //
  13. // Documentation:
  14. // TODO: fill in pointer to external documentation
  15. //
  16. // Implementation Files:
  17. // AsyncEvictCleanup.cpp
  18. //
  19. // Maintained By:
  20. // Galen Barbee (GalenB) 04-AUG-2000
  21. //
  22. //////////////////////////////////////////////////////////////////////////////
  23. // Make sure that this file is included only once per compile path.
  24. #pragma once
  25. //////////////////////////////////////////////////////////////////////////////
  26. // Include Files
  27. //////////////////////////////////////////////////////////////////////////////
  28. // For IClusCfgAsyncEvictCleanup
  29. #include "ClusCfgClient.h"
  30. //////////////////////////////////////////////////////////////////////////////
  31. //++
  32. //
  33. // class CAsyncEvictCleanup
  34. //
  35. // Description:
  36. // This class handles is used to clean up a node after it has been
  37. // evicted from a cluster.
  38. //
  39. //--
  40. //////////////////////////////////////////////////////////////////////////////
  41. class CAsyncEvictCleanup
  42. : public TDispatchHandler< IClusCfgAsyncEvictCleanup >
  43. {
  44. public:
  45. //////////////////////////////////////////////////////////////////////////
  46. // IUnknown methods
  47. //////////////////////////////////////////////////////////////////////////
  48. STDMETHOD( QueryInterface )( REFIID riidIn, void ** ppvOut );
  49. STDMETHOD_( ULONG, AddRef )( void );
  50. STDMETHOD_( ULONG, Release )( void );
  51. //////////////////////////////////////////////////////////////////////////
  52. // IClusCfgAsyncEvictCleanup methods
  53. //////////////////////////////////////////////////////////////////////////
  54. // Performs the clean up actions on a node after it has been evicted from
  55. // a cluster
  56. STDMETHOD( CleanupNode )(
  57. BSTR bstrEvictedNodeNameIn
  58. , long nDelayIn
  59. , long nTimeoutIn
  60. );
  61. //////////////////////////////////////////////////////////////////////////
  62. // Other public methods
  63. //////////////////////////////////////////////////////////////////////////
  64. // Create an instance of this class.
  65. static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
  66. private:
  67. //////////////////////////////////////////////////////////////////////////
  68. // Private member functions
  69. //////////////////////////////////////////////////////////////////////////
  70. // Second phase of a two phase constructor.
  71. HRESULT HrInit( void );
  72. //
  73. // Private constructors, destructor and assignment operator.
  74. // All of these methods are private for two reasons:
  75. // 1. Lifetimes of objects of this class are controlled by S_HrCreateInstance and Release.
  76. // 2. Copying of an object of this class is prohibited.
  77. //
  78. // Default constructor.
  79. CAsyncEvictCleanup( void );
  80. // Destructor.
  81. ~CAsyncEvictCleanup( void );
  82. // Private copy constructor to prevent copying.
  83. CAsyncEvictCleanup( const CAsyncEvictCleanup & );
  84. // Private assignment operator to prevent copying.
  85. CAsyncEvictCleanup & operator =( const CAsyncEvictCleanup & );
  86. //////////////////////////////////////////////////////////////////////////
  87. // Private member data
  88. //////////////////////////////////////////////////////////////////////////
  89. // Reference count for this object.
  90. LONG m_cRef;
  91. }; //*** class CAsyncEvictCleanup