aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/SimpleDatabasePlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-02-02SimpleDatabasePlugin: use file system API, log in UTF-8Denis Krjuchkov1-25/+23
2013-01-28Path::FromUTF8() returns nulled instance on error, add error handling where ↵Denis Krjuchkov1-0/+6
required
2013-01-18Path: new class "Path" wraps filesystem path stringsMax Kellermann1-2/+3
2013-01-07decoder_api.h, ...: add "extern C"Max Kellermann1-3/+0
2013-01-03TextFile: convert to a classMax Kellermann1-7/+4
2013-01-03Directory: rename struct directory to DirectoryMax Kellermann1-4/+4
2013-01-02Directory: turn functions to methodsMax Kellermann1-12/+10
2013-01-02Directory: make the header C++ onlyMax Kellermann1-2/+1
2013-01-02db_lock: convert to C++Max Kellermann1-2/+2
2013-01-02db_save, state_file: convert to C++Max Kellermann1-1/+1
2012-09-05db/SimpleDatabasePlugin: fix memory leak in Visit()Max Kellermann1-7/+11
When visiting a song, GetSong() was called, but this object was never returned by calling ReturnSong(). This patch locks the database only once in Visit() and passes the original song object to the visitor, avoiding the copy.
2012-09-05db_lock: add C++ helper class ScopeDatabaseLockMax Kellermann1-11/+6
2012-08-29SongFilter: convert to a C++ classMax Kellermann1-1/+1
2012-08-29DatabaseSelection: add method Match()Max Kellermann1-2/+1
2012-08-29locate: rename to SongFilter.cxxMax Kellermann1-1/+1
2012-08-16DatabasePlugin: add method ReturnSong()Max Kellermann1-0/+20
Allow the plugin to allocate the GetSong() return value.
2012-08-15DatabasePlugin: add method GetStats()Max Kellermann1-0/+7
Optimize the ProxyDatabase by invoking "stats" on the peer, instead of visiting all songs.
2012-08-15DatabasePlugin: add method VisitUniqueTags()Max Kellermann1-0/+11
Optimize the ProxyDatabase by invoking "list" on the peer, instead of visiting all songs.
2012-08-15db_visitor: delete obsolete headerMax Kellermann1-1/+0
2012-08-08DatabaseSelection: add "match" attributeMax Kellermann1-2/+5
Let the database plugin do the match.
2012-08-07db_selection: rename to DatabaseSelectionMax Kellermann1-2/+2
2012-08-07Database{Plugin,Visitor}: pass referencesMax Kellermann1-7/+7
2012-08-02DatabasePlugin: make Visit() constMax Kellermann1-2/+2
2012-08-01db_plugin: convert to C++Max Kellermann1-142/+100
2012-07-10require GLib 2.16Max Kellermann1-1/+0
GLib 2.16 was released more than 4 years ago. Let's remove some cruft from the glib_compat.h header, and avoid new cruft to it.
2012-02-02directory: require the caller to lock the db_mutexMax Kellermann1-2/+11
Reduce the number of lock/unlock cycles, and make database handling safer.
2012-01-24directory: replace dirvec with doubly linked listMax Kellermann1-2/+6
Random access is not needed, and a linked list is easier to manage: we don't need to (re-)allocate the pointer array.
2012-01-24directory: simplify constructors and clarify API documentationMax Kellermann1-2/+2
Pass only the "name" to a directory, instead of the full (relative) path.
2012-01-12db/simple: pass the correct GError pointerMax Kellermann1-1/+1
2011-09-13db_plugin: add method visit()Max Kellermann1-0/+41
2011-09-13db_plugin: add method get_song()Max Kellermann1-0/+17
New db_get_song() implementation.
2011-09-10db_plugin: introducing a plugin API for the song databaseMax Kellermann1-0/+287
First draft, not really pluggable currently - hard-coded to use the "simple" plugin, and calls several of its internal functions. The API is very simple currently, all searches are still performed over the root "directory" object. Future changes to the API will move those search implementations into the plugin, to allow more efficient implementations, or implementations that don't have the whole tree in memory all the time.