diff options
author | Max Kellermann <max@duempel.org> | 2014-02-19 22:54:52 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-02-19 22:54:52 +0100 |
commit | ae594ad92c1a6dc4aee3e83fa4ab94075b0170c1 (patch) | |
tree | f73f1a1d19a1600fdb0f00e57d845fd89b89ab31 /src/db/DatabasePlugin.hxx | |
parent | 8d6fedf8177d0d2ced81e6d93d35c368b2ac69db (diff) |
DatabasePlugin: split header
Diffstat (limited to 'src/db/DatabasePlugin.hxx')
-rw-r--r-- | src/db/DatabasePlugin.hxx | 115 |
1 files changed, 1 insertions, 114 deletions
diff --git a/src/db/DatabasePlugin.hxx b/src/db/DatabasePlugin.hxx index b0cb41502..ba6cd1f08 100644 --- a/src/db/DatabasePlugin.hxx +++ b/src/db/DatabasePlugin.hxx @@ -26,124 +26,11 @@ #ifndef MPD_DATABASE_PLUGIN_HXX #define MPD_DATABASE_PLUGIN_HXX -#include "Visitor.hxx" -#include "tag/TagType.h" -#include "Compiler.h" - -#include <time.h> - struct config_param; -struct DatabaseSelection; -struct db_visitor; -struct LightSong; class Error; class EventLoop; class DatabaseListener; - -struct DatabaseStats { - /** - * Number of songs. - */ - unsigned song_count; - - /** - * Total duration of all songs (in seconds). - */ - unsigned long total_duration; - - /** - * Number of distinct artist names. - */ - unsigned artist_count; - - /** - * Number of distinct album names. - */ - unsigned album_count; - - void Clear() { - song_count = 0; - total_duration = 0; - artist_count = album_count = 0; - } -}; - -class Database { -public: - /** - * Free instance data. - */ - virtual ~Database() {} - - /** - * Open the database. Read it into memory if applicable. - */ - virtual bool Open(gcc_unused Error &error) { - return true; - } - - /** - * Close the database, free allocated memory. - */ - virtual void Close() {} - - /** - * Look up a song (including tag data) in the database. When - * you don't need this anymore, call ReturnSong(). - * - * @param uri_utf8 the URI of the song within the music - * directory (UTF-8) - */ - virtual const LightSong *GetSong(const char *uri_utf8, - Error &error) const = 0; - - /** - * Mark the song object as "unused". Call this on objects - * returned by GetSong(). - */ - virtual void ReturnSong(const LightSong *song) const = 0; - - /** - * Visit the selected entities. - */ - virtual bool Visit(const DatabaseSelection &selection, - VisitDirectory visit_directory, - VisitSong visit_song, - VisitPlaylist visit_playlist, - Error &error) const = 0; - - bool Visit(const DatabaseSelection &selection, - VisitDirectory visit_directory, - VisitSong visit_song, - Error &error) const { - return Visit(selection, visit_directory, visit_song, - VisitPlaylist(), error); - } - - bool Visit(const DatabaseSelection &selection, VisitSong visit_song, - Error &error) const { - return Visit(selection, VisitDirectory(), visit_song, error); - } - - /** - * Visit all unique tag values. - */ - virtual bool VisitUniqueTags(const DatabaseSelection &selection, - TagType tag_type, - VisitString visit_string, - Error &error) const = 0; - - virtual bool GetStats(const DatabaseSelection &selection, - DatabaseStats &stats, - Error &error) const = 0; - - /** - * Returns the time stamp of the last database update. - * Returns 0 if that is not not known/available. - */ - gcc_pure - virtual time_t GetUpdateStamp() const = 0; -}; +class Database; struct DatabasePlugin { const char *name; |