// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/image_fetcher/image_fetcher_service_provider.h"
#include "base/no_destructor.h"
namespace image_fetcher {
namespace {
ImageFetcherServiceProvider* GetImageFetcherServiceProvider() {
static base::NoDestructor<ImageFetcherServiceProvider> provider;
return provider.get();
}
ImageFetcherCachePathProvider* GetImageFetcherCachePathProvider() {
static base::NoDestructor<ImageFetcherCachePathProvider> provider;
return provider.get();
}
} // namespace
// static
void SetImageFetcherServiceProvider(
const ImageFetcherServiceProvider& provider) {
*GetImageFetcherServiceProvider() = provider;
}
// static
ImageFetcherService* GetImageFetcherService(SimpleFactoryKey* key) {
return GetImageFetcherServiceProvider()->Run(key);
}
// static
void SetImageFetcherCachePathProvider(
const ImageFetcherCachePathProvider& provider) {
*GetImageFetcherCachePathProvider() = provider;
}
// static
std::string GetImageFetcherCachePath(SimpleFactoryKey* key, std::string path) {
return GetImageFetcherCachePathProvider()->Run(key, path);
}
} // namespace image_fetcher