db/simple/Directory: rename LookupResult::uri to "rest"
This commit is contained in:
parent
870151214d
commit
6c8eb3c7ed
@ -186,7 +186,7 @@ public:
|
|||||||
* The remaining URI part (without leading slash) or
|
* The remaining URI part (without leading slash) or
|
||||||
* nullptr if the given URI was consumed completely.
|
* nullptr if the given URI was consumed completely.
|
||||||
*/
|
*/
|
||||||
const char *uri;
|
const char *rest;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -212,7 +212,7 @@ SimpleDatabase::GetSong(const char *uri) const
|
|||||||
protect.unlock();
|
protect.unlock();
|
||||||
|
|
||||||
const LightSong *song =
|
const LightSong *song =
|
||||||
r.directory->mounted_database->GetSong(r.uri);
|
r.directory->mounted_database->GetSong(r.rest);
|
||||||
if (song == nullptr)
|
if (song == nullptr)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
@ -222,17 +222,17 @@ SimpleDatabase::GetSong(const char *uri) const
|
|||||||
return prefixed_light_song;
|
return prefixed_light_song;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r.uri == nullptr)
|
if (r.rest == nullptr)
|
||||||
/* it's a directory */
|
/* it's a directory */
|
||||||
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
||||||
"No such song");
|
"No such song");
|
||||||
|
|
||||||
if (strchr(r.uri, '/') != nullptr)
|
if (strchr(r.rest, '/') != nullptr)
|
||||||
/* refers to a URI "below" the actual song */
|
/* refers to a URI "below" the actual song */
|
||||||
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
||||||
"No such song");
|
"No such song");
|
||||||
|
|
||||||
const Song *song = r.directory->FindSong(r.uri);
|
const Song *song = r.directory->FindSong(r.rest);
|
||||||
protect.unlock();
|
protect.unlock();
|
||||||
if (song == nullptr)
|
if (song == nullptr)
|
||||||
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
||||||
@ -290,7 +290,7 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
|
|||||||
protect.unlock();
|
protect.unlock();
|
||||||
|
|
||||||
WalkMount(r.directory->GetPath(), *(r.directory->mounted_database),
|
WalkMount(r.directory->GetPath(), *(r.directory->mounted_database),
|
||||||
(r.uri == nullptr)?"":r.uri, selection,
|
(r.rest == nullptr)?"":r.rest, selection,
|
||||||
visit_directory, visit_song, visit_playlist);
|
visit_directory, visit_song, visit_playlist);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -298,7 +298,7 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
|
|||||||
|
|
||||||
DatabaseVisitorHelper helper(CheckSelection(selection), visit_song);
|
DatabaseVisitorHelper helper(CheckSelection(selection), visit_song);
|
||||||
|
|
||||||
if (r.uri == nullptr) {
|
if (r.rest == nullptr) {
|
||||||
/* it's a directory */
|
/* it's a directory */
|
||||||
|
|
||||||
if (selection.recursive && visit_directory)
|
if (selection.recursive && visit_directory)
|
||||||
@ -311,9 +311,9 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strchr(r.uri, '/') == nullptr) {
|
if (strchr(r.rest, '/') == nullptr) {
|
||||||
if (visit_song) {
|
if (visit_song) {
|
||||||
Song *song = r.directory->FindSong(r.uri);
|
Song *song = r.directory->FindSong(r.rest);
|
||||||
if (song != nullptr) {
|
if (song != nullptr) {
|
||||||
const LightSong song2 = song->Export();
|
const LightSong song2 = song->Export();
|
||||||
if (selection.Match(song2))
|
if (selection.Match(song2))
|
||||||
@ -402,15 +402,15 @@ SimpleDatabase::Mount(const char *uri, DatabasePtr db)
|
|||||||
ScopeDatabaseLock protect;
|
ScopeDatabaseLock protect;
|
||||||
|
|
||||||
auto r = root->LookupDirectory(uri);
|
auto r = root->LookupDirectory(uri);
|
||||||
if (r.uri == nullptr)
|
if (r.rest == nullptr)
|
||||||
throw DatabaseError(DatabaseErrorCode::CONFLICT,
|
throw DatabaseError(DatabaseErrorCode::CONFLICT,
|
||||||
"Already exists");
|
"Already exists");
|
||||||
|
|
||||||
if (strchr(r.uri, '/') != nullptr)
|
if (strchr(r.rest, '/') != nullptr)
|
||||||
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
throw DatabaseError(DatabaseErrorCode::NOT_FOUND,
|
||||||
"Parent not found");
|
"Parent not found");
|
||||||
|
|
||||||
Directory *mnt = r.directory->CreateChild(r.uri);
|
Directory *mnt = r.directory->CreateChild(r.rest);
|
||||||
mnt->mounted_database = std::move(db);
|
mnt->mounted_database = std::move(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,7 +461,7 @@ SimpleDatabase::LockUmountSteal(const char *uri) noexcept
|
|||||||
ScopeDatabaseLock protect;
|
ScopeDatabaseLock protect;
|
||||||
|
|
||||||
auto r = root->LookupDirectory(uri);
|
auto r = root->LookupDirectory(uri);
|
||||||
if (r.uri != nullptr || !r.directory->IsMount())
|
if (r.rest != nullptr || !r.directory->IsMount())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
auto db = std::move(r.directory->mounted_database);
|
auto db = std::move(r.directory->mounted_database);
|
||||||
|
@ -192,17 +192,17 @@ UpdateService::Enqueue(const char *path, bool discard)
|
|||||||
if (db2 == nullptr)
|
if (db2 == nullptr)
|
||||||
throw std::runtime_error("Cannot update this type of database");
|
throw std::runtime_error("Cannot update this type of database");
|
||||||
|
|
||||||
if (lr.uri == nullptr) {
|
if (lr.rest == nullptr) {
|
||||||
storage2 = storage.GetMount(path);
|
storage2 = storage.GetMount(path);
|
||||||
path = "";
|
path = "";
|
||||||
} else {
|
} else {
|
||||||
assert(lr.uri > path);
|
assert(lr.rest > path);
|
||||||
assert(lr.uri < path + strlen(path));
|
assert(lr.rest < path + strlen(path));
|
||||||
assert(lr.uri[-1] == '/');
|
assert(lr.rest[-1] == '/');
|
||||||
|
|
||||||
const std::string mountpoint(path, lr.uri - 1);
|
const std::string mountpoint(path, lr.rest - 1);
|
||||||
storage2 = storage.GetMount(mountpoint.c_str());
|
storage2 = storage.GetMount(mountpoint.c_str());
|
||||||
path = lr.uri;
|
path = lr.rest;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* use the "root" database/storage */
|
/* use the "root" database/storage */
|
||||||
|
Loading…
Reference in New Issue
Block a user