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

98 lines
1.9 KiB
C++

#ifndef _MNLBNETCFG_H
#define _MNLBNETCFG_H
//
// Copyright (c) Microsoft. All Rights Reserved
//
// THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Microsoft.
// The copyright notice above does not evidence any
// actual or intended publication of such source code.
//
// OneLiner : MNLBNetCfg interface.
// DevUnit : wlbstest
// Author : Murtaza Hakim
//
// Description:
// -----------
#include "MIPAddressAdmin.h"
#include "Common.h"
#include "MNLBUIData.h"
#include <comdef.h>
#include <iostream>
using namespace std;
// Include Files
class MNLBNetCfg
{
public:
enum MNLBNetCfg_Error
{
MNLBNetCfg_SUCCESS = 0,
BOUND = 4,
UNBOUND = 5,
NO_SUCH_NIC = 6,
NO_NLB = 7,
};
// constructor
// for remote machine.
MNLBNetCfg( const _bstr_t& iP,
const _bstr_t& fullNicName );
// for local
MNLBNetCfg( const _bstr_t& fullNicName );
// bindAndConfigure
MNLBNetCfg_Error
bindAndConfigure( const ClusterData* p_clusterData,
const _bstr_t& machineName
);
// modifyClusterProperties
MNLBNetCfg_Error
modifyClusterProperties(const ClusterProperties* p_clusterProperties);
// bind
MNLBNetCfg_Error
bind();
// unbind nlb
MNLBNetCfg_Error
unbind();
// is nlb bound?
MNLBNetCfg_Error
isBound();
// add cluster ip
MNLBNetCfg_Error
addClusterIP( const _bstr_t& clusterIP,
const _bstr_t& subnet );
// remove cluster ip
MNLBNetCfg_Error
removeClusterIP( const _bstr_t& clusterIP );
private:
_bstr_t m_ip;
_bstr_t m_fullNicName;
void
getPortRules( const ClusterData* p_clusterData,
const _bstr_t& myMachine,
vector<_bstr_t>& myPortRules );
};
// ensure type safety
typedef class MNLBNetCfg MNLBNetCfg;
#endif