summaryrefslogtreecommitdiff
path: root/src/db/DatabasePlugin.hxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-02-19 22:54:52 +0100
committerMax Kellermann <max@duempel.org>2014-02-19 22:54:52 +0100
commitae594ad92c1a6dc4aee3e83fa4ab94075b0170c1 (patch)
treef73f1a1d19a1600fdb0f00e57d845fd89b89ab31 /src/db/DatabasePlugin.hxx
parent8d6fedf8177d0d2ced81e6d93d35c368b2ac69db (diff)
DatabasePlugin: split header
Diffstat (limited to 'src/db/DatabasePlugin.hxx')
-rw-r--r--src/db/DatabasePlugin.hxx115
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;