db/proxy: implement method GetUpdateStamp()

This commit is contained in:
Max Kellermann 2013-11-22 00:45:27 +01:00
parent c064e8d62f
commit d22acc59c9
2 changed files with 8 additions and 2 deletions

1
NEWS
View File

@ -4,6 +4,7 @@ ver 0.18.5 (20??/??/??)
- fix crash on "stats" without db_file/music_directory
* database
- proxy: auto-reload statistics
- proxy: provide "db_update" in "stats" response
* decoder
- fluidsynth: auto-detect by default
* fix ia64, mipsel and other little-endian architectures

View File

@ -46,6 +46,9 @@ class ProxyDatabase : public Database {
struct mpd_connection *connection;
Directory *root;
/* this is mutable because GetStats() must be "const" */
mutable time_t update_stamp;
public:
static Database *Create(const config_param &param,
Error &error);
@ -72,8 +75,7 @@ public:
Error &error) const override;
virtual time_t GetUpdateStamp() const override {
// TODO: implement
return 0;
return update_stamp;
}
private:
@ -242,6 +244,7 @@ ProxyDatabase::Open(Error &error)
return false;
root = Directory::NewRoot();
update_stamp = 0;
return true;
}
@ -636,6 +639,8 @@ ProxyDatabase::GetStats(const DatabaseSelection &selection,
if (stats2 == nullptr)
return CheckError(connection, error);
update_stamp = (time_t)mpd_stats_get_db_update_time(stats2);
stats.song_count = mpd_stats_get_number_of_songs(stats2);
stats.total_duration = mpd_stats_get_db_play_time(stats2);
stats.artist_count = mpd_stats_get_number_of_artists(stats2);