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 | |
27 | class QByteArray; |
28 | |
29 | class QUrl; |
30 | |
31 | #if !defined(TESTKIO) |
32 | #include "dataworker_p.h" |
33 | #endif |
34 | |
35 | namespace 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) |
42 | class DataProtocol : public TestWorker |
43 | { |
44 | #else |
45 | class DataProtocol : public DataWorker |
46 | { |
47 | Q_OBJECT |
48 | #endif |
49 | |
50 | public: |
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 | |