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