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.
 
 
 
 
 
 

169 lines
6.3 KiB

/////////////////////////////////////////////////////////////////////////////
//
// 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_