image_fetcher_service_provider.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright 2021 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/image_fetcher/image_fetcher_service_provider.h"
  5. #include "base/no_destructor.h"
  6. namespace image_fetcher {
  7. namespace {
  8. ImageFetcherServiceProvider* GetImageFetcherServiceProvider() {
  9. static base::NoDestructor<ImageFetcherServiceProvider> provider;
  10. return provider.get();
  11. }
  12. ImageFetcherCachePathProvider* GetImageFetcherCachePathProvider() {
  13. static base::NoDestructor<ImageFetcherCachePathProvider> provider;
  14. return provider.get();
  15. }
  16. } // namespace
  17. // static
  18. void SetImageFetcherServiceProvider(
  19. const ImageFetcherServiceProvider& provider) {
  20. *GetImageFetcherServiceProvider() = provider;
  21. }
  22. // static
  23. ImageFetcherService* GetImageFetcherService(SimpleFactoryKey* key) {
  24. return GetImageFetcherServiceProvider()->Run(key);
  25. }
  26. // static
  27. void SetImageFetcherCachePathProvider(
  28. const ImageFetcherCachePathProvider& provider) {
  29. *GetImageFetcherCachePathProvider() = provider;
  30. }
  31. // static
  32. std::string GetImageFetcherCachePath(SimpleFactoryKey* key, std::string path) {
  33. return GetImageFetcherCachePathProvider()->Run(key, path);
  34. }
  35. } // namespace image_fetcher