File indexing completed on 2025-01-05 04:37:09

0001 /*
0002     SPDX-FileCopyrightText: 2005 Joris Guisson <joris.guisson@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #ifndef BTVALUE_H
0007 #define BTVALUE_H
0008 
0009 #include <QTextCodec>
0010 #include <ktorrent_export.h>
0011 #include <qstring.h>
0012 #include <util/constants.h>
0013 namespace bt
0014 {
0015 /**
0016 @author Joris Guisson
0017 */
0018 class KTORRENT_EXPORT Value
0019 {
0020 public:
0021     enum Type {
0022         STRING,
0023         INT,
0024         INT64,
0025     };
0026 
0027     Value();
0028     Value(int val);
0029     Value(Int64 val);
0030     Value(const QByteArray &val);
0031     Value(const Value &val);
0032     ~Value();
0033 
0034     Value &operator=(const Value &val);
0035     Value &operator=(Int32 val);
0036     Value &operator=(Int64 val);
0037     Value &operator=(const QByteArray &val);
0038 
0039     Type getType() const
0040     {
0041         return type;
0042     }
0043     Int32 toInt() const
0044     {
0045         return ival;
0046     }
0047     Int64 toInt64() const
0048     {
0049         return big_ival;
0050     }
0051     QString toString() const
0052     {
0053         return QString::fromUtf8(strval);
0054     }
0055     QString toString(QTextCodec *tc) const;
0056     QByteArray toByteArray() const
0057     {
0058         return strval;
0059     }
0060 
0061 private:
0062     Type type;
0063     Int32 ival;
0064     QByteArray strval;
0065     Int64 big_ival;
0066 };
0067 }
0068 
0069 #endif