File indexing completed on 2024-05-19 05:57:23
0001 // SPDX-FileCopyrightText: 2022 Plata Hill <plata.hill@kdemail.net> 0002 // SPDX-License-Identifier: LGPL-2.1-or-later 0003 0004 #pragma once 0005 0006 #include <QString> 0007 0008 struct ChannelTag { 0009 }; 0010 struct GroupTag { 0011 }; 0012 struct ProgramTag { 0013 }; 0014 0015 template<class Tag> 0016 struct QStringId { 0017 explicit QStringId(const QString &id) 0018 : m_id(id) 0019 { 0020 } 0021 QStringId() 0022 : m_id() 0023 { 0024 } 0025 0026 const QString &value() const 0027 { 0028 return m_id; 0029 } 0030 0031 private: 0032 QString m_id; 0033 0034 friend bool operator==(const QStringId &l, const QStringId &r) 0035 { 0036 return l.m_id == r.m_id; 0037 } 0038 0039 friend bool operator!=(const QStringId &l, const QStringId &r) 0040 { 0041 return !(l == r); 0042 } 0043 0044 friend bool operator<(const QStringId &l, const QStringId &r) 0045 { 0046 return l.m_id < r.m_id; 0047 } 0048 }; 0049 0050 using ChannelId = QStringId<ChannelTag>; 0051 using GroupId = QStringId<GroupTag>; 0052 using ProgramId = QStringId<ProgramTag>; 0053 0054 class Error 0055 { 0056 public: 0057 Error() 0058 : m_id(0) 0059 , m_message("") 0060 { 0061 } 0062 0063 explicit Error(const QString &message) 0064 : m_id(0) 0065 , m_message(message) 0066 { 0067 } 0068 0069 Error(int id, const QString &message) 0070 : m_id(id) 0071 , m_message(message) 0072 { 0073 } 0074 0075 void reset() 0076 { 0077 m_id = 0; 0078 m_message = ""; 0079 } 0080 0081 int m_id; 0082 QString m_message; 0083 };