diff options
author | Max Kellermann <max@duempel.org> | 2013-10-20 13:41:04 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-10-20 13:41:04 +0200 |
commit | 5ec843dcc89737bb2ca9e428415d9a052c5a753d (patch) | |
tree | 17fea4f30c52810ece404200698f1975610f2c3b /src/CommandError.cxx | |
parent | a78b2d84ed7c2a82c69c56125036e70b009a87b0 (diff) | |
download | mpd-5ec843dcc89737bb2ca9e428415d9a052c5a753d.tar.gz mpd-5ec843dcc89737bb2ca9e428415d9a052c5a753d.tar.xz mpd-5ec843dcc89737bb2ca9e428415d9a052c5a753d.zip |
*Commands: move to src/command/
Diffstat (limited to 'src/CommandError.cxx')
-rw-r--r-- | src/CommandError.cxx | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/src/CommandError.cxx b/src/CommandError.cxx deleted file mode 100644 index fe9d9481a..000000000 --- a/src/CommandError.cxx +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2003-2012 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "config.h" -#include "CommandError.hxx" -#include "DatabaseError.hxx" -#include "protocol/Result.hxx" -#include "util/Error.hxx" -#include "Log.hxx" - -#include <glib.h> - -#include <assert.h> -#include <errno.h> - -CommandResult -print_playlist_result(Client &client, PlaylistResult result) -{ - switch (result) { - case PlaylistResult::SUCCESS: - return CommandResult::OK; - - case PlaylistResult::ERRNO: - command_error(client, ACK_ERROR_SYSTEM, "%s", - g_strerror(errno)); - return CommandResult::ERROR; - - case PlaylistResult::DENIED: - command_error(client, ACK_ERROR_PERMISSION, "Access denied"); - return CommandResult::ERROR; - - case PlaylistResult::NO_SUCH_SONG: - command_error(client, ACK_ERROR_NO_EXIST, "No such song"); - return CommandResult::ERROR; - - case PlaylistResult::NO_SUCH_LIST: - command_error(client, ACK_ERROR_NO_EXIST, "No such playlist"); - return CommandResult::ERROR; - - case PlaylistResult::LIST_EXISTS: - command_error(client, ACK_ERROR_EXIST, - "Playlist already exists"); - return CommandResult::ERROR; - - case PlaylistResult::BAD_NAME: - command_error(client, ACK_ERROR_ARG, - "playlist name is invalid: " - "playlist names may not contain slashes," - " newlines or carriage returns"); - return CommandResult::ERROR; - - case PlaylistResult::BAD_RANGE: - command_error(client, ACK_ERROR_ARG, "Bad song index"); - return CommandResult::ERROR; - - case PlaylistResult::NOT_PLAYING: - command_error(client, ACK_ERROR_PLAYER_SYNC, "Not playing"); - return CommandResult::ERROR; - - case PlaylistResult::TOO_LARGE: - command_error(client, ACK_ERROR_PLAYLIST_MAX, - "playlist is at the max size"); - return CommandResult::ERROR; - - case PlaylistResult::DISABLED: - command_error(client, ACK_ERROR_UNKNOWN, - "stored playlist support is disabled"); - return CommandResult::ERROR; - } - - assert(0); - return CommandResult::ERROR; -} - -CommandResult -print_error(Client &client, const Error &error) -{ - assert(error.IsDefined()); - - LogError(error); - - if (error.IsDomain(playlist_domain)) { - return print_playlist_result(client, - PlaylistResult(error.GetCode())); - } else if (error.IsDomain(ack_domain)) { - command_error(client, (ack)error.GetCode(), - "%s", error.GetMessage()); - return CommandResult::ERROR; - } else if (error.IsDomain(db_domain)) { - switch ((enum db_error)error.GetCode()) { - case DB_DISABLED: - command_error(client, ACK_ERROR_NO_EXIST, "%s", - error.GetMessage()); - return CommandResult::ERROR; - - case DB_NOT_FOUND: - command_error(client, ACK_ERROR_NO_EXIST, "Not found"); - return CommandResult::ERROR; - } - } else if (error.IsDomain(errno_domain)) { - command_error(client, ACK_ERROR_SYSTEM, "%s", - g_strerror(error.GetCode())); - return CommandResult::ERROR; - } - - command_error(client, ACK_ERROR_UNKNOWN, "error"); - return CommandResult::ERROR; -} |