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.
|
|
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-2000 Microsoft Corporation
//
// Module Name:
// Cluster.h
//
// Abstract:
// Definition of the CCluster class.
//
// Author:
// David Potter (davidp) May 13, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef _CLUSTER_H_
#define _CLUSTER_H_
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
#ifndef _TREEITEM_
#include "ClusItem.h" // for CClusterItem
#endif
#ifndef _PROPLIST_H_
#include "PropList.h" // for CObjectProperty, CClusPropList
#endif
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CCluster;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CResource; class CNetworkList;
/////////////////////////////////////////////////////////////////////////////
// CCluster command target
/////////////////////////////////////////////////////////////////////////////
class CCluster : public CClusterItem { DECLARE_DYNCREATE(CCluster)
CCluster(void); // protected constructor used by dynamic creation
void Init( IN OUT CClusterDoc * pdoc, IN LPCTSTR lpszName, IN HCLUSTER hOpenedCluster = NULL );
// Attributes
protected: CLUSTERVERSIONINFO m_cvi; CString m_strQuorumResource; CString m_strQuorumPath; DWORD m_nMaxQuorumLogSize; DWORD m_nDefaultNetworkRole; DWORD m_nQuorumArbitrationTimeMax; DWORD m_nQuorumArbitrationTimeMin; BOOL m_bEnableEventLogReplication; CStringList m_lstrClusterExtensions; CStringList m_lstrNodeExtensions; CStringList m_lstrGroupExtensions; CStringList m_lstrResourceExtensions; CStringList m_lstrResTypeExtensions; CStringList m_lstrNetworkExtensions; CStringList m_lstrNetInterfaceExtensions;
CNetworkList * m_plpciNetworkPriority;
enum { epropDefaultNetworkRole = 0, epropDescription, epropEnableEventLogReplication, epropQuorumArbitrationTimeMax, epropQuorumArbitrationTimeMin, epropMAX };
CObjectProperty m_rgProps[epropMAX];
protected: virtual const CObjectProperty * Pprops(void) const { return m_rgProps; } virtual DWORD Cprops(void) const { return sizeof(m_rgProps) / sizeof(m_rgProps[0]); }
public: virtual const CStringList * PlstrExtensions(void) const; const CLUSTERVERSIONINFO & Cvi(void) const { return m_cvi; }
const CString & StrQuorumResource(void) const { return m_strQuorumResource; } const CString & StrQuorumPath(void) const { return m_strQuorumPath; } DWORD NMaxQuorumLogSize(void) const { return m_nMaxQuorumLogSize; }
const CStringList & LstrClusterExtensions(void) const { return m_lstrClusterExtensions; } const CStringList & LstrNodeExtensions(void) const { return m_lstrNodeExtensions; } const CStringList & LstrGroupExtensions(void) const { return m_lstrGroupExtensions; } const CStringList & LstrResourceExtensions(void) const { return m_lstrResourceExtensions; } const CStringList & LstrResTypeExtensions(void) const { return m_lstrResTypeExtensions; } const CStringList & LstrNetworkExtensions(void) const { return m_lstrNetworkExtensions; } const CStringList & LstrNetInterfaceExtensions(void) const { return m_lstrNetInterfaceExtensions; }
const CNetworkList & LpciNetworkPriority(void) const { ASSERT(m_plpciNetworkPriority != NULL); return *m_plpciNetworkPriority; }
// Operations
public: void SetName(IN LPCTSTR pszName); void SetDescription(IN LPCTSTR pszDesc); void SetQuorumResource( IN LPCTSTR pszResource, IN LPCTSTR pszQuorumPath, IN DWORD nMaxLogSize ); void SetNetworkPriority(IN const CNetworkList & rlpci);
void CollectNetworkPriority(IN OUT CNetworkList * plpci);
void ReadClusterInfo(void); void ReadClusterExtensions(void); void ReadNodeExtensions(void); void ReadGroupExtensions(void); void ReadResourceExtensions(void); void ReadResTypeExtensions(void); void ReadNetworkExtensions(void); void ReadNetInterfaceExtensions(void);
// Overrides
virtual void Cleanup(void); virtual void ReadItem(void); virtual void UpdateState(void); virtual void Rename(IN LPCTSTR pszName); virtual BOOL BCanBeEdited(void) const { return TRUE; } virtual void OnBeginLabelEdit(IN OUT CEdit * pedit); virtual BOOL BDisplayProperties(IN BOOL bReadOnly = FALSE); virtual BOOL BIsLabelEditValueValid(IN LPCTSTR pszName);
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCluster)
//}}AFX_VIRTUAL
// Implementation
public: virtual ~CCluster(void);
protected: // Generated message map functions
//{{AFX_MSG(CCluster)
afx_msg void OnUpdateProperties(CCmdUI* pCmdUI); //}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CCluster
/////////////////////////////////////////////////////////////////////////////
#endif // _CLUSTER_H_
|