KVIrc 5.2.0
Developer APIs
KviIrcConnectionAsyncData.h
Go to the documentation of this file.
1#ifndef _KVI_IRCCONNECTIONASYNCTEMPLATEDATA_H_
2#define _KVI_IRCCONNECTIONASYNCTEMPLATEDATA_H_
3//=============================================================================
4//
5// File : KviIrcConnectionAsyncData.h
6// Creation date : Sat 26 Jun 2004 19:40:20 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2004-2010 Szymon Stefanek <pragma at kvirc dot net>
10//
11// This program is FREE software. You can redistribute it and/or
12// modify it under the terms of the GNU General Public License
13// as published by the Free Software Foundation; either version 2
14// of the License, or (at your option) any later version.
15//
16// This program is distributed in the HOPE that it will be USEFUL,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19// See the GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program. If not, write to the Free Software Foundation,
23// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24//
25//=============================================================================
26
27// This template class will be used to create some other classes for future commands
28// KviIrcConnectionAsyncWhoData for creating an awho command
29// KviIrcConnectionAsyncWhowasData for creating an awhowas command
30// It is now also used by KviIrcConnectionAsyncWhoisData
31
32#include "KviQString.h"
33
34#include <unordered_set>
35
36#ifndef __GNUC__
37#define __attribute__(X)
38#endif
39
40template <class T>
42{
43protected:
44 std::unordered_set<T *> m_pInfoList; // awhois pending stuff
45public:
46 void add(T * i) { m_pInfoList.insert(i); }
47
48 T * lookup(const QString & nick)
49 {
50 for(auto & i : m_pInfoList)
51 if(KviQString::equalCI(nick, i->szNick))
52 return i;
53
54 return nullptr;
55 }
56
57 void remove(T * i) { m_pInfoList.erase(i); }
58};
59
60#endif
Helper functions for the QString class.
Definition KviIrcConnectionAsyncData.h:42
T * lookup(const QString &nick)
Definition KviIrcConnectionAsyncData.h:48
std::unordered_set< T * > m_pInfoList
Definition KviIrcConnectionAsyncData.h:44
void remove(T *i)
Definition KviIrcConnectionAsyncData.h:57
void add(T *i)
Definition KviIrcConnectionAsyncData.h:46
#define i
Definition detector.cpp:74
#define KVIRC_API
Definition kvi_settings.h:127
bool equalCI(const QString &sz1, const QString &sz2)
Compares two strings with case insensitive.
Definition KviQString.cpp:283