From d71f726c42963d55809605b4dc4144970ca0f230 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 16 May 2023 14:11:38 +1000 Subject: Add pagination to database queries --- src/main/app_console.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'src/main') diff --git a/src/main/app_console.cpp b/src/main/app_console.cpp index 759afa91..a85faaf0 100644 --- a/src/main/app_console.cpp +++ b/src/main/app_console.cpp @@ -176,15 +176,15 @@ int CmdDbSongs(int argc, char** argv) { return 1; } - database::Result res = - sInstance->database_->GetSongs(20).get(); + std::unique_ptr> res( + sInstance->database_->GetSongs(5).get()); while (true) { - std::unique_ptr> r(res.values()); - for (database::Song s : *r) { + for (database::Song s : res->values()) { std::cout << s.tags().title.value_or("[BLANK]") << std::endl; } - if (res.HasMore()) { - res = sInstance->database_->GetMoreSongs(10, res.continuation()).get(); + if (res->next_page()) { + auto continuation = res->next_page().value(); + res.reset(sInstance->database_->GetPage(&continuation).get()); } else { break; } @@ -211,17 +211,18 @@ int CmdDbDump(int argc, char** argv) { std::cout << "=== BEGIN DUMP ===" << std::endl; - database::Result res = sInstance->database_->GetDump(20).get(); + std::unique_ptr> res( + sInstance->database_->GetDump(5).get()); while (true) { - std::unique_ptr> r(res.values()); - if (r == nullptr) { - break; - } - for (std::string s : *r) { + for (std::string s : res->values()) { std::cout << s << std::endl; } - if (res.HasMore()) { - res = sInstance->database_->GetMoreDump(20, res.continuation()).get(); + if (res->next_page()) { + auto continuation = res->next_page().value(); + res.reset( + sInstance->database_->GetPage(&continuation).get()); + } else { + break; } } -- cgit v1.2.3