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

911 lines
15 KiB
C++

/*
* Filename: NLB_Common.cpp
* Description:
* Author: shouse, 04.10.01
*/
#include "NLB_Common.h"
/*************************************************
* Class: NLB_Label *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_Label::NLB_Label () {
Text[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_Label::~NLB_Label () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Label::IsValid () {
return (Text[0] != L'\0');
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Label::GetText (PWSTR * outText) {
*outText = SysAllocString(Text);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Label::SetText (PWSTR inText) {
if (lstrlen(inText) > NLB_MAX_LABEL) return false;
lstrcpy(Text, inText);
return true;
}
/*************************************************
* Class: NLB_Name *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_Name::NLB_Name () {
Name[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_Name::~NLB_Name () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Name::IsValid () {
return (Name[0] != L'\0');
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Name::GetName (PWSTR * outName) {
*outName = SysAllocString(Name);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Name::SetName (PWSTR inName) {
if (lstrlen(inName) > NLB_MAX_NAME) return false;
lstrcpy(Name, inName);
return true;
}
/*************************************************
* Class: NLB_HostID *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_HostID::NLB_HostID () {
ID = -1;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_HostID::~NLB_HostID () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostID::IsValid () {
return (ID != -1);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostID::GetID (int * outID) {
*outID = ID;
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostID::SetID (int inID) {
if ((inID > NLB_MAX_HOST_ID) || (inID < NLB_MIN_HOST_ID)) return false;
ID = inID;
return true;
}
/*************************************************
* Class: NLB_HostName *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_HostName::NLB_HostName () {
Name[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_HostName::~NLB_HostName () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostName::IsValid () {
return (Name[0] != L'\0');
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostName::GetName (PWSTR * outName) {
*outName = SysAllocString(Name);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostName::SetName (PWSTR inName) {
if (lstrlen(inName) > NLB_MAX_HOST_NAME) return false;
lstrcpy(Name, inName);
return true;
}
/*************************************************
* Class: NLB_RemoteControl *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_RemoteControl::NLB_RemoteControl () {
Enabled = Invalid;
Password[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_RemoteControl::~NLB_RemoteControl () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_RemoteControl::IsValid () {
return (Enabled != Invalid);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_RemoteControl::GetEnabled (NLB_RemoteControlEnabled * outEnabled) {
*outEnabled = Enabled;
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_RemoteControl::GetPassword (PWSTR * outPassword) {
*outPassword = SysAllocString(Password);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_RemoteControl::SetEnabled (NLB_RemoteControlEnabled inEnabled) {
switch(inEnabled) {
case No:
Enabled = No;
break;
case Yes:
Enabled = Yes;
break;
default:
return false;
}
return true;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_RemoteControl::SetPassword (PWSTR inPassword) {
if (lstrlen(inPassword) > NLB_MAX_PASSWORD) return false;
lstrcpy(Password, inPassword);
return true;
}
/*************************************************
* Class: NLB_DomainName *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_DomainName::NLB_DomainName () {
Domain[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_DomainName::~NLB_DomainName () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_DomainName::IsValid () {
return (Domain[0] != L'\0');
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_DomainName::GetDomain (PWSTR * outDomain) {
*outDomain = SysAllocString(Domain);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_DomainName::SetDomain (PWSTR inDomain) {
if (lstrlen(inDomain) > NLB_MAX_DOMAIN_NAME) return false;
lstrcpy(Domain, inDomain);
return true;
}
/*************************************************
* Class: NLB_NetworkAddress *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_NetworkAddress::NLB_NetworkAddress () {
Address[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_NetworkAddress::~NLB_NetworkAddress () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_NetworkAddress::IsValid () {
return (Address[0] != L'\0');
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_NetworkAddress::GetAddress (PWSTR * outAddress) {
*outAddress = SysAllocString(Address);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_NetworkAddress::SetAddress (PWSTR inAddress) {
if (lstrlen(inAddress) > NLB_MAX_NETWORK_ADDRESS) return false;
lstrcpy(Address, inAddress);
return true;
}
/*************************************************
* Class: NLB_ClusterMode *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_ClusterMode::NLB_ClusterMode () {
Mode = Invalid;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_ClusterMode::~NLB_ClusterMode () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_ClusterMode::IsValid () {
return (Mode != Invalid);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_ClusterMode::GetMode (NLB_ClusterModeType * outMode) {
*outMode = Mode;
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_ClusterMode::SetMode (NLB_ClusterModeType inMode) {
switch (inMode) {
case Unicast:
Mode = Unicast;
break;
case Multicast:
Mode = Multicast;
break;
case IGMP:
Mode = IGMP;
break;
default:
return false;
}
return true;
}
/*************************************************
* Class: NLB_HostState *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_HostState::NLB_HostState () {
State = Invalid;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_HostState::~NLB_HostState () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostState::IsValid () {
return (State != Invalid);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostState::GetState (NLB_HostStateType * outState) {
*outState = State;
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_HostState::SetState (NLB_HostStateType inState) {
switch (inState) {
case Started:
State = Started;
break;
case Stopped:
State = Stopped;
break;
case Suspended:
State = Suspended;
break;
default:
return false;
}
return true;
}
/*************************************************
* Class: NLB_Adapter *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_Adapter::NLB_Adapter () {
IdentifiedBy = Invalid;
Name[0] = L'\0';
GUID[0] = L'\0';
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_Adapter::~NLB_Adapter () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Adapter::IsValid () {
return (IdentifiedBy != Invalid);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Adapter::GetIdentifiedBy (NLB_AdapterIdentifier * outIdentifiedBy) {
*outIdentifiedBy = IdentifiedBy;
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Adapter::GetAdapter (PWSTR * outAdapter) {
switch(IdentifiedBy) {
case ByGUID:
*outAdapter = SysAllocString(GUID);
break;
case ByName:
*outAdapter = SysAllocString(Name);
break;
default:
*outAdapter = NULL;
break;
}
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Adapter::SetIdentifiedBy (NLB_AdapterIdentifier inIdentifiedBy) {
switch(inIdentifiedBy) {
case ByGUID:
IdentifiedBy = ByGUID;
break;
case ByName:
IdentifiedBy = ByName;
break;
default:
return false;
}
return true;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_Adapter::SetAdapter (PWSTR inAdapter) {
switch(IdentifiedBy) {
case ByGUID:
if (lstrlen(inAdapter) > NLB_MAX_ADAPTER_GUID) return false;
lstrcpy(GUID, inAdapter);
break;
case ByName:
if (lstrlen(inAdapter) > NLB_MAX_ADAPTER_NAME) return false;
lstrcpy(Name, inAdapter);
break;
default:
return false;
}
return true;
}
/*************************************************
* Class: NLB_IPAddress *
*************************************************/
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_IPAddress::NLB_IPAddress () {
Type = Invalid;
lstrcpy(IPAddress, CVY_DEF_CL_IP_ADDR);
lstrcpy(SubnetMask, CVY_DEF_CL_NET_MASK);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
NLB_IPAddress::~NLB_IPAddress () {
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::IsValid () {
return (Type != Invalid);
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::GetIPAddressType (NLB_IPAddressType * outType) {
*outType = Type;
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::GetIPAddress (PWSTR * outIPAddress) {
*outIPAddress = SysAllocString(IPAddress);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::GetSubnetMask (PWSTR * outSubnetMask) {
*outSubnetMask = SysAllocString(SubnetMask);
return IsValid();
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::SetIPAddressType (NLB_IPAddressType inType) {
switch (inType) {
case Primary:
Type = Primary;
break;
case Secondary:
Type = Secondary;
break;
case Virtual:
Type = Virtual;
break;
case IGMP:
Type = IGMP;
break;
case Dedicated:
Type = Dedicated;
break;
case Connection:
Type = Connection;
break;
default:
return false;
}
return true;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::SetIPAddress (PWSTR inIPAddress) {
if (lstrlen(inIPAddress) > NLB_MAX_IPADDRESS) return false;
lstrcpy(IPAddress, inIPAddress);
return true;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes:
*/
bool NLB_IPAddress::SetSubnetMask (PWSTR inSubnetMask) {
if (lstrlen(inSubnetMask) > NLB_MAX_SUBNETMASK) return false;
lstrcpy(SubnetMask, inSubnetMask);
return true;
}
/*
* Method:
* Description:
* Author: Created by shouse, 4.26.01
* Notes: Returning a pointer to a private member is voodoo, but do it anway.
*/
NLB_Adapter * NLB_IPAddress::GetAdapter () {
return &Adapter;
}