windows-nt/Source/XPSP1/NT/net/wlbs/wmi/clusterwrapper.h
2020-09-26 16:20:57 +08:00

87 lines
2.4 KiB
C++

#include "wlbsiocl.h"
#include "wlbsparm.h"
#include "cluster.h"
class CWlbsControlWrapper; // forward declaration
class CWlbsCluster;
struct CClusterConfiguration
{
wstring szClusterName;
wstring szClusterIPAddress;
wstring szClusterNetworkMask;
wstring szClusterMACAddress;
long nMaxNodes;
bool bMulticastSupportEnable;
bool bRemoteControlEnabled;
bool bIgmpSupport;
bool bClusterIPToMulticastIP;
wstring szMulticastIPAddress;
bool bBDATeamActive;
wstring szBDATeamId;
bool bBDATeamMaster;
bool bBDAReverseHash;
};
struct CNodeConfiguration
{
/* obtained from the registry */
DWORD dwNumberOfRules;
DWORD dwCurrentVersion;
DWORD dwHostPriority;
wstring szDedicatedIPAddress;
wstring szDedicatedNetworkMask;
DWORD dwAliveMsgPeriod;
DWORD dwAliveMsgTolerance;
bool bClusterModeOnStart;
//bool bNBTSupportEnable;
bool bMaskSourceMAC;
DWORD dwRemoteControlUDPPort;
DWORD dwDescriptorsPerAlloc;
DWORD dwMaxDescriptorAllocs;
DWORD dwNumActions;
DWORD dwNumPackets;
DWORD dwNumAliveMsgs;
DWORD dwEffectiveVersion;
};
class CWlbsClusterWrapper : public CWlbsCluster
{
public:
DWORD GetHostID();
DWORD GetClusterIP() {return CWlbsCluster::GetClusterIp();}
DWORD GetClusterIpOrIndex(CWlbsControlWrapper* pControl);
void SetPortRuleDefaults();
void GetPortRule( DWORD dwVip, DWORD dwStartPort, PWLBS_PORT_RULE pPortRule );
void PutPortRule(const PWLBS_PORT_RULE a_pPortRule);
void EnumPortRules(PWLBS_PORT_RULE* ppPortRule, DWORD* pdwNumRules, DWORD dwFilteringMode);
void DeletePortRule(DWORD dwVip, DWORD dwStartPort);
bool RuleExists(DWORD dwVip, DWORD dwStartPort);
void GetClusterConfig( CClusterConfiguration& a_WlbsConfig);
void GetNodeConfig( CNodeConfiguration& a_WlbsConfig);
void PutClusterConfig( const CClusterConfiguration &a_WlbsConfig);
void PutNodeConfig( const CNodeConfiguration& a_WlbsConfig );
void SetNodeDefaults();
void SetClusterDefaults();
GUID GetAdapterGuid() {return CWlbsCluster::GetAdapterGuid();}
DWORD Commit(CWlbsControlWrapper* pControl);
void SetPassword( LPWSTR a_szPassword );
private:
CWlbsClusterWrapper() : CWlbsCluster(0){}; // Helper class, no instance
~CWlbsClusterWrapper() {}; // can not delete
};