File indexing completed on 2024-06-23 05:48:48

0001 /*
0002     This file is part of the Okteta Kasten module, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2019 Lars Maier <lars.maier@tefax.net>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_CRC64BYTEARRAYCHECKSUMPARAMETERSET_HPP
0010 #define KASTEN_CRC64BYTEARRAYCHECKSUMPARAMETERSET_HPP
0011 
0012 // lib
0013 #include "abstractbytearraychecksumparameterset.hpp"
0014 
0015 class KConfigGroup;
0016 
0017 enum class Crc64Variant
0018 {
0019     ECMA182 = 0,
0020     ISO3309 = 1,
0021 };
0022 
0023 class Crc64ByteArrayChecksumParameterSet : public AbstractByteArrayChecksumParameterSet
0024 {
0025 public:
0026     Crc64ByteArrayChecksumParameterSet();
0027     ~Crc64ByteArrayChecksumParameterSet() override;
0028 
0029 public: // AbstractByteArrayChecksumParameterSet API
0030     const char* id() const override;
0031 
0032 public:
0033     void setCrc64Variant(Crc64Variant variant);
0034 
0035 public:
0036     Crc64Variant crc64Variant() const;
0037 
0038 public:
0039     void loadConfig(const KConfigGroup& configGroup);
0040     void saveConfig(KConfigGroup& configGroup) const;
0041 
0042 private:
0043     Crc64Variant mVariant = Crc64Variant::ECMA182;
0044 };
0045 
0046 #endif