File: functiongroup.h

package info (click to toggle)
ktorrent 25.04.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,104 kB
  • sloc: cpp: 40,482; xml: 1,163; python: 182; sh: 10; makefile: 5
file content (44 lines) | stat: -rw-r--r-- 854 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
    SPDX-FileCopyrightText: 2008 Joris Guisson <joris.guisson@gmail.com>
    SPDX-FileCopyrightText: 2008 Ivan Vasic <ivasic@gmail.com>
    SPDX-License-Identifier: GPL-2.0-or-later
*/

#ifndef KTFUNCTIONGROUP_H
#define KTFUNCTIONGROUP_H

#include "group.h"

namespace kt
{
typedef bool (*IsMemberFunction)(TorrentInterface *tor);

/**
    Group which calls a function pointer to test for membership
*/
template<IsMemberFunction fn>
class FunctionGroup : public Group
{
public:
    FunctionGroup(const QString &name, const QString &icon, int flags, const QString &path)
        : Group(name, flags, path)
    {
        setIconByName(icon);
    }

    ~FunctionGroup() override
    {
    }

    bool isMember(TorrentInterface *tor) override
    {
        if (!tor)
            return false;
        else
            return fn(tor);
    }
};

}

#endif