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

228 lines
4.5 KiB
C++

/*
* Filename: NLB_Common.h
* Description:
* Author: shouse, 04.10.01
*/
#ifndef __NLB_COMMON_H__
#define __NLB_COMMON_H__
#include "stdafx.h"
#include "wlbsparm.h"
#include <vector>
using namespace std;
#define NLB_MAX_NAME 100
#define NLB_MAX_HOST_NAME 100
#define NLB_MAX_DOMAIN_NAME 100
#define NLB_MAX_IPADDRESS 15
#define NLB_MAX_SUBNETMASK 15
#define NLB_MAX_NETWORK_ADDRESS 17
#define NLB_MAX_ADAPTER_GUID 40
#define NLB_MAX_ADAPTER_NAME 100
#define NLB_MAX_LABEL 100
#define NLB_MAX_PASSWORD 16
#define NLB_MIN_HOST_ID 0
#define NLB_MAX_HOST_ID 32
class NLB_Label {
public:
NLB_Label ();
~NLB_Label ();
bool IsValid ();
bool GetText (PWSTR * outText);
bool SetText (PWSTR inText);
private:
WCHAR Text[NLB_MAX_LABEL + 1];
};
class NLB_Name {
public:
NLB_Name ();
~NLB_Name ();
bool IsValid ();
bool GetName (PWSTR * outName);
bool SetName (PWSTR inName);
private:
WCHAR Name[NLB_MAX_NAME + 1];
};
class NLB_HostID {
public:
NLB_HostID ();
~NLB_HostID ();
bool IsValid ();
bool GetID (int * outID);
bool SetID (int inID);
private:
int ID;
};
class NLB_HostName {
public:
NLB_HostName ();
~NLB_HostName ();
bool IsValid ();
bool GetName (PWSTR * outName);
bool SetName (PWSTR inName);
private:
WCHAR Name[NLB_MAX_HOST_NAME + 1];
};
class NLB_RemoteControl {
public:
typedef enum {
Invalid = -1,
No,
Yes
} NLB_RemoteControlEnabled;
NLB_RemoteControl ();
~NLB_RemoteControl ();
bool IsValid ();
bool GetPassword (PWSTR * outName);
bool GetEnabled (NLB_RemoteControlEnabled * outEnabled);
bool SetPassword (PWSTR inName);
bool SetEnabled (NLB_RemoteControlEnabled inEnabled);
private:
NLB_RemoteControlEnabled Enabled;
WCHAR Password[NLB_MAX_PASSWORD + 1];
};
class NLB_DomainName {
public:
NLB_DomainName ();
~NLB_DomainName ();
bool IsValid ();
bool GetDomain (PWSTR * outDomain);
bool SetDomain (PWSTR inDomain);
private:
WCHAR Domain[NLB_MAX_DOMAIN_NAME + 1];
};
class NLB_NetworkAddress {
public:
NLB_NetworkAddress ();
~NLB_NetworkAddress ();
bool IsValid ();
bool GetAddress (PWSTR * outAddress);
bool SetAddress (PWSTR inAddress);
private:
WCHAR Address[NLB_MAX_NETWORK_ADDRESS + 1];
};
class NLB_ClusterMode {
public:
typedef enum {
Invalid = -1,
Unicast,
Multicast,
IGMP
} NLB_ClusterModeType;
NLB_ClusterMode ();
~NLB_ClusterMode ();
bool IsValid ();
bool GetMode (NLB_ClusterModeType * outMode);
bool SetMode (NLB_ClusterModeType inMode);
private:
NLB_ClusterModeType Mode;
};
class NLB_HostState {
public:
typedef enum {
Invalid = -1,
Started,
Stopped,
Suspended
} NLB_HostStateType;
NLB_HostState ();
~NLB_HostState ();
bool IsValid ();
bool GetState (NLB_HostStateType * outState);
bool SetState (NLB_HostStateType inState);
private:
NLB_HostStateType State;
};
class NLB_Adapter {
public:
typedef enum {
Invalid = -1,
ByGUID,
ByName
} NLB_AdapterIdentifier;
NLB_Adapter ();
~NLB_Adapter ();
bool IsValid ();
bool GetAdapter (PWSTR * outAdapter);
bool GetIdentifiedBy (NLB_AdapterIdentifier * outIdentifiedBy);
bool SetAdapter (PWSTR inAdapter);
bool SetIdentifiedBy (NLB_AdapterIdentifier inIdentifiedBy);
private:
NLB_AdapterIdentifier IdentifiedBy;
struct {
WCHAR Name[NLB_MAX_ADAPTER_NAME + 1];
WCHAR GUID[NLB_MAX_ADAPTER_GUID + 1];
};
};
class NLB_IPAddress {
public:
typedef enum {
Invalid = -1,
Primary,
Secondary,
Virtual,
Dedicated,
Connection,
IGMP
} NLB_IPAddressType;
NLB_IPAddress ();
~NLB_IPAddress ();
bool IsValid ();
bool GetIPAddressType (NLB_IPAddressType * outType);
bool GetIPAddress (PWSTR * outIPAddress);
bool GetSubnetMask (PWSTR * outSubnetMask);
bool SetIPAddressType (NLB_IPAddressType inType);
bool SetIPAddress (PWSTR inIPAddress);
bool SetSubnetMask (PWSTR inSubnetMask);
NLB_Adapter * GetAdapter ();
private:
NLB_IPAddressType Type;
NLB_Adapter Adapter;
WCHAR IPAddress[NLB_MAX_IPADDRESS + 1];
WCHAR SubnetMask[NLB_MAX_SUBNETMASK + 1];
};
#endif