1 /*
2     This file is part of the Okteta Kasten module, made within the KDE community.
3 
4     SPDX-FileCopyrightText: 2010 Friedrich W. H. Kossebau <kossebau@kde.org>
5 
6     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8 
9 #ifndef KASTEN_BYTEARRAYXXENCODINGSTREAMENCODER_HPP
10 #define KASTEN_BYTEARRAYXXENCODINGSTREAMENCODER_HPP
11 
12 // lib
13 #include "abstractbytearraystreamencoder.hpp"
14 // Okteta core
15 #include <Okteta/OktetaCore>
16 // Qt
17 #include <QString>
18 
19 namespace Kasten {
20 
21 class XxencodingStreamEncoderSettings
22 {
23 public:
24     XxencodingStreamEncoderSettings();
25 
26 public:
27     QString fileName;
28 };
29 
30 class ByteArrayXxencodingStreamEncoder : public AbstractByteArrayStreamEncoder
31 {
32     Q_OBJECT
33 
34 public:
35     enum class InputByteIndex
36     {
37         First = 0,
38         Second,
39         Third
40     };
41 
42 public:
43     ByteArrayXxencodingStreamEncoder();
44     ~ByteArrayXxencodingStreamEncoder() override;
45 
46 public:
47     XxencodingStreamEncoderSettings settings() const;
48     void setSettings(const XxencodingStreamEncoderSettings& settings);
49 
50 protected: // AbstractByteArrayStreamEncoder API
51     bool encodeDataToStream(QIODevice* device,
52                             const ByteArrayView* byteArrayView,
53                             const Okteta::AbstractByteArrayModel* byteArrayModel,
54                             const Okteta::AddressRange& range) override;
55 
56 private:
57     XxencodingStreamEncoderSettings mSettings;
58 };
59 
settings() const60 inline XxencodingStreamEncoderSettings ByteArrayXxencodingStreamEncoder::settings() const { return mSettings; }
setSettings(const XxencodingStreamEncoderSettings & settings)61 inline void ByteArrayXxencodingStreamEncoder::setSettings(const XxencodingStreamEncoderSettings& settings)
62 {
63     mSettings = settings;
64     emit settingsChanged();
65 }
66 
67 }
68 
69 #endif
70