unzip_impl.cc 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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/update_client/unzip/unzip_impl.h"
  5. #include "components/services/unzip/public/cpp/unzip.h"
  6. namespace update_client {
  7. namespace {
  8. class UnzipperImpl : public Unzipper {
  9. public:
  10. explicit UnzipperImpl(UnzipChromiumFactory::Callback callback)
  11. : callback_(std::move(callback)) {}
  12. void Unzip(const base::FilePath& zip_file,
  13. const base::FilePath& destination,
  14. UnzipCompleteCallback callback) override {
  15. unzip::Unzip(callback_.Run(), zip_file, destination, std::move(callback));
  16. }
  17. private:
  18. const UnzipChromiumFactory::Callback callback_;
  19. };
  20. } // namespace
  21. UnzipChromiumFactory::UnzipChromiumFactory(Callback callback)
  22. : callback_(std::move(callback)) {}
  23. std::unique_ptr<Unzipper> UnzipChromiumFactory::Create() const {
  24. return std::make_unique<UnzipperImpl>(callback_);
  25. }
  26. UnzipChromiumFactory::~UnzipChromiumFactory() = default;
  27. } // namespace update_client