/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1998 **/ /**********************************************************************/ /* ipnamepr.h Ip name pair (name/ip) class FILE HISTORY: */ #ifndef _IPNAMEPR_H #define _IPNAMEPR_H #ifndef _IPADDRES_H #include "ipaddres.h" #endif class CIpNamePair : public CObjectPlus { public: CIpNamePair(); CIpNamePair(const CIpAddress& ia, const CString& str); CIpNamePair(const CIpNamePair& inpAddress); public: int Compare(const CIpNamePair& inpTarget, BOOL fBoth) const; CIpNamePair & operator=(const CIpNamePair& inpNew) { m_iaIpAddress = inpNew.m_iaIpAddress; m_strNetBIOSName = inpNew.m_strNetBIOSName; return *this; } inline CIpAddress QueryIpAddress() const { return m_iaIpAddress; } inline virtual CIpAddress& GetIpAddress() { return m_iaIpAddress; } inline virtual void SetIpAddress(CIpAddress& ip) { m_iaIpAddress = ip; } inline virtual void SetIpAddress(long ip) { m_iaIpAddress = ip; } inline virtual void SetIpAddress(CString& str) { m_iaIpAddress = str; } inline CString& GetNetBIOSName() { return m_strNetBIOSName; } inline void SetNetBIOSName(CString& str) { m_strNetBIOSName = str; } inline int GetNetBIOSNameLength() { return m_nNameLength; } inline void SetNetBIOSNameLength(int nLength) { m_nNameLength = nLength; } int OrderByName ( const CObjectPlus * pobMapping ) const ; int OrderByIp ( const CObjectPlus * pobMapping ) const ; protected: CIpAddress m_iaIpAddress; CString m_strNetBIOSName; int m_nNameLength; }; class CWinsServerObj : public CIpNamePair { public: CWinsServerObj(); CWinsServerObj( const CIpAddress& ia, const CString& str, BOOL fPush = FALSE, BOOL fPull = FALSE, CIntlNumber inPushUpdateCount = 0, CIntlNumber inPullReplicationInterval = 0, CIntlTime itmPullStartTime = (time_t)0 ); CWinsServerObj( const CIpNamePair& inpAddress, BOOL fPush = FALSE, BOOL fPull = FALSE, CIntlNumber inPushUpdateCount = 0, CIntlNumber inPullReplicationInterval = 0, CIntlTime itmPullStartTime = (time_t)0 ); CWinsServerObj(const CWinsServerObj& wsServer); public: CWinsServerObj & operator=(const CWinsServerObj& wsNew); public: inline const BOOL IsPush() const { return m_fPush; } inline const BOOL IsPull() const { return m_fPull; } void SetPush(BOOL fPush = TRUE, BOOL fClean = FALSE) { m_fPush = fPush; if (fClean) { m_fPushInitially = fPush; } } void SetPull(BOOL fPull = TRUE, BOOL fClean = FALSE) { m_fPull = fPull; if (fClean) { m_fPullInitially = fPull; } } inline BOOL IsClean() const { return m_fPullInitially == m_fPull && m_fPushInitially == m_fPush; } inline void SetPullClean(BOOL fClean = TRUE) { m_fPullInitially = m_fPull; } inline void SetPrimaryIpAddress(const CIpAddress ia) { m_iaPrimaryAddress = ia; } inline CIpAddress QueryPrimaryIpAddress() const { return m_iaPrimaryAddress; } void SetPushClean(BOOL fClean = TRUE) { m_fPushInitially = m_fPush; } inline CIntlNumber& GetPushUpdateCount() { return m_inPushUpdateCount; } inline void SetPushUpdateCount(LONG lUpdateCount) { m_inPushUpdateCount = lUpdateCount; } inline CIntlNumber& GetPullReplicationInterval() { return m_inPullReplicationInterval; } inline void SetPullReplicationInterval(LONG lPullTimeInterval) { m_inPullReplicationInterval = lPullTimeInterval; } inline CIntlTime& GetPullStartTime() { return m_itmPullStartTime; } inline void SetPullStartTime(LONG lSpTime) { m_itmPullStartTime = lSpTime; } CString& GetstrIPAddress() { return m_strIPAddress; } void SetstrIPAddress(CString &strIP) { m_strIPAddress = strIP; } BOOL GetPullPersistence() { return m_fPullPersistence; } void SetPullPersistence(BOOL bValue) { m_fPullPersistence = bValue; } BOOL GetPushPersistence() { return m_fPushPersistence; } void SetPushPersistence(BOOL bValue) { m_fPushPersistence = bValue; } private: CIntlNumber m_inPushUpdateCount; // 0 means not specified. CIntlNumber m_inPullReplicationInterval; // 0 means not specified CIntlTime m_itmPullStartTime; // 0 means no time selected. BOOL m_fPull; BOOL m_fPush; // // Change flags // BOOL m_fPullInitially; BOOL m_fPushInitially; CIpAddress m_iaPrimaryAddress; CString m_strIPAddress; // For persistence connection BOOL m_fPushPersistence; BOOL m_fPullPersistence; }; #endif