/**************************************************************************** ; ; MODULE: IPMGR (.H) ; ; PURPOSE: IP Manager Classes ; ; HISTORY: 11/09/98 [blg] This file was created ; ; COMMENT: Copyright (c) 1998, Monolith Productions Inc. ; ****************************************************************************/ #ifndef _IPMGR_H_ #define _IPMGR_H_ // Defines... #define IPM_MAX_ADDRESS 32 #define IPM_MAX_IPS 256 // Externs... class CClientDE; // Classes... class CIp { // Member functions... public: CIp() { Clear(); } ~CIp() { Term(); } BOOL Init(char* sIp); void Term(); void Clear(); char* GetAddress() { return(m_sIp); } // Member variables... private: char m_sIp[IPM_MAX_ADDRESS + 2]; }; class CIpMgr { // Member functions... public: CIpMgr() { Clear(); } ~CIpMgr() { Term(); } BOOL Init(CClientDE* pClientDE); void Term(); void Clear(BOOL bClearClientDE=TRUE); int GetNumIps() { return(m_cIps); } BOOL GetAllIpString(char* sBuf, int nBufSize); CIp* GetIp(int i); BOOL ExistIp(char* sIp); BOOL AddIp(char* sIp); BOOL AddIpFromEditControl(HWND hEdit, HWND hList = NULL); BOOL RemoveIp(char* sIp); void RemoveAll(); BOOL RemoveSelectedIpFromListBox(HWND hList); int FillListBox(HWND hList); int ReadIps(); int WriteIps(); // Member variables... private: int m_cIps; CIp* m_aIps[IPM_MAX_IPS]; CClientDE* m_pClientDE; }; // Inlines... inline void CIp::Clear() { m_sIp[0] = '\0'; } inline void CIp::Term() { Clear(); } inline void CIpMgr::Clear(BOOL bClearClientDE) { m_cIps = 0; if(bClearClientDE) { m_pClientDE = NULL; } for (int i = 0; i < IPM_MAX_IPS; i++) m_aIps[i] = NULL; } inline CIp* CIpMgr::GetIp(int i) { if (i < 0) return(NULL); if (i >= m_cIps) return(NULL); return(m_aIps[i]); } // EOF... #endif