KUnifiedPush

client.h
1/*
2 SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6#ifndef KUNIFIEDPUSH_CLIENT_H
7#define KUNIFIEDPUSH_CLIENT_H
8
9#include <QMetaType>
10#include <QString>
11
12class QSettings;
13
14namespace KUnifiedPush {
15
16class Distributor;
17
18/** Information about a registered client */
19class Client
20{
21public:
22 void store(QSettings &settings) const;
23 static Client load(const QString &token, QSettings &settings);
24
25 /** Contains all required information for a client. */
26 [[nodiscard]] bool isValid() const;
27
28 /** Activate client on D-Bus. */
29 void activate() const;
30
31 /** D-Bus UnifiedPush connector interface. */
32 void message(Distributor *distributor, const QByteArray &message, const QString &messageIdentifier) const;
33 void newEndpoint() const;
34 void unregistered(bool isConfirmation) const;
35
36 QString serviceName;
37 QString token;
38 QString remoteId;
39 QString endpoint;
40 QString description;
41 QString vapidKey;
42 // UnifiedPush protocol version
43 enum class UnifiedPushVersion {
44 v1 = 1,
45 v2 = 2,
46 };
47
48 UnifiedPushVersion version = UnifiedPushVersion::v1;
49};
50
51}
52
53Q_DECLARE_METATYPE(KUnifiedPush::Client)
54
55#endif // KUNIFIEDPUSH_CLIENT_H
Information about a registered client.
Definition client.h:20
void activate() const
Activate client on D-Bus.
Definition client.cpp:52
bool isValid() const
Contains all required information for a client.
Definition client.cpp:47
void message(Distributor *distributor, const QByteArray &message, const QString &messageIdentifier) const
D-Bus UnifiedPush connector interface.
Definition client.cpp:58
UnifiedPush distributor service.
Definition distributor.h:35
Client-side integration with UnifiedPush.
Definition connector.h:14
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Apr 25 2025 12:05:39 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.