KUnifiedPush

serversenteventsstream.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_SERVERSENTEVENTSSTREAM_H
7#define KUNIFIEDPUSH_SERVERSENTEVENTSSTREAM_H
8
9#include <QHash>
10#include <QObject>
11
12class QIODevice;
13
14namespace KUnifiedPush {
15
16class SSEMessage
17{
18public:
19 QByteArray event;
20 QByteArray data;
21 QHash<QByteArray, QByteArray> metaData;
22};
23
24/** Sever-sent Events (SSE) stream
25 * @see https://en.wikipedia.org/wiki/Server-sent_events
26 */
27class ServerSentEventsStream : public QObject
28{
30public:
31 explicit ServerSentEventsStream(QObject *parent = nullptr);
32 ~ServerSentEventsStream();
33
34 void read(QIODevice *device);
35 [[nodiscard]] QByteArray buffer() const;
36
38 void messageReceived(const KUnifiedPush::SSEMessage &msg);
39
40private:
41 void processBuffer();
42
43 QByteArray m_buffer;
44};
45
46}
47
48Q_DECLARE_METATYPE(KUnifiedPush::SSEMessage)
49
50#endif // KUNIFIEDPUSH_SERVERSENTEVENTSSTREAM_H
Client-side integration with UnifiedPush.
Definition connector.h:14
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_SIGNALSQ_SIGNALS
QObject * parent() const const
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.