From ae594ad92c1a6dc4aee3e83fa4ab94075b0170c1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 19 Feb 2014 22:54:52 +0100 Subject: DatabasePlugin: split header --- src/db/DatabasePlugin.hxx | 115 +--------------------------------------------- 1 file changed, 1 insertion(+), 114 deletions(-) (limited to 'src/db/DatabasePlugin.hxx') 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 - 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; -- cgit v1.2.3