|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1999 -99 **/ /**********************************************************************/
/*
IPNamePr.cpp Comment goes here
FILE HISTORY:
*/
#include "stdafx.h"
#include "ipnamepr.h"
//
// Compare two ip/name pairs. Return
// 0 if the same, 1 otherwise. fBoth
// indicates if both addresses need to
// match, or if a match in either
// produces a match.
//
int CIpNamePair::Compare( const CIpNamePair& inpTarget, BOOL fBoth ) const { if (fBoth) { if (((LONG)inpTarget.m_iaIpAddress == (LONG)m_iaIpAddress) && ((LONG)inpTarget.m_strNetBIOSName.CompareNoCase(m_strNetBIOSName) == 0)) { return 0; }
return 1; }
//
// Match if either matches
//
if (((LONG)inpTarget.m_iaIpAddress == (LONG)m_iaIpAddress) || ((LONG)inpTarget.m_strNetBIOSName.CompareNoCase(m_strNetBIOSName) == 0)) { return 0; }
return 1; }
//
// Sort helper function
//
int CIpNamePair::OrderByName ( const CObjectPlus * pobMapping ) const { return ((CIpNamePair *)pobMapping)->m_strNetBIOSName.CompareNoCase(m_strNetBIOSName); }
//
// Sort helper function
//
int CIpNamePair::OrderByIp ( const CObjectPlus * pobMapping ) const { LONG l1 = (LONG)m_iaIpAddress; LONG l2 = (LONG)((CIpNamePair *)pobMapping)->m_iaIpAddress;
return l2 > l1 ? -1 : l2 == l1 ? 0 : +1; }
CIpNamePair::CIpNamePair() { }
CIpNamePair::CIpNamePair(const CIpAddress& ia, const CString& str) : m_iaIpAddress(ia), m_strNetBIOSName(str) { m_nNameLength = str.GetLength(); }
CIpNamePair::CIpNamePair(const CIpNamePair& inpAddress) : m_iaIpAddress(inpAddress.m_iaIpAddress), m_strNetBIOSName(inpAddress.m_strNetBIOSName), m_nNameLength(inpAddress.m_nNameLength) { }
//CWinsServerObj::CWinsServerObj(): CIpNamePair(),m_iaPrimaryAddress()
CWinsServerObj::CWinsServerObj():CIpNamePair(),m_iaPrimaryAddress() {
m_fPushInitially = m_fPush = FALSE; m_fPullInitially = m_fPull = FALSE; }
//
// For both constructors below, we initially set
// the primary ip address to the initial ip address
// Use SetPrimaryIpAddress to change
//
CWinsServerObj::CWinsServerObj( const CIpAddress& ia, const CString& str, BOOL fPush, BOOL fPull, CIntlNumber inPushUpdateCount, CIntlNumber inPullReplicationInterval, CIntlTime itmPullStartTime ) : CIpNamePair(ia, str), m_inPushUpdateCount(inPushUpdateCount), m_inPullReplicationInterval(inPullReplicationInterval), m_itmPullStartTime(itmPullStartTime), m_iaPrimaryAddress(ia) { m_fPushInitially = m_fPush = fPush; m_fPullInitially = m_fPull = fPull; }
CWinsServerObj::CWinsServerObj( const CIpNamePair& inpAddress, BOOL fPush, BOOL fPull, CIntlNumber inPushUpdateCount, CIntlNumber inPullReplicationInterval, CIntlTime itmPullStartTime ) : CIpNamePair(inpAddress), m_inPushUpdateCount(inPushUpdateCount), m_inPullReplicationInterval(inPullReplicationInterval), m_itmPullStartTime(itmPullStartTime), m_iaPrimaryAddress(inpAddress.QueryIpAddress()) { m_fPushInitially = m_fPush = fPush; m_fPullInitially = m_fPull = fPull; }
CWinsServerObj::CWinsServerObj( const CWinsServerObj& wsServer ) : CIpNamePair(wsServer), m_inPushUpdateCount(wsServer.m_inPushUpdateCount), m_inPullReplicationInterval(wsServer.m_inPullReplicationInterval), m_itmPullStartTime(wsServer.m_itmPullStartTime) { m_fPushInitially = m_fPush = wsServer.IsPush(); m_fPullInitially = m_fPull = wsServer.IsPull();
m_fPullPersistence = wsServer.m_fPullPersistence; m_fPushPersistence = wsServer.m_fPushPersistence;
m_strIPAddress = wsServer.m_strIPAddress; }
CWinsServerObj & CWinsServerObj::operator=( const CWinsServerObj& wsNew ) { m_iaIpAddress = wsNew.m_iaIpAddress; m_strNetBIOSName = wsNew.m_strNetBIOSName; m_inPushUpdateCount = wsNew.m_inPushUpdateCount; m_inPullReplicationInterval = wsNew.m_inPullReplicationInterval; m_itmPullStartTime = wsNew.m_itmPullStartTime; m_fPull = wsNew.m_fPull; m_fPush = wsNew.m_fPush; m_fPullInitially = wsNew.m_fPullInitially; m_fPushInitially = wsNew.m_fPullInitially; m_strIPAddress = wsNew.m_strIPAddress;
m_fPullPersistence = wsNew.m_fPullPersistence; m_fPushPersistence = wsNew.m_fPushPersistence;
return *this; }
|