diff options
author | Max Kellermann <max@duempel.org> | 2014-02-26 08:39:44 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-02-27 20:49:13 +0100 |
commit | e9a85aa4e4d0634548b5c97461beb27ae5559338 (patch) | |
tree | 7cdfdd0ae0d990a8adbecc34f32d073627483205 /src/db/plugins/simple/Directory.hxx | |
parent | 2a16fc74fd354484a70efcc5b6dbfcdd73ee5f5a (diff) | |
download | mpd-e9a85aa4e4d0634548b5c97461beb27ae5559338.tar.gz mpd-e9a85aa4e4d0634548b5c97461beb27ae5559338.tar.xz mpd-e9a85aa4e4d0634548b5c97461beb27ae5559338.zip |
db/simple: mount points
A SimpleDatabase instance can now "mount" other Database instances at
certain locations. This is used to use a new SimpleDatabase instance
for each storage mount (issued with the "mount" protocol command).
Each such instance has its own database file, stored in the directory
that is specified with the "cache_directory" option.
Diffstat (limited to 'src/db/plugins/simple/Directory.hxx')
-rw-r--r-- | src/db/plugins/simple/Directory.hxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/db/plugins/simple/Directory.hxx b/src/db/plugins/simple/Directory.hxx index 5b39231e3..029815d95 100644 --- a/src/db/plugins/simple/Directory.hxx +++ b/src/db/plugins/simple/Directory.hxx @@ -57,6 +57,7 @@ struct Song; struct db_visitor; class SongFilter; class Error; +class Database; struct Directory { /** @@ -94,6 +95,12 @@ struct Directory { std::string path; + /** + * If this is not nullptr, then this directory does not really + * exist, but is a mount point for another #Database. + */ + Database *mounted_database; + public: Directory(std::string &&_path_utf8, Directory *_parent); ~Directory(); @@ -106,6 +113,10 @@ public: return new Directory(std::string(), nullptr); } + bool IsMount() const { + return mounted_database != nullptr; + } + /** * Remove this #Directory object from its parent and free it. This * must not be called with the root Directory. |