db/Interface: migrate visitor methods from class Error to C++ exceptions

This commit is contained in:
Max Kellermann
2016-10-29 10:21:57 +02:00
parent 9a9da7b077
commit fac8edd47a
27 changed files with 190 additions and 331 deletions

View File

@@ -32,7 +32,6 @@
#include "fs/Traits.hxx"
#include "util/Alloc.hxx"
#include "util/DeleteDisposer.hxx"
#include "util/Error.hxx"
#include <assert.h>
#include <string.h>
@@ -218,14 +217,11 @@ Directory::Sort()
child.Sort();
}
bool
void
Directory::Walk(bool recursive, const SongFilter *filter,
VisitDirectory visit_directory, VisitSong visit_song,
VisitPlaylist visit_playlist,
Error &error) const
VisitPlaylist visit_playlist) const
{
assert(!error.IsDefined());
if (IsMount()) {
assert(IsEmpty());
@@ -233,11 +229,11 @@ Directory::Walk(bool recursive, const SongFilter *filter,
because the child's SimpleDatabasePlugin::Visit()
call will lock it again */
const ScopeDatabaseUnlock unlock;
return WalkMount(GetPath(), *mounted_database,
recursive, filter,
visit_directory, visit_song,
visit_playlist,
error);
WalkMount(GetPath(), *mounted_database,
recursive, filter,
visit_directory, visit_song,
visit_playlist);
return;
}
if (visit_song) {
@@ -257,14 +253,11 @@ Directory::Walk(bool recursive, const SongFilter *filter,
if (visit_directory)
visit_directory(child.Export());
if (recursive &&
!child.Walk(recursive, filter,
visit_directory, visit_song, visit_playlist,
error))
return false;
if (recursive)
child.Walk(recursive, filter,
visit_directory, visit_song,
visit_playlist);
}
return true;
}
LightDirectory