sql_callback_task.cc 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/offline_pages/task/sql_callback_task.h"
  5. #include "components/offline_pages/task/sql_store_base.h"
  6. namespace offline_pages {
  7. using ExecuteCallback = SqlCallbackTask::ExecuteCallback;
  8. SqlCallbackTask::SqlCallbackTask(SqlStoreBase* store,
  9. ExecuteCallback exec_callback,
  10. DoneCallback done_callback)
  11. : store_(store),
  12. exec_callback_(std::move(exec_callback)),
  13. done_callback_(std::move(done_callback)) {}
  14. SqlCallbackTask::~SqlCallbackTask() = default;
  15. void SqlCallbackTask::Run() {
  16. // Execute() requires that the callback returns a value, so we use
  17. // ExecuteAndReturn to return a dummy boolean which is ignored.
  18. store_->Execute(std::move(exec_callback_),
  19. base::BindOnce(&SqlCallbackTask::Done, GetWeakPtr()), false);
  20. }
  21. void SqlCallbackTask::Done(bool result) {
  22. TaskComplete();
  23. if (done_callback_)
  24. std::move(done_callback_).Run(result);
  25. }
  26. } // namespace offline_pages