1/*
2 Interface of the KDE data protocol core operations
3
4 SPDX-FileCopyrightText: 2002 Leo Savernik <l.savernik@aon.at>
5
6 SPDX-License-Identifier: LGPL-2.0-only
7*/
8
9#ifndef DATAPROTOCOL_H
10#define DATAPROTOCOL_H
11
12// dataprotocol.* interprets the following defines
13// TESTKIO: define for test-driving
14// Both defines are mutually exclusive. Defining none of them compiles
15// DataProtocol for internal usage within libkiocore.
16
17/* Wondering what this is all about? Leo explained it to me:
18 *
19 * That's simple, you can compile it into a standalone executable that is
20 * registered like any other KIO worker.
21 *
22 * However, given that data-urls don't depend on any external data it seemed
23 * overkill, therefore I added a special hack that the kio-dataworker is invoked
24 * in-process on the client side.
25 */
26
27class QByteArray;
28
29class QUrl;
30
31#if !defined(TESTKIO)
32#include "dataworker_p.h"
33#endif
34
35namespace KIO
36{
37/** This KIO worker provides support of data urls as specified by rfc 2397
38 * @see https://www.ietf.org/rfc/rfc2397.txt
39 * @author Leo Savernik
40 */
41#if defined(TESTKIO)
42class DataProtocol : public TestWorker
43{
44#else
45class DataProtocol : public DataWorker
46{
47 Q_OBJECT
48#endif
49
50public:
51 DataProtocol();
52
53#if defined(TESTKIO)
54 void mimetype(const QUrl &url);
55 void get(const QUrl &url);
56#else
57 void mimetype(const QUrl &url) override;
58 void get(const QUrl &url) override;
59#endif
60 ~DataProtocol() override;
61};
62
63} /*end namespace*/
64
65#endif
66

source code of kio/src/core/dataprotocol_p.h