]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/modules/callerid.h
eda930d2899fb05e9f64696fa35254a2fa9af29b
[user/henk/code/inspircd.git] / include / modules / callerid.h
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2018 Sadie Powell <sadie@witchery.services>
5  *
6  * This file is part of InspIRCd.  InspIRCd is free software: you can
7  * redistribute it and/or modify it under the terms of the GNU General Public
8  * License as published by the Free Software Foundation, version 2.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19
20 #pragma once
21
22 namespace CallerID
23 {
24         class APIBase;
25         class API;
26 }
27
28 class CallerID::APIBase : public DataProvider
29 {
30  public:
31         APIBase(Module* parent)
32                 : DataProvider(parent, "m_callerid_api")
33         {
34         }
35
36         /** Determines whether \p source is on the accept list of \p target.
37          * @param source The user to search for in the accept list.
38          * @param target The user who's accept list to search in.
39          * @return True if \p source is on \p target's accept list; otherwise, false.
40          */
41         virtual bool IsOnAcceptList(User* source, User* target) = 0;
42 };
43
44 class CallerID::API : public dynamic_reference<CallerID::APIBase>
45 {
46  public:
47         API(Module* parent)
48                 : dynamic_reference<CallerID::APIBase>(parent, "m_callerid_api")
49         {
50         }
51 };