diff options
author | Max Kellermann <max@musicpd.org> | 2016-11-10 12:58:26 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2016-11-10 12:58:26 +0100 |
commit | 22dcca9832e30c27630041bee867639e05ffd072 (patch) | |
tree | 7a03453cdc3881f5cfe09b878d6aa558d5ea5e67 /src | |
parent | db6c0d54cfc2eb9741b4e5c7634f41eecb2d4703 (diff) |
util/Error: remove obsolete class
Diffstat (limited to 'src')
27 files changed, 3 insertions, 421 deletions
diff --git a/src/Instance.hxx b/src/Instance.hxx index ed220b794..368e6afdd 100644 --- a/src/Instance.hxx +++ b/src/Instance.hxx @@ -37,7 +37,6 @@ class Storage; class UpdateService; #endif -class Error; class ClientList; struct Partition; class StateFile; diff --git a/src/Log.cxx b/src/Log.cxx index 330ac4bc0..232e7d49d 100644 --- a/src/Log.cxx +++ b/src/Log.cxx @@ -19,7 +19,7 @@ #include "config.h" #include "LogV.hxx" -#include "util/Error.hxx" +#include "util/Domain.hxx" #include <exception> @@ -27,6 +27,8 @@ #include <string.h> #include <errno.h> +static constexpr Domain exception_domain("exception"); + void LogFormatV(const Domain &domain, LogLevel level, const char *fmt, va_list ap) { diff --git a/src/PlaylistDatabase.hxx b/src/PlaylistDatabase.hxx index fd2be89b5..9b5aefb7e 100644 --- a/src/PlaylistDatabase.hxx +++ b/src/PlaylistDatabase.hxx @@ -27,7 +27,6 @@ class PlaylistVector; class BufferedOutputStream; class TextFile; -class Error; void playlist_vector_save(BufferedOutputStream &os, const PlaylistVector &pv); diff --git a/src/PlaylistFile.hxx b/src/PlaylistFile.hxx index 6fa846849..a453f8118 100644 --- a/src/PlaylistFile.hxx +++ b/src/PlaylistFile.hxx @@ -26,7 +26,6 @@ class DetachedSong; class SongLoader; class PlaylistVector; -class Error; class AllocatedPath; typedef std::vector<std::string> PlaylistFileContents; diff --git a/src/SongLoader.hxx b/src/SongLoader.hxx index 409af7b66..aa867af38 100644 --- a/src/SongLoader.hxx +++ b/src/SongLoader.hxx @@ -30,7 +30,6 @@ class Database; class Storage; class DetachedSong; class Path; -class Error; struct LocatedUri; /** diff --git a/src/SongSave.hxx b/src/SongSave.hxx index 5c29fbfd9..0b33cbea0 100644 --- a/src/SongSave.hxx +++ b/src/SongSave.hxx @@ -26,7 +26,6 @@ struct Song; class DetachedSong; class BufferedOutputStream; class TextFile; -class Error; void song_save(BufferedOutputStream &os, const Song &song); diff --git a/src/config/Param.hxx b/src/config/Param.hxx index 50530292e..4a4a5bc4e 100644 --- a/src/config/Param.hxx +++ b/src/config/Param.hxx @@ -25,7 +25,6 @@ #include <string> -class Error; class AllocatedPath; struct ConfigParam { diff --git a/src/db/plugins/simple/DatabaseSave.hxx b/src/db/plugins/simple/DatabaseSave.hxx index dd5341d32..3102c38eb 100644 --- a/src/db/plugins/simple/DatabaseSave.hxx +++ b/src/db/plugins/simple/DatabaseSave.hxx @@ -23,7 +23,6 @@ struct Directory; class BufferedOutputStream; class TextFile; -class Error; void db_save_internal(BufferedOutputStream &os, const Directory &root); diff --git a/src/db/plugins/simple/DirectorySave.hxx b/src/db/plugins/simple/DirectorySave.hxx index 3737710f9..11865d6c6 100644 --- a/src/db/plugins/simple/DirectorySave.hxx +++ b/src/db/plugins/simple/DirectorySave.hxx @@ -23,7 +23,6 @@ struct Directory; class TextFile; class BufferedOutputStream; -class Error; void directory_save(BufferedOutputStream &os, const Directory &directory); diff --git a/src/db/plugins/upnp/Directory.hxx b/src/db/plugins/upnp/Directory.hxx index f4be54474..b2b2b7107 100644 --- a/src/db/plugins/upnp/Directory.hxx +++ b/src/db/plugins/upnp/Directory.hxx @@ -26,8 +26,6 @@ #include <string> #include <vector> -class Error; - /** * Image of a MediaServer Directory Service container (directory), * possibly containing items and subordinate containers. diff --git a/src/encoder/plugins/TwolameEncoderPlugin.cxx b/src/encoder/plugins/TwolameEncoderPlugin.cxx index c49501524..b4123bf5b 100644 --- a/src/encoder/plugins/TwolameEncoderPlugin.cxx +++ b/src/encoder/plugins/TwolameEncoderPlugin.cxx @@ -56,8 +56,6 @@ public: audio_format(_audio_format), options(_options) {} ~TwolameEncoder() override; - bool Configure(const ConfigBlock &block, Error &error); - /* virtual methods from class Encoder */ void End() override { diff --git a/src/filter/FilterInternal.hxx b/src/filter/FilterInternal.hxx index 6cf8c37cb..b99974a07 100644 --- a/src/filter/FilterInternal.hxx +++ b/src/filter/FilterInternal.hxx @@ -30,7 +30,6 @@ #include <stddef.h> struct AudioFormat; -class Error; template<typename T> struct ConstBuffer; class Filter { diff --git a/src/filter/plugins/ConvertFilterPlugin.hxx b/src/filter/plugins/ConvertFilterPlugin.hxx index 9d7890574..ef5d5dc71 100644 --- a/src/filter/plugins/ConvertFilterPlugin.hxx +++ b/src/filter/plugins/ConvertFilterPlugin.hxx @@ -21,7 +21,6 @@ #define MPD_CONVERT_FILTER_PLUGIN_HXX class Filter; -class Error; struct AudioFormat; Filter * diff --git a/src/fs/Charset.hxx b/src/fs/Charset.hxx index f0d6e15e6..7aeda8aaf 100644 --- a/src/fs/Charset.hxx +++ b/src/fs/Charset.hxx @@ -28,8 +28,6 @@ #define HAVE_FS_CHARSET #endif -class Error; - /** * Gets file system character set name. */ diff --git a/src/fs/Config.hxx b/src/fs/Config.hxx index 78cda056e..9e6c0e5eb 100644 --- a/src/fs/Config.hxx +++ b/src/fs/Config.hxx @@ -22,8 +22,6 @@ #include "check.h" -class Error; - /** * Performs global one-time initialization of this class. * diff --git a/src/input/Init.hxx b/src/input/Init.hxx index 37d68d4b7..29744a318 100644 --- a/src/input/Init.hxx +++ b/src/input/Init.hxx @@ -20,8 +20,6 @@ #ifndef MPD_INPUT_INIT_HXX #define MPD_INPUT_INIT_HXX -class Error; - /** * Initializes this library and all #InputStream implementations. */ diff --git a/src/input/InputStream.hxx b/src/input/InputStream.hxx index f0330cb82..bbb3aeccf 100644 --- a/src/input/InputStream.hxx +++ b/src/input/InputStream.hxx @@ -31,7 +31,6 @@ #include <assert.h> class Cond; -class Error; struct Tag; class InputStream { diff --git a/src/lib/expat/ExpatParser.hxx b/src/lib/expat/ExpatParser.hxx index 7b5af23b5..1b12be767 100644 --- a/src/lib/expat/ExpatParser.hxx +++ b/src/lib/expat/ExpatParser.hxx @@ -28,7 +28,6 @@ #include <stdexcept> class InputStream; -class Error; class ExpatError final : public std::runtime_error { public: diff --git a/src/lib/icu/Collate.hxx b/src/lib/icu/Collate.hxx index 5bfe5ab05..d119d6fd9 100644 --- a/src/lib/icu/Collate.hxx +++ b/src/lib/icu/Collate.hxx @@ -23,7 +23,6 @@ #include "check.h" #include "Compiler.h" -class Error; template<typename T> class AllocatedString; /** diff --git a/src/lib/nfs/Lease.hxx b/src/lib/nfs/Lease.hxx index 37db7100c..21a8d615c 100644 --- a/src/lib/nfs/Lease.hxx +++ b/src/lib/nfs/Lease.hxx @@ -24,8 +24,6 @@ #include <exception> -class Error; - class NfsLease { public: /** diff --git a/src/net/AllocatedSocketAddress.hxx b/src/net/AllocatedSocketAddress.hxx index db02488df..c865d17dd 100644 --- a/src/net/AllocatedSocketAddress.hxx +++ b/src/net/AllocatedSocketAddress.hxx @@ -39,7 +39,6 @@ #include <stdlib.h> struct sockaddr; -class Error; class AllocatedSocketAddress { public: diff --git a/src/player/Control.hxx b/src/player/Control.hxx index 4b56e88b6..4af87e964 100644 --- a/src/player/Control.hxx +++ b/src/player/Control.hxx @@ -31,7 +31,6 @@ #include <stdint.h> -class Error; class PlayerListener; class MultipleOutputs; class DetachedSong; diff --git a/src/playlist/PlaylistQueue.hxx b/src/playlist/PlaylistQueue.hxx index e120926bc..7e6cac519 100644 --- a/src/playlist/PlaylistQueue.hxx +++ b/src/playlist/PlaylistQueue.hxx @@ -24,7 +24,6 @@ #ifndef MPD_PLAYLIST_QUEUE_HXX #define MPD_PLAYLIST_QUEUE_HXX -class Error; class SongLoader; class SongEnumerator; struct playlist; diff --git a/src/queue/Playlist.hxx b/src/queue/Playlist.hxx index a69f8b52e..c77e347b7 100644 --- a/src/queue/Playlist.hxx +++ b/src/queue/Playlist.hxx @@ -26,7 +26,6 @@ enum TagType : uint8_t; struct PlayerControl; class DetachedSong; class Database; -class Error; class SongLoader; class SongTime; class SignedSongTime; diff --git a/src/sticker/StickerDatabase.hxx b/src/sticker/StickerDatabase.hxx index af7be8af7..4e07554fd 100644 --- a/src/sticker/StickerDatabase.hxx +++ b/src/sticker/StickerDatabase.hxx @@ -47,7 +47,6 @@ #include <string> -class Error; class Path; struct Sticker; diff --git a/src/util/Error.cxx b/src/util/Error.cxx deleted file mode 100644 index 4fc067636..000000000 --- a/src/util/Error.cxx +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (C) 2013 Max Kellermann <max@duempel.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "Error.hxx" -#include "Domain.hxx" - -#include <system_error> - -#ifdef WIN32 -#include <windows.h> -#endif - -#include <errno.h> -#include <stdarg.h> -#include <stdio.h> -#include <string.h> - -const Domain exception_domain("exception"); - -const Domain errno_domain("errno"); - -#ifdef WIN32 -const Domain win32_domain("win32"); -#endif - -Error::~Error() {} - -void -Error::Set(std::exception_ptr src) -{ - try { - /* classify the exception */ - std::rethrow_exception(src); - } catch (const std::system_error &se) { - if (se.code().category() == std::system_category()) { -#ifdef WIN32 - Set(win32_domain, se.code().value(), se.what()); -#else - Set(errno_domain, se.code().value(), se.what()); -#endif - } else - Set(exception_domain, se.what()); - } catch (const std::exception &e) { - Set(exception_domain, e.what()); - } catch (...) { - Set(exception_domain, "Unknown exception"); - } -} - -void -Error::Set(const Domain &_domain, int _code, const char *_message) -{ - domain = &_domain; - code = _code; - message.assign(_message); -} - -void -Error::Format2(const Domain &_domain, int _code, const char *fmt, ...) -{ - char buffer[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - Set(_domain, _code, buffer); -} - -void -Error::FormatPrefix(const char *fmt, ...) -{ - char buffer[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - AddPrefix(buffer); -} - -void -Error::SetErrno(int e) -{ - Set(errno_domain, e, strerror(e)); -} - -void -Error::SetErrno() -{ - SetErrno(errno); -} - -void -Error::SetErrno(int e, const char *prefix) -{ - Format(errno_domain, e, "%s: %s", prefix, strerror(e)); -} - -void -Error::SetErrno(const char *prefix) -{ - SetErrno(errno, prefix); -} - -void -Error::FormatErrno(int e, const char *fmt, ...) -{ - char buffer[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - SetErrno(e, buffer); -} - -void -Error::FormatErrno(const char *fmt, ...) -{ - const int e = errno; - - char buffer[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - SetErrno(e, buffer); -} - -#ifdef WIN32 - -void -Error::SetLastError(DWORD _code, const char *prefix) -{ - char msg[256]; - FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, _code, 0, msg, sizeof(msg), nullptr); - - Format(win32_domain, int(_code), "%s: %s", prefix, msg); -} - -void -Error::SetLastError(const char *prefix) -{ - SetLastError(GetLastError(), prefix); -} - -void -Error::FormatLastError(DWORD _code, const char *fmt, ...) -{ - char buffer[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - SetLastError(_code, buffer); -} - -void -Error::FormatLastError(const char *fmt, ...) -{ - DWORD _code = GetLastError(); - - char buffer[1024]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - SetLastError(_code, buffer); -} - -#endif diff --git a/src/util/Error.hxx b/src/util/Error.hxx deleted file mode 100644 index dc6d793bc..000000000 --- a/src/util/Error.hxx +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright (C) 2013 Max Kellermann <max@duempel.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef ERROR_HXX -#define ERROR_HXX - -#include "check.h" -#include "Compiler.h" - -#include <string> -#include <utility> -#include <exception> - -#include <assert.h> - -class Domain; - -/** Domain for std::exception */ -extern const Domain exception_domain; - -extern const Domain errno_domain; - -#ifdef WIN32 -/* fuck WIN32! */ -#include <windows.h> -#define IgnoreError MPDIgnoreError -#undef GetMessage - -/** - * Domain for GetLastError(). - */ -extern const Domain win32_domain; -#endif - -/** - * This class contains information about a runtime error. - */ -class Error { - const Domain *domain; - int code; - std::string message; - -public: - Error():domain(nullptr), code(0) {} - - Error(const Domain &_domain, int _code, const char *_message) - :domain(&_domain), code(_code), message(_message) {} - - Error(const Domain &_domain, const char *_message) - :domain(&_domain), code(0), message(_message) {} - - ~Error(); - - bool IsDefined() const { - return domain != nullptr; - } - - void Clear() { - domain = nullptr; - } - - const Domain &GetDomain() const { - assert(IsDefined()); - - return *domain; - } - - bool IsDomain(const Domain &other) const { - return domain == &other; - } - - int GetCode() const { - assert(IsDefined()); - - return code; - } - - const char *GetMessage() const { - assert(IsDefined()); - - return message.c_str(); - } - - void Set(const Error &other) { - assert(!IsDefined()); - assert(other.IsDefined()); - - domain = other.domain; - code = other.code; - message = other.message; - } - - void Set(std::exception_ptr src); - - void Set(const Domain &_domain, int _code, const char *_message); - - void Set(const Domain &_domain, const char *_message) { - Set(_domain, 0, _message); - } - -private: - void Format2(const Domain &_domain, int _code, const char *fmt, ...); - -public: - template<typename... Args> - void Format(const Domain &_domain, int _code, - const char *fmt, Args&&... args) { - Format2(_domain, _code, fmt, std::forward<Args>(args)...); - } - - template<typename... Args> - void Format(const Domain &_domain, const char *fmt, Args&&... args) { - Format2(_domain, 0, fmt, std::forward<Args>(args)...); - } - - void AddPrefix(const char *prefix) { - message.insert(0, prefix); - } - - gcc_printf(2,3) - void FormatPrefix(const char *fmt, ...); - - void SetErrno(int e); - void SetErrno(); - void SetErrno(int e, const char *prefix); - void SetErrno(const char *prefix); - - gcc_printf(2,3) - void FormatErrno(const char *prefix, ...); - - gcc_printf(3,4) - void FormatErrno(int e, const char *prefix, ...); - -#ifdef WIN32 - void SetLastError(DWORD _code, const char *prefix); - void SetLastError(const char *prefix); - - gcc_printf(3,4) - void FormatLastError(DWORD code, const char *fmt, ...); - - gcc_printf(2,3) - void FormatLastError(const char *fmt, ...); -#endif -}; - -/** - * Pass a temporary instance of this class to ignore errors. - */ -class IgnoreError final { - Error error; - -public: - operator Error &() { - assert(!error.IsDefined()); - - return error; - } -}; - -#endif |