db/simple: migrate Mount() from class Error to C++ exceptions

This commit is contained in:
Max Kellermann
2016-10-29 10:56:31 +02:00
parent fac8edd47a
commit df142d4f61
3 changed files with 8 additions and 16 deletions

View File

@@ -395,9 +395,8 @@ IsUnsafeChar(char ch)
return !IsSafeChar(ch);
}
bool
SimpleDatabase::Mount(const char *local_uri, const char *storage_uri,
Error &error)
void
SimpleDatabase::Mount(const char *local_uri, const char *storage_uri)
{
if (cache_path.IsNull())
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
@@ -406,9 +405,7 @@ SimpleDatabase::Mount(const char *local_uri, const char *storage_uri,
std::string name(storage_uri);
std::replace_if(name.begin(), name.end(), IsUnsafeChar, '_');
const auto name_fs = AllocatedPath::FromUTF8(name.c_str(), error);
if (name_fs.IsNull())
return false;
const auto name_fs = AllocatedPath::FromUTF8Throw(name.c_str());
#ifndef ENABLE_ZLIB
constexpr bool compress = false;
@@ -432,8 +429,6 @@ SimpleDatabase::Mount(const char *local_uri, const char *storage_uri,
delete db;
throw;
}
return true;
}
Database *

View File

@@ -98,9 +98,11 @@ public:
gcc_nonnull_all
void Mount(const char *uri, Database *db);
/**
* Throws #std::runtime_error on error.
*/
gcc_nonnull_all
bool Mount(const char *local_uri, const char *storage_uri,
Error &error);
void Mount(const char *local_uri, const char *storage_uri);
gcc_nonnull_all
bool Unmount(const char *uri);