/* * 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; }