db/UpdateWalk: move LocalStorage to Instance

Keep only a reference.
This commit is contained in:
Max Kellermann 2014-02-05 17:50:04 +01:00
parent 144cfe70bf
commit 4c995eb498
8 changed files with 21 additions and 7 deletions

View File

@ -31,6 +31,7 @@ class NeighborGlue;
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE
#include "db/DatabaseListener.hxx" #include "db/DatabaseListener.hxx"
class Database; class Database;
class LocalStorage;
class UpdateService; class UpdateService;
#endif #endif
@ -62,6 +63,8 @@ struct Instance final
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE
Database *database; Database *database;
LocalStorage *storage;
UpdateService *update; UpdateService *update;
#endif #endif
@ -71,6 +74,7 @@ struct Instance final
Instance() { Instance() {
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE
storage = nullptr;
update = nullptr; update = nullptr;
#endif #endif
} }

View File

@ -69,6 +69,7 @@
#include "db/DatabaseGlue.hxx" #include "db/DatabaseGlue.hxx"
#include "db/DatabaseSimple.hxx" #include "db/DatabaseSimple.hxx"
#include "db/plugins/SimpleDatabasePlugin.hxx" #include "db/plugins/SimpleDatabasePlugin.hxx"
#include "storage/LocalStorage.hxx"
#endif #endif
#ifdef ENABLE_NEIGHBOR_PLUGINS #ifdef ENABLE_NEIGHBOR_PLUGINS
@ -209,7 +210,10 @@ glue_db_init_and_load(void)
return true; return true;
SimpleDatabase &db = *(SimpleDatabase *)instance->database; SimpleDatabase &db = *(SimpleDatabase *)instance->database;
instance->storage = new LocalStorage(mapper_get_music_directory_utf8(),
mapper_get_music_directory_fs());
instance->update = new UpdateService(*instance->event_loop, db, instance->update = new UpdateService(*instance->event_loop, db,
*instance->storage,
*instance); *instance);
/* run database update after daemonization? */ /* run database update after daemonization? */

View File

@ -23,6 +23,7 @@
#include "db/DatabaseLock.hxx" #include "db/DatabaseLock.hxx"
#include "db/Directory.hxx" #include "db/Directory.hxx"
#include "db/Song.hxx" #include "db/Song.hxx"
#include "storage/LocalStorage.hxx"
#include "fs/AllocatedPath.hxx" #include "fs/AllocatedPath.hxx"
#include "storage/FileInfo.hxx" #include "storage/FileInfo.hxx"
#include "archive/ArchiveList.hxx" #include "archive/ArchiveList.hxx"

View File

@ -23,6 +23,7 @@
#include "db/DatabaseLock.hxx" #include "db/DatabaseLock.hxx"
#include "db/Directory.hxx" #include "db/Directory.hxx"
#include "db/Song.hxx" #include "db/Song.hxx"
#include "storage/LocalStorage.hxx"
#include "decoder/DecoderPlugin.hxx" #include "decoder/DecoderPlugin.hxx"
#include "decoder/DecoderList.hxx" #include "decoder/DecoderList.hxx"
#include "fs/AllocatedPath.hxx" #include "fs/AllocatedPath.hxx"

View File

@ -61,6 +61,7 @@ class UpdateService final : DeferredMonitor {
public: public:
UpdateService(EventLoop &_loop, SimpleDatabase &_db, UpdateService(EventLoop &_loop, SimpleDatabase &_db,
LocalStorage &_storage,
DatabaseListener &_listener); DatabaseListener &_listener);
/** /**

View File

@ -151,10 +151,11 @@ UpdateService::RunDeferred()
} }
UpdateService::UpdateService(EventLoop &_loop, SimpleDatabase &_db, UpdateService::UpdateService(EventLoop &_loop, SimpleDatabase &_db,
LocalStorage &_storage,
DatabaseListener &_listener) DatabaseListener &_listener)
:DeferredMonitor(_loop), db(_db), listener(_listener), :DeferredMonitor(_loop), db(_db), listener(_listener),
progress(UPDATE_PROGRESS_IDLE), progress(UPDATE_PROGRESS_IDLE),
update_task_id(0), update_task_id(0),
walk(_loop, _listener) walk(_loop, _listener, _storage)
{ {
} }

View File

@ -27,6 +27,7 @@
#include "db/Song.hxx" #include "db/Song.hxx"
#include "db/PlaylistVector.hxx" #include "db/PlaylistVector.hxx"
#include "db/Uri.hxx" #include "db/Uri.hxx"
#include "storage/LocalStorage.hxx"
#include "playlist/PlaylistRegistry.hxx" #include "playlist/PlaylistRegistry.hxx"
#include "Mapper.hxx" #include "Mapper.hxx"
#include "ExcludeList.hxx" #include "ExcludeList.hxx"
@ -47,9 +48,9 @@
#include <stdlib.h> #include <stdlib.h>
#include <errno.h> #include <errno.h>
UpdateWalk::UpdateWalk(EventLoop &_loop, DatabaseListener &_listener) UpdateWalk::UpdateWalk(EventLoop &_loop, DatabaseListener &_listener,
:storage(mapper_get_music_directory_utf8(), LocalStorage &_storage)
mapper_get_music_directory_fs()), :storage(_storage),
editor(_loop, _listener) editor(_loop, _listener)
{ {
#ifndef WIN32 #ifndef WIN32

View File

@ -22,7 +22,6 @@
#include "check.h" #include "check.h"
#include "Editor.hxx" #include "Editor.hxx"
#include "storage/LocalStorage.hxx"
#include <sys/stat.h> #include <sys/stat.h>
@ -30,6 +29,7 @@ struct stat;
struct FileInfo; struct FileInfo;
struct Directory; struct Directory;
struct archive_plugin; struct archive_plugin;
class LocalStorage;
class ExcludeList; class ExcludeList;
class UpdateWalk final { class UpdateWalk final {
@ -48,12 +48,13 @@ class UpdateWalk final {
bool walk_discard; bool walk_discard;
bool modified; bool modified;
LocalStorage storage; LocalStorage &storage;
DatabaseEditor editor; DatabaseEditor editor;
public: public:
UpdateWalk(EventLoop &_loop, DatabaseListener &_listener); UpdateWalk(EventLoop &_loop, DatabaseListener &_listener,
LocalStorage &_storage);
/** /**
* Returns true if the database was modified. * Returns true if the database was modified.