From 6aab58629e73408c8326fd2a746d73f31141649c Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 29 Nov 2015 17:34:21 -0500 Subject: [PATCH] core/queue: Move read() and write() into TempQueues These functions are only used by temporary queues, and the collection queue has its own save function. Signed-off-by: Anna Schumaker --- core/deck.cpp | 19 +++++++++++++++++++ core/queue.cpp | 19 ------------------- include/core/deck.h | 3 +++ include/core/queue.h | 14 -------------- tests/core/queue.cpp | 36 ------------------------------------ 5 files changed, 22 insertions(+), 69 deletions(-) diff --git a/core/deck.cpp b/core/deck.cpp index 46ef7597..c05241e2 100644 --- a/core/deck.cpp +++ b/core/deck.cpp @@ -23,6 +23,25 @@ TempQueue :: TempQueue(bool random, struct queue_ops *ops) } +void TempQueue :: write(file &file) +{ + file_writef(&file, "%u %zu", q_flags, q_tracks.size()); + for (unsigned int i = 0; i < q_tracks.size(); i++) + file_writef(&file, " %u", q_tracks[i]->tr_dbe.dbe_index); +} + +void TempQueue :: read(file &file) +{ + unsigned int n, id; + file_readf(&file, "%u %u", &q_flags, &n); + q_tracks.resize(n); + for (unsigned int i = 0; i < n; i++) { + file_readf(&file, "%u", &id); + q_tracks[i] = track_get(id); + q_length += q_tracks[i]->tr_length; + } +} + unsigned int TempQueue :: add(struct track *track) { unsigned int res = queue_add(this, track); diff --git a/core/queue.cpp b/core/queue.cpp index 4de93a9a..de1e63b0 100644 --- a/core/queue.cpp +++ b/core/queue.cpp @@ -85,25 +85,6 @@ void queue_init(struct queue *queue, unsigned int flags, queue :: ~queue() {} -void queue :: write(file &file) -{ - file_writef(&file, "%u %zu", q_flags, q_tracks.size()); - for (unsigned int i = 0; i < q_tracks.size(); i++) - file_writef(&file, " %u", q_tracks[i]->tr_dbe.dbe_index); -} - -void queue :: read(file &file) -{ - unsigned int n, id; - file_readf(&file, "%u %u", &q_flags, &n); - q_tracks.resize(n); - for (unsigned int i = 0; i < n; i++) { - file_readf(&file, "%u", &id); - q_tracks[i] = track_get(id); - q_length += q_tracks[i]->tr_length; - } -} - void queue_set_flag(struct queue *queue, enum queue_flags flag) { queue->q_flags |= flag; diff --git a/include/core/deck.h b/include/core/deck.h index 835e4ed9..3acdfab9 100644 --- a/include/core/deck.h +++ b/include/core/deck.h @@ -18,6 +18,9 @@ public: TempQueue(); TempQueue(bool, struct queue_ops *); + void read(file &); + void write(file &); + unsigned int add(struct track *); void del(struct track *); void del(unsigned int); diff --git a/include/core/queue.h b/include/core/queue.h index 47e1a479..767ae9e3 100644 --- a/include/core/queue.h +++ b/include/core/queue.h @@ -94,20 +94,6 @@ struct queue { virtual ~queue(); /**< Queue destructor. */ - - /** - * Write a queue to disk. - * - * @param file File that Queue data will be written to. - */ - void write(file &); - - /** - * Read a queue from disk. - * - * @param file File to read Queue data from. - */ - void read(file &); }; diff --git a/tests/core/queue.cpp b/tests/core/queue.cpp index 47c7af33..032bb0d9 100644 --- a/tests/core/queue.cpp +++ b/tests/core/queue.cpp @@ -370,41 +370,6 @@ static void test_sorting() test_loop_equal(track->tr_dbe.dbe_index, 12 - i, i); } test_loop_passed(); test_equal(count_sort, 6); -} - -static void test_save_load() -{ - struct track *track; - struct queue q, r; - unsigned int i; - struct file f; - - queue_init(&q, Q_RANDOM, &test_ops); - queue_init(&r, 0, &test_ops); - - for (i = 0; i < 13; i++) - queue_add(&q, track_get(i)); - queue_sort(&q, COMPARE_TRACK, true); - queue_sort(&q, COMPARE_TRACK, false); - - file_init(&f, "test.q", 0); - file_open(&f, OPEN_WRITE); - q.write(f); - file_close(&f); - - file_open(&f, OPEN_READ); - r.read(f); - file_close(&f); - - test_equal(queue_has_flag(&r, Q_RANDOM), true); - test_equal(r.q_length, q.q_length); - test_equal(queue_size(&r), 13); - - for (i = 0; i < 13; i++) { - track = queue_at(&q, i); - test_loop_not_equal(track, NULL ,i); - test_loop_equal(track->tr_dbe.dbe_index, 12 - i, i); - } test_loop_passed(); __test_deinit_core(); } @@ -417,5 +382,4 @@ DECLARE_UNIT_TESTS( UNIT_TEST("Queue Stress (n = 100,000)", test_stress_100K), UNIT_TEST("Queue Random Next and Selection", test_rand_select), UNIT_TEST("Queue Sorting", test_sorting), - UNIT_TEST("Queue Save and Load", test_save_load), );