#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& rulesAdded, vector& rulesUnchanged, vector& rulesRemoved ); static CommonNLB_Error findPortRulesAddedUnchangedRemovedULB( const ClusterData* oldSettings, const ClusterData* newSettings, DataSinkI* dataSinkObj, vector& rulesAdded, vector& rulesUnchanged, vector& rulesRemoved ); static CommonNLB_Error findPortRulesAddedUnchangedRemovedD( const ClusterData* oldSettings, const ClusterData* newSettings, DataSinkI* dataSinkObj, vector& rulesAdded, vector& rulesUnchanged, vector& rulesRemoved ); static CommonNLB_Error findPortRulesAddedUnchangedRemovedF( const ClusterData* oldSettings, const ClusterData* newSettings, DataSinkI* dataSinkObj, vector& rulesAdded, vector& rulesUnchanged, vector& rulesRemoved ); struct BindAndConfigureParameters { MNLBNetCfg* nlbNetCfg; ClusterData* clusterData; _bstr_t* machineName; }; typedef struct BindAndConfigureParameters ModifyClusterPropertiesParameters; }; #endif