Warning, file /utilities/okteta/kasten/controllers/view/poddecoder/abstracttypecodec.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the Okteta Kasten module, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2009 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef KASTEN_ABSTRACTTYPECODEC_HPP 0010 #define KASTEN_ABSTRACTTYPECODEC_HPP 0011 0012 // Qt 0013 #include <QString> 0014 #include <QVariant> 0015 0016 class QByteArray; 0017 0018 namespace Okteta { 0019 class PODData; 0020 0021 class AbstractTypeCodec 0022 { 0023 protected: 0024 explicit AbstractTypeCodec(const QString& name); 0025 0026 public: 0027 AbstractTypeCodec(const AbstractTypeCodec&) = delete; 0028 0029 virtual ~AbstractTypeCodec(); 0030 0031 AbstractTypeCodec& operator=(const AbstractTypeCodec&) = delete; 0032 0033 public: // API to be implemented 0034 virtual QVariant value(const PODData& data, int* byteCount) const = 0; 0035 virtual QByteArray valueToBytes(const QVariant& value) const = 0; 0036 0037 virtual bool areEqual(const QVariant& value, QVariant& otherValue) const = 0; 0038 0039 public: 0040 const QString& name() const; 0041 0042 private: 0043 QString mName; 0044 }; 0045 0046 inline AbstractTypeCodec::AbstractTypeCodec(const QString& name) : mName(name) {} 0047 inline AbstractTypeCodec::~AbstractTypeCodec() = default; 0048 0049 inline const QString& AbstractTypeCodec::name() const { return mName; } 0050 0051 } 0052 0053 #endif