// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_NETWORK_PUBLIC_CPP_SHARED_URL_LOADER_FACTORY_H_ #define SERVICES_NETWORK_PUBLIC_CPP_SHARED_URL_LOADER_FACTORY_H_ #include <memory> #include "base/component_export.h" #include "base/memory/ref_counted.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" namespace network { class PendingSharedURLLoaderFactory; // This is a ref-counted C++ interface to replace raw mojom::URLLoaderFactory // pointers and various factory getters. // A SharedURLLoaderFactory instance is supposed to be used on a single // sequence. To use it on a different sequence, use Clone() and pass the // resulting PendingSharedURLLoaderFactory instance to the target sequence. On // the target sequence, call SharedURLLoaderFactory::Create() to convert it to a // new SharedURLLoaderFactory. class COMPONENT_EXPORT(NETWORK_CPP) SharedURLLoaderFactory : public base::RefCounted<SharedURLLoaderFactory>, public mojom::URLLoaderFactory { … }; // PendingSharedURLLoaderFactory contains necessary information to construct a // SharedURLLoaderFactory. It is not sequence safe but can be passed across // sequences. Please see the comments of SharedURLLoaderFactory for how this // class is used. class COMPONENT_EXPORT(NETWORK_CPP) PendingSharedURLLoaderFactory { … }; } // namespace network #endif // SERVICES_NETWORK_PUBLIC_CPP_SHARED_URL_LOADER_FACTORY_H_