aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins/simple/DirectorySave.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-08-07fs/output, fs/TextFile: move to fs/io/Max Kellermann1-2/+2
2014-07-30*Save, *State: use the OutputStream API instead of FILE*Max Kellermann1-11/+12
2014-06-16db/simple: use class boost::intrusive::listMax Kellermann1-8/+6
Remove the C list_head library and use type-safe C++ instead.
2014-02-27db/simple: mount pointsMax Kellermann1-1/+2
A SimpleDatabase instance can now "mount" other Database instances at certain locations. This is used to use a new SimpleDatabase instance for each storage mount (issued with the "mount" protocol command). Each such instance has its own database file, stored in the directory that is specified with the "cache_directory" option.
2014-02-26db/simple: create dedicated directoryMax Kellermann1-0/+0
2014-02-25DirectorySave: save the flags "DEVICE_INARCHIVE" and "DEVICE_CONTAINER"Max Kellermann1-0/+37
Helps avoid unnecessary archive scans during database update on a fresh MPD process.
2014-02-25DirectorySave: move code to ParseLine()Max Kellermann1-17/+23
2014-02-24DirectorySave: save the mtime only if it is knownMax Kellermann1-2/+3
2014-01-24Database*: move to db/Max Kellermann1-0/+0
2014-01-19Song: make the "parent" attribute mandatoryMax Kellermann1-1/+1
The Song class is only used for database songs now. A Song without a Directory is not possible anymore.
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-09DetachedSong: fork of struct SongMax Kellermann1-3/+5
From now on, struct Song will be used by the database only, and DetachedSong will be used by everybody else. DetachedSong is easier to use, but Song has lower overhead.
2013-12-08TextFile: move to fs subsystemDenis Krjuchkov1-1/+1
2013-12-04DirectorySave: don't duplicate stringMax Kellermann1-11/+3
Not necessary anymore for playlist_metadata_load().
2013-11-28Util/StringUtil: add StringStartsWith()Max Kellermann1-6/+7
Replaces GLib's g_str_has_prefix().
2013-11-28include cleanup using iwyuMax Kellermann1-3/+0
2013-10-21DirectorySave: use Directory::GetName()Max Kellermann1-4/+1
2013-10-21util/NumberParser: utilities for parsing numbers from ASCII stringsMax Kellermann1-2/+2
2013-10-19*: use references instead of pointersMax Kellermann1-18/+18
2013-10-19*: use nullptr instead of NULLMax Kellermann1-11/+11
2013-10-02Listen, ...: add missing includesMax Kellermann1-0/+2
2013-09-04util/Error: new error passing libraryMax Kellermann1-23/+15
Replaces GLib's GError.
2013-07-28song: convert header to C++Max Kellermann1-3/+3
2013-01-03TextFile: convert to a classMax Kellermann1-15/+12
2013-01-03text_file: convert to C++Max Kellermann1-4/+1
2013-01-03PlaylistVector: use std::listMax Kellermann1-2/+2
2013-01-03Directory: rename struct directory to DirectoryMax Kellermann1-7/+7
2013-01-02Directory: turn functions to methodsMax Kellermann1-14/+12
2013-01-02Directory: make the header C++ onlyMax Kellermann1-1/+1
2013-01-02db_save, state_file: convert to C++Max Kellermann1-5/+8
2012-02-13directory.h: move DIRECTORY_DIR to directory_save.cMax Kellermann1-0/+1
2012-01-24directory: replace songvec with doubly linked listMax Kellermann1-1/+3
2012-01-24directory: add function directory_get_song(), ...Max Kellermann1-2/+2
Wrap songvec_find() and other songvec methods.
2012-01-24directory: replace dirvec with doubly linked listMax Kellermann1-5/+2
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-15/+5
Pass only the "name" to a directory, instead of the full (relative) path.
2011-09-10directory_save: pass const pointer to _save()Max Kellermann1-3/+3
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-07-25directory_save: duplicate the playlist nameMax Kellermann1-2/+9
The function playlist_metadata_load() will overwrite the input buffer before using the "name" parameter; since "name" points to the same buffer, we'll get a corrupted string.
2010-07-21update: store playlist files in databaseMax Kellermann1-0/+9
Don't open the music directory for each "lsinfo" call. Get the list of playlist files from the memory database.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-11-07database: I/O error handling in db_save()Max Kellermann1-17/+12
Check ferror() instead of the fprintf() return value.
2009-11-01song_save: load one song at a timeMax Kellermann1-5/+15
Changed songvec_load() to song_load(). Added start and end markers for each song. Removed the "key" line, it's redundant.
2009-11-01directory_save: partially revert the g_str_has_prefix() patchMax Kellermann1-2/+2
2009-11-01database: use strcmp() instead of g_str_has_prefix()Max Kellermann1-3/+3
2009-11-01text_file: allocate line buffers dynamicallyMax Kellermann1-22/+23
Use a single GString buffer object in all functions loading the database. Enlarge it automatically for long lines. This eliminates the maximum line length for tag values. There is still an upper limit of 512 kB to prevent denial of service, but that's reasonable I guess.
2009-11-01directory_save: allocate directory object earlier, assign mtimeMax Kellermann1-12/+13
Allocate the directory object after the "directory:" line. Assign the mtime from the input file to this new object, instead of to the parent directory.
2009-11-01directory_save: free directory on errorMax Kellermann1-1/+3
Fix a minor memory leak in the error handler.
2009-11-01directory_save: abort on duplicate subdirectoryMax Kellermann1-7/+9
The old code tried to recover, but what's the point of that? If a directory is duplicate, something is wrong with the database file.
2009-11-01directory_save: moved code to directory_load_subdir()Max Kellermann1-49/+63