//////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2000 Microsoft Corporation
//
//  Module Name:
//      CNodeCleanup.h
//
//  Description:
//      Header file for CNodeCleanup class.
//      The CNodeCleanup class is an action that cleans up a node that is no
//      longer a part of a cluster.
//
//  Implementation Files:
//      CNodeCleanup.cpp
//
//  Maintained By:
//      Vij Vasu (Vvasu) 01-MAY-2000
//
//////////////////////////////////////////////////////////////////////////////


// Make sure that this file is included only once per compile path.
#pragma once


//////////////////////////////////////////////////////////////////////////
// Include Files
//////////////////////////////////////////////////////////////////////////

// For the CNode base class
#include "CNode.h"


//////////////////////////////////////////////////////////////////////////
// Forward declaration
//////////////////////////////////////////////////////////////////////////

class CBaseClusterCleanup;


//////////////////////////////////////////////////////////////////////////////
//++
//
//  class CNodeCleanup
//
//  Description:
//      The CNodeCleanup class is an action that cleans up a node that is no
//      longer a part of a cluster.
//
//--
//////////////////////////////////////////////////////////////////////////////
class CNodeCleanup : public CNode
{
public:
    //////////////////////////////////////////////////////////////////////////
    // Constructors and destructors
    //////////////////////////////////////////////////////////////////////////

    // Constructor.
    CNodeCleanup( CBaseClusterCleanup * pbccParentActionIn );

    // Default destructor.
    ~CNodeCleanup();


    //////////////////////////////////////////////////////////////////////////
    // Public methods
    //////////////////////////////////////////////////////////////////////////

    //
    // Clean up the Node service.
    //
    void Commit();

    //
    // Rollback this cleanup.
    //
    void Rollback();


private:
    //////////////////////////////////////////////////////////////////////////
    // Private types
    //////////////////////////////////////////////////////////////////////////
    typedef CNode BaseClass;


    //////////////////////////////////////////////////////////////////////////
    // Private data
    //////////////////////////////////////////////////////////////////////////

}; //*** class CNodeCleanup
