/** * This file is part of TelepathyQt * * @copyright Copyright (C) 2012 Collabora Ltd. * @copyright Copyright (C) 2012 Nokia Corporation * @license LGPL 2.1 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include namespace Tp { struct TP_QT_NO_EXPORT DBusError::Private { Private(const QString &name, const QString &message) : name(name), message(message) { } QString name; QString message; }; /** * \class DBusError * \ingroup servicesideimpl * \headerfile TelepathyQt/dbus-error.h * * \brief Small container class, containing a D-Bus error */ /** * Construct an empty DBusError */ DBusError::DBusError() : mPriv(0) { } /** * Construct a DBusError with the given error \a name and \a message. * * \param name The D-Bus error name. * \param message A human-readable description of the error. */ DBusError::DBusError(const QString &name, const QString &message) : mPriv(new Private(name, message)) { } /** * Class destructor. */ DBusError::~DBusError() { } /** * Compare this error with another one. * * \param other The other error to compare to. * \return \c true if the two errors have the same name and message * or \c false otherwise. */ bool DBusError::operator==(const DBusError &other) const { if (!isValid() || !other.isValid()) { if (!isValid() && !other.isValid()) { return true; } return false; } return mPriv->name == other.mPriv->name && mPriv->message == other.mPriv->message; } /** * Compare this error with another one. * * \param other The other error to compare to. * \return \c false if the two errors have the same name and message * or \c true otherwise. */ bool DBusError::operator!=(const DBusError &other) const { if (!isValid() || !other.isValid()) { if (!isValid() && !other.isValid()) { return false; } return true; } return mPriv->name != other.mPriv->name || mPriv->message != other.mPriv->message; } /** * Return the D-Bus name of this error. * * \return The D-Bus name of this error. */ QString DBusError::name() const { if (!isValid()) { return QString(); } return mPriv->name; } /** * Return the human-readable description of the error. * * \return The human-readable description of the error. */ QString DBusError::message() const { if (!isValid()) { return QString(); } return mPriv->message; } /** * Set this DBusError to contain the given error \a name and \a message. * * \param name The D-Bus error name to set. * \param message The description of the error to set. */ void DBusError::set(const QString &name, const QString &message) { if (!isValid()) { mPriv = new Private(name, message); return; } mPriv->name = name; mPriv->message = message; } /** * \fn bool DBusError::isValid() const * * Return whether this DBusError is set to contain an error or not. * * \return \c true if the error name and message have been set, * or \c false otherwise. */ } // Tp