proxy_tabs_data_type_controller.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2014 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 COMPONENTS_SYNC_SESSIONS_PROXY_TABS_DATA_TYPE_CONTROLLER_H_
  5. #define COMPONENTS_SYNC_SESSIONS_PROXY_TABS_DATA_TYPE_CONTROLLER_H_
  6. #include <memory>
  7. #include "base/callback_forward.h"
  8. #include "components/history/core/browser/sync/history_model_type_controller_helper.h"
  9. #include "components/sync/driver/data_type_controller.h"
  10. class PrefService;
  11. namespace syncer {
  12. class SyncService;
  13. } // namespace syncer
  14. namespace sync_sessions {
  15. // Controller for PROXY_TABS. Proxy tabs have no representation in sync, and
  16. // therefore processor or worker.
  17. class ProxyTabsDataTypeController : public syncer::DataTypeController {
  18. public:
  19. // |state_changed_cb| can be used to listen to state changes.
  20. ProxyTabsDataTypeController(
  21. syncer::SyncService* sync_service,
  22. PrefService* pref_service,
  23. const base::RepeatingCallback<void(State)>& state_changed_cb);
  24. ProxyTabsDataTypeController(const ProxyTabsDataTypeController&) = delete;
  25. ProxyTabsDataTypeController& operator=(const ProxyTabsDataTypeController&) =
  26. delete;
  27. ~ProxyTabsDataTypeController() override;
  28. // DataTypeController interface.
  29. PreconditionState GetPreconditionState() const override;
  30. void LoadModels(const syncer::ConfigureContext& configure_context,
  31. const ModelLoadCallback& model_load_callback) override;
  32. std::unique_ptr<syncer::DataTypeActivationResponse> Connect() override;
  33. void Stop(syncer::ShutdownReason shutdown_reason,
  34. StopCallback callback) override;
  35. State state() const override;
  36. bool ShouldRunInTransportOnlyMode() const override;
  37. void GetAllNodes(AllNodesCallback callback) override;
  38. void GetTypeEntitiesCount(
  39. base::OnceCallback<void(const syncer::TypeEntitiesCount&)> callback)
  40. const override;
  41. void RecordMemoryUsageAndCountsHistograms() override;
  42. private:
  43. history::HistoryModelTypeControllerHelper helper_;
  44. const base::RepeatingCallback<void(State)> state_changed_cb_;
  45. State state_ = NOT_RUNNING;
  46. };
  47. } // namespace sync_sessions
  48. #endif // COMPONENTS_SYNC_SESSIONS_PROXY_TABS_DATA_TYPE_CONTROLLER_H_