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

237 lines
6.9 KiB
C++

#ifndef COMMONNLB_H
#define COMMONNLB_H
#include "stdafx.h"
#include "DataSinkI.h"
#include "LeftView.h"
#include "MNLBUIData.h"
#include "MNLBNetCfg.h"
#include "Common.h"
class CommonNLB
{
public:
enum CommonNLB_Error
{
CommonNLB_SUCCESS = 0,
};
#if 0
class NicNLBBound
{
public:
_bstr_t fullNicName;
_bstr_t adapterGuid;
_bstr_t friendlyName;
bool isDHCPEnabled;
vector<_bstr_t> ipsOnNic;
vector<_bstr_t> subnetMasks;
bool isBoundToNLB;
};
#endif
class NicNLBBound : public NicInfo
{
public:
bool isBoundToNLB;
};
static
CommonNLB_Error
connectToClusterDirectOld( const _bstr_t& clusterIP,
ClusterData* clusterData,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
connectToClusterDirect( const _bstr_t& clusterIP,
const _bstr_t& hostMember,
ClusterData* p_clusterData,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
connectToClusterIndirect( const _bstr_t& clusterIP,
const vector<_bstr_t>& connectionIPS,
ClusterData* clusterData,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
connectToClusterIndirectNew( const _bstr_t& clusterIP,
const vector<_bstr_t>& connectionIPS,
vector< ClusterData>* clusterDataStore,
bool& clusterPropertiesMatched,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
connectToMachine( const _bstr_t& machineToConnect,
_bstr_t& machineServerName,
vector< NicNLBBound >& nicList,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
changeNLBHostSettings( const ClusterData* oldSettings,
const ClusterData* newSettings,
const _bstr_t& machineName,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
addHostToClusterOld( const ClusterData* clusterToAddTo,
const _bstr_t& machineName,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
addHostToCluster( const ClusterData* clusterToAddTo,
const _bstr_t& machineName,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
changeNLBClusterSettings( const ClusterData* oldSettings,
const ClusterData* newSettings,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
changeNLBHostPortSettings( const ClusterData* oldSettings,
const ClusterData* newSettings,
const _bstr_t& machineName,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
changeNLBClusterAndPortSettings( const ClusterData* oldSettings,
const ClusterData* newSettings,
DataSinkI* dataSinkObj,
bool* pbClusterIpChanged);
static
CommonNLB_Error
removeCluster( const ClusterData* clusterSettings,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
removeHost( const ClusterData* clusterSettings,
const _bstr_t& machineName,
DataSinkI* dataSinkObj );
static
CommonNLB_Error
runControlMethodOnCluster( const ClusterData* clusterSettings,
DataSinkI* dataSinkObj,
const _bstr_t& methodToRun,
unsigned long portToAffect = Common::ALL_PORTS
);
static
CommonNLB_Error
runControlMethodOnHost( const ClusterData* clusterSettings,
const _bstr_t& machineName,
DataSinkI* dataSinkObj,
const _bstr_t& methodToRun,
unsigned long portToAffect = Common::ALL_PORTS
);
static
CommonNLB_Error
getWLBSErrorString( unsigned long retVal,
_bstr_t& errString );
private:
static
UINT
DummyThread( LPVOID pParam );
static
UINT
UnbindThread( LPVOID pParam );
static
UINT
BindAndConfigureThread( LPVOID pParam );
static
UINT
ModifyClusterPropertiesThread( LPVOID pParam );
static
CommonNLB_Error
findPortRulesAddedUnchangedRemovedELB(
const ClusterData* oldSettings,
const ClusterData* newSettings,
DataSinkI* dataSinkObj,
vector<long>& rulesAdded,
vector<long>& rulesUnchanged,
vector<long>& rulesRemoved );
static
CommonNLB_Error
findPortRulesAddedUnchangedRemovedULB(
const ClusterData* oldSettings,
const ClusterData* newSettings,
DataSinkI* dataSinkObj,
vector<long>& rulesAdded,
vector<long>& rulesUnchanged,
vector<long>& rulesRemoved );
static
CommonNLB_Error
findPortRulesAddedUnchangedRemovedD(
const ClusterData* oldSettings,
const ClusterData* newSettings,
DataSinkI* dataSinkObj,
vector<long>& rulesAdded,
vector<long>& rulesUnchanged,
vector<long>& rulesRemoved );
static
CommonNLB_Error
findPortRulesAddedUnchangedRemovedF(
const ClusterData* oldSettings,
const ClusterData* newSettings,
DataSinkI* dataSinkObj,
vector<long>& rulesAdded,
vector<long>& rulesUnchanged,
vector<long>& rulesRemoved );
struct BindAndConfigureParameters
{
MNLBNetCfg* nlbNetCfg;
ClusterData* clusterData;
_bstr_t* machineName;
};
typedef struct BindAndConfigureParameters ModifyClusterPropertiesParameters;
};
#endif