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

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2002 Microsoft Corporation
//
// Module Name:
// AsyncEvictCleanup.h
//
// Description:
// This file contains the declaration of the CAsyncEvictCleanup
// class. This class handles is used to clean up a node after it has been
// evicted from a cluster.
//
// Documentation:
// TODO: fill in pointer to external documentation
//
// Implementation Files:
// AsyncEvictCleanup.cpp
//
// Maintained By:
// Galen Barbee (GalenB) 04-AUG-2000
//
//////////////////////////////////////////////////////////////////////////////
// Make sure that this file is included only once per compile path.
#pragma once
//////////////////////////////////////////////////////////////////////////////
// Include Files
//////////////////////////////////////////////////////////////////////////////
// For IClusCfgAsyncEvictCleanup
#include "ClusCfgClient.h"
//////////////////////////////////////////////////////////////////////////////
//++
//
// class CAsyncEvictCleanup
//
// Description:
// This class handles is used to clean up a node after it has been
// evicted from a cluster.
//
//--
//////////////////////////////////////////////////////////////////////////////
class CAsyncEvictCleanup
: public TDispatchHandler< IClusCfgAsyncEvictCleanup >
{
public:
//////////////////////////////////////////////////////////////////////////
// IUnknown methods
//////////////////////////////////////////////////////////////////////////
STDMETHOD( QueryInterface )( REFIID riidIn, void ** ppvOut );
STDMETHOD_( ULONG, AddRef )( void );
STDMETHOD_( ULONG, Release )( void );
//////////////////////////////////////////////////////////////////////////
// IClusCfgAsyncEvictCleanup methods
//////////////////////////////////////////////////////////////////////////
// Performs the clean up actions on a node after it has been evicted from
// a cluster
STDMETHOD( CleanupNode )(
BSTR bstrEvictedNodeNameIn
, long nDelayIn
, long nTimeoutIn
);
//////////////////////////////////////////////////////////////////////////
// Other public methods
//////////////////////////////////////////////////////////////////////////
// Create an instance of this class.
static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
private:
//////////////////////////////////////////////////////////////////////////
// Private member functions
//////////////////////////////////////////////////////////////////////////
// Second phase of a two phase constructor.
HRESULT HrInit( void );
//
// Private constructors, destructor and assignment operator.
// All of these methods are private for two reasons:
// 1. Lifetimes of objects of this class are controlled by S_HrCreateInstance and Release.
// 2. Copying of an object of this class is prohibited.
//
// Default constructor.
CAsyncEvictCleanup( void );
// Destructor.
~CAsyncEvictCleanup( void );
// Private copy constructor to prevent copying.
CAsyncEvictCleanup( const CAsyncEvictCleanup & );
// Private assignment operator to prevent copying.
CAsyncEvictCleanup & operator =( const CAsyncEvictCleanup & );
//////////////////////////////////////////////////////////////////////////
// Private member data
//////////////////////////////////////////////////////////////////////////
// Reference count for this object.
LONG m_cRef;
}; //*** class CAsyncEvictCleanup