File indexing completed on 2024-11-24 04:53:23
0001 /* Copyright (C) 2006 - 2014 Jan Kundrát <jkt@flaska.net> 0002 0003 This file is part of the Trojita Qt IMAP e-mail client, 0004 http://trojita.flaska.net/ 0005 0006 This program is free software; you can redistribute it and/or 0007 modify it under the terms of the GNU General Public License as 0008 published by the Free Software Foundation; either version 2 of 0009 the License or (at your option) version 3 or any later version 0010 accepted by the membership of KDE e.V. (or its successor approved 0011 by the membership of KDE e.V.), which shall act as a proxy 0012 defined in Section 14 of version 3 of the license. 0013 0014 This program is distributed in the hope that it will be useful, 0015 but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 GNU General Public License for more details. 0018 0019 You should have received a copy of the GNU General Public License 0020 along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 */ 0022 #include "Exceptions.h" 0023 0024 #include <QTextStream> 0025 #include "Parser/Response.h" 0026 0027 namespace Imap 0028 { 0029 0030 const char *ImapException::what() const throw() 0031 { 0032 if (m_offset == -1) 0033 return m_msg.c_str(); 0034 else { 0035 QByteArray out(m_msg.c_str()); 0036 out += " when parsing this:\n"; 0037 out += m_line; 0038 out += QByteArray(m_offset, ' '); 0039 out += "^ here (offset " + QByteArray::number(m_offset) + ")\n"; 0040 return out.constData(); 0041 } 0042 } 0043 0044 0045 MailboxException::MailboxException(const char *const msg, 0046 const Imap::Responses::AbstractResponse &response) 0047 { 0048 QByteArray buf; 0049 QTextStream s(&buf); 0050 s << msg << "\r\n" << response; 0051 s.flush(); 0052 m_msg = buf.constData(); 0053 m_exceptionClass = "MailboxException"; 0054 } 0055 0056 MailboxException::MailboxException(const char *const msg) 0057 { 0058 m_msg = msg; 0059 m_exceptionClass = "MailboxException"; 0060 } 0061 0062 }