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 <Anna@OcarinaProject.net>
This commit is contained in:
parent
acc78a6667
commit
6aab58629e
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 &);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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),
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue