From d5fc2a4de0e144874c4559af8968cd6887f5dd03 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 29 Nov 2014 11:16:21 -0500 Subject: [PATCH] Track: Add a function for saving the track_db The track_db doesn't have autosaving enabled for performance reasons. This lets us add several tracks to the database between saves, but it also means we need to provide a commit() function. Signed-off-by: Anna Schumaker --- core/tags/track.cpp | 5 +++++ include/core/tags/track.h | 3 +++ tests/core/tags/track.cpp | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/core/tags/track.cpp b/core/tags/track.cpp index 7262cbd8..30269ae5 100644 --- a/core/tags/track.cpp +++ b/core/tags/track.cpp @@ -169,3 +169,8 @@ Track *tags :: get_track(const unsigned int index) { return track_db.at(index); } + +void tags :: commit_track_db() +{ + track_db.save(); +} diff --git a/include/core/tags/track.h b/include/core/tags/track.h index f67a3bb2..54ff8e25 100644 --- a/include/core/tags/track.h +++ b/include/core/tags/track.h @@ -150,6 +150,9 @@ namespace tags * @return A matching Track tag, or NULL. */ Track *get_track(const unsigned int); + + /** Called to write the track_db to disk. */ + void commit_track_db(); } #endif /* OCARINA_CORE_TAGS_TRACK_H */ diff --git a/tests/core/tags/track.cpp b/tests/core/tags/track.cpp index 2ef41654..51c9c9d9 100644 --- a/tests/core/tags/track.cpp +++ b/tests/core/tags/track.cpp @@ -83,6 +83,7 @@ static void test_track_tag_destructor() static void test_track_tag_lookup() { + Database track_db("track.db", false); Track *a, *b; a = tags :: add_track(album, artist, genre, library, @@ -98,6 +99,13 @@ static void test_track_tag_lookup() test_equal(tags :: get_track(a->index()), a); test_equal(tags :: get_track(a->index() + 1), (Track *)NULL); + + track_db.load(); + test_equal(track_db.size(), (unsigned)0); + + tags :: commit_track_db(); + track_db.load(); + test_equal(track_db.size(), (unsigned)1); } static void test_track_tag_functional()