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.
|
|
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2001 Microsoft Corporation
//
// Module Name:
// TaskCommitClusterChanges.h
//
// Description:
// CTaskCommitClusterChanges implementation.
//
// Maintained By:
// Galen Barbee (GalenB) 22-NOV-1999
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
// CTaskCommitClusterChanges
class CTaskCommitClusterChanges : public ITaskCommitClusterChanges , public INotifyUI , public IClusCfgCallback { private: // IUnknown
LONG m_cRef;
// ITaskCommitClusterChanges
BOOL m_fJoining; // If we are attempting to join...
OBJECTCOOKIE m_cookie; // Task completion cookie
IClusCfgCallback * m_pcccb; // Marshalled callback interface
OBJECTCOOKIE * m_pcookies; // Completion cookies for the subtasks.
ULONG m_cNodes; // Count of nodes/subtasks that need to signal completion.
HANDLE m_event; // Synchronization event to signal when subtasks have completed.
OBJECTCOOKIE m_cookieCluster; // Cookie of the cluster to commit changes
OBJECTCOOKIE m_cookieFormingNode; // Cookie of the forming node.
IUnknown * m_punkFormingNode; // The node to form the cluster.
BSTR m_bstrClusterName; // The cluster to form
BSTR m_bstrClusterBindingString; // The cluster to form
BSTR m_bstrAccountName; // The name of credentials used to run the cluster.
BSTR m_bstrAccountPassword; // The password of credentials used to run the cluster.
BSTR m_bstrAccountDomain; // The domain of credentials used to run the cluster.
ULONG m_ulIPAddress; // IP address of the new cluster.
ULONG m_ulSubnetMask; // IP subnet mask of the new cluster.
BSTR m_bstrNetworkUID; // UID of the network the IP should be advertized.
IEnumNodes * m_pen; // Nodes to form/join
INotifyUI * m_pnui; IObjectManager * m_pom; ITaskManager * m_ptm; IConnectionManager * m_pcm;
// INotifyUI
ULONG m_cSubTasksDone; // The number of subtasks done.
HRESULT m_hrStatus; // Status of callbacks
CTaskCommitClusterChanges( void ); ~CTaskCommitClusterChanges( void ); STDMETHOD( Init )( void );
HRESULT HrCompareAndPushInformationToNodes( void ); HRESULT HrGatherClusterInformation( void ); HRESULT HrFormFirstNode( void ); HRESULT HrAddJoiningNodes( void ); HRESULT HrAddAJoiningNode( BSTR bstrNameIn, OBJECTCOOKIE cookieIn );
public: // Methods
static HRESULT S_HrCreateInstance( IUnknown ** ppunkOut );
// IUnknown
STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv ); STDMETHOD_( ULONG, AddRef )( void ); STDMETHOD_( ULONG, Release )( void );
// IDoTask / ITaskCommitClusterChanges
STDMETHOD( BeginTask )( void ); STDMETHOD( StopTask )( void ); STDMETHOD( SetCookie )( OBJECTCOOKIE cookieIn ); STDMETHOD( SetClusterCookie )( OBJECTCOOKIE cookieClusterIn ); STDMETHOD( SetJoining )( void );
// IClusCfgCallback
STDMETHOD( SendStatusReport )( LPCWSTR pcszNodeNameIn , CLSID clsidTaskMajorIn , CLSID clsidTaskMinorIn , ULONG ulMinIn , ULONG ulMaxIn , ULONG ulCurrentIn , HRESULT hrStatusIn , LPCWSTR pcszDescriptionIn , FILETIME * pftTimeIn , LPCWSTR pcszReferenceIn );
// INotifyUI
STDMETHOD( ObjectChanged )( OBJECTCOOKIE cookieIn );
}; // class CTaskCommitClusterChanges
|