diff options
Diffstat (limited to 'src/kvilib/ext/kvi_regchan.h')
-rw-r--r-- | src/kvilib/ext/kvi_regchan.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/kvilib/ext/kvi_regchan.h b/src/kvilib/ext/kvi_regchan.h new file mode 100644 index 00000000..f447c313 --- /dev/null +++ b/src/kvilib/ext/kvi_regchan.h @@ -0,0 +1,74 @@ +#ifndef _KVI_REGCHAN_H_ +#define _KVI_REGCHAN_H_ +//============================================================================= +// +// File : kvi_regchan.h +// Creation date : Sat Jun 29 01:01:15 2002 GMT by Szymon Stefanek +// +// This file is part of the KVirc irc client distribution +// Copyright (C) 2001-2007 Szymon Stefanek (pragma at kvirc dot net) +// +// This program is FREE software. You can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your opinion) any later version. +// +// This program is distributed in the HOPE that it will be USEFUL, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, write to the Free Software Foundation, +// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//============================================================================= + +#include "kvi_settings.h" +#include "kvi_heapobject.h" +#include "kvi_string.h" +#include "kvi_pointerlist.h" + +#include "kvi_pointerhashtable.h" + +class KVILIB_API KviRegisteredChannel : public KviHeapObject +{ + friend class KviRegisteredChannelDataBase; +public: + KviRegisteredChannel(const KviStr &name,const KviStr &netmask); + ~KviRegisteredChannel(); +protected: + KviStr m_szName; + KviStr m_szNetMask; + KviPointerHashTable<const char *,KviStr> * m_pPropertyDict; +public: + KviPointerHashTable<const char *,KviStr> * propertyDict(){ return m_pPropertyDict; }; + const KviStr & name(){ return m_szName; }; + const KviStr & netMask(){ return m_szNetMask; }; + KviStr * property(const char * name){ return m_pPropertyDict->find(name); }; + // val must be allocated with NEW! + void setProperty(const char * name,KviStr * val){ m_pPropertyDict->replace(name,val); }; + void removeProperty(const char * name){ m_pPropertyDict->remove(name); }; +}; + +typedef KVILIB_API KviPointerList<KviRegisteredChannel> KviRegisteredChannelList; + +class KVILIB_API KviRegisteredChannelDataBase +{ +public: + KviRegisteredChannelDataBase(); + ~KviRegisteredChannelDataBase(); +protected: + KviPointerHashTable<const char *,KviRegisteredChannelList> * m_pChannelDict; +public: + KviPointerHashTable<const char *,KviRegisteredChannelList> * channelDict(){ return m_pChannelDict; }; + KviRegisteredChannel * find(const char * name,const char * net); + KviRegisteredChannel * findExact(const char * name,const char * netmask); + void remove(KviRegisteredChannel * c); + void add(KviRegisteredChannel * c); + void load(const char * filename); + void save(const char * filename); +}; + + +#endif //_KVI_REGCHAN_H_ |