Path: new class "Path" wraps filesystem path strings

This commit is contained in:
Max Kellermann
2013-01-17 00:56:57 +01:00
parent 8901514506
commit e5039c478a
21 changed files with 380 additions and 238 deletions

View File

@@ -68,7 +68,7 @@ SimpleDatabase::Configure(const struct config_param *param, GError **error_r)
return false;
}
path = _path;
path = Path::FromUTF8(_path);
free(_path);
return true;
@@ -77,6 +77,7 @@ SimpleDatabase::Configure(const struct config_param *param, GError **error_r)
bool
SimpleDatabase::Check(GError **error_r) const
{
assert(!path.IsNull());
assert(!path.empty());
/* Check if the file exists */
@@ -153,7 +154,7 @@ SimpleDatabase::Load(GError **error_r)
assert(!path.empty());
assert(root != NULL);
TextFile file(path.c_str());
TextFile file(path);
if (file.HasFailed()) {
g_set_error(error_r, simple_db_quark(), errno,
"Failed to open database file \"%s\": %s",

View File

@@ -21,17 +21,17 @@
#define MPD_SIMPLE_DATABASE_PLUGIN_HXX
#include "DatabasePlugin.hxx"
#include "Path.hxx"
#include "gcc.h"
#include <cassert>
#include <string>
#include <time.h>
struct Directory;
class SimpleDatabase : public Database {
std::string path;
Path path;
Directory *root;
@@ -41,6 +41,9 @@ class SimpleDatabase : public Database {
unsigned borrowed_song_count;
#endif
SimpleDatabase()
:path(Path::Null()) {}
public:
gcc_pure
Directory *GetRoot() {