http_server_properties_pref_delegate.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2017 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. #ifndef SERVICES_NETWORK_HTTP_SERVER_PROPERTIES_PREF_DELEGATE_H_
  5. #define SERVICES_NETWORK_HTTP_SERVER_PROPERTIES_PREF_DELEGATE_H_
  6. #include "base/callback.h"
  7. #include "base/memory/raw_ptr.h"
  8. #include "components/prefs/pref_change_registrar.h"
  9. #include "net/http/http_server_properties.h"
  10. class PrefRegistrySimple;
  11. namespace network {
  12. // Manages disk storage for a net::HttpServerPropertiesManager.
  13. class HttpServerPropertiesPrefDelegate
  14. : public net::HttpServerProperties::PrefDelegate {
  15. public:
  16. // The created object must be destroyed before |pref_service|.
  17. explicit HttpServerPropertiesPrefDelegate(PrefService* pref_service);
  18. HttpServerPropertiesPrefDelegate(const HttpServerPropertiesPrefDelegate&) =
  19. delete;
  20. HttpServerPropertiesPrefDelegate& operator=(
  21. const HttpServerPropertiesPrefDelegate&) = delete;
  22. ~HttpServerPropertiesPrefDelegate() override;
  23. static void RegisterPrefs(PrefRegistrySimple* pref_registry);
  24. // net::HttpServerProperties::PrefDelegate implementation.
  25. const base::Value* GetServerProperties() const override;
  26. void SetServerProperties(const base::Value& value,
  27. base::OnceClosure callback) override;
  28. void WaitForPrefLoad(base::OnceClosure callback) override;
  29. private:
  30. raw_ptr<PrefService> pref_service_;
  31. PrefChangeRegistrar pref_change_registrar_;
  32. };
  33. } // namespace network
  34. #endif // SERVICES_NETWORK_HTTP_SERVER_PROPERTIES_PREF_DELEGATE_H_