OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_MODEL_IMPL_H_ | 5 #ifndef COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_MODEL_IMPL_H_ |
6 #define COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_MODEL_IMPL_H_ | 6 #define COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_MODEL_IMPL_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 | 42 |
43 static const int64_t kInvalidOfflineId = 0; | 43 static const int64_t kInvalidOfflineId = 0; |
44 | 44 |
45 struct ClientId; | 45 struct ClientId; |
46 struct OfflinePageItem; | 46 struct OfflinePageItem; |
47 | 47 |
48 class ArchiveManager; | 48 class ArchiveManager; |
49 class ClientPolicyController; | 49 class ClientPolicyController; |
50 class OfflinePageMetadataStore; | 50 class OfflinePageMetadataStore; |
51 class OfflinePageStorageManager; | 51 class OfflinePageStorageManager; |
| 52 class OfflinePageModelEventLogger; |
52 | 53 |
53 // Implementation of service for saving pages offline, storing the offline | 54 // Implementation of service for saving pages offline, storing the offline |
54 // copy and metadata, and retrieving them upon request. | 55 // copy and metadata, and retrieving them upon request. |
55 class OfflinePageModelImpl : public OfflinePageModel, public KeyedService { | 56 class OfflinePageModelImpl : public OfflinePageModel, public KeyedService { |
56 public: | 57 public: |
57 // All blocking calls/disk access will happen on the provided |task_runner|. | 58 // All blocking calls/disk access will happen on the provided |task_runner|. |
58 OfflinePageModelImpl( | 59 OfflinePageModelImpl( |
59 std::unique_ptr<OfflinePageMetadataStore> store, | 60 std::unique_ptr<OfflinePageMetadataStore> store, |
60 const base::FilePath& archives_dir, | 61 const base::FilePath& archives_dir, |
61 const scoped_refptr<base::SequencedTaskRunner>& task_runner); | 62 const scoped_refptr<base::SequencedTaskRunner>& task_runner); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 const base::Callback<void(bool)>& callback) override; | 110 const base::Callback<void(bool)>& callback) override; |
110 ClientPolicyController* GetPolicyController() override; | 111 ClientPolicyController* GetPolicyController() override; |
111 | 112 |
112 // Methods for testing only: | 113 // Methods for testing only: |
113 OfflinePageMetadataStore* GetStoreForTesting(); | 114 OfflinePageMetadataStore* GetStoreForTesting(); |
114 | 115 |
115 OfflinePageStorageManager* GetStorageManager(); | 116 OfflinePageStorageManager* GetStorageManager(); |
116 | 117 |
117 bool is_loaded() const override; | 118 bool is_loaded() const override; |
118 | 119 |
| 120 void GetLogs(std::vector<std::string>& storage_vector) override; |
| 121 void SetIsLogging(bool should_log) override; |
| 122 |
119 protected: | 123 protected: |
120 // Adding a protected constructor for testing-only purposes in | 124 // Adding a protected constructor for testing-only purposes in |
121 // offline_page_storage_manager_unittest.cc | 125 // offline_page_storage_manager_unittest.cc |
122 OfflinePageModelImpl(); | 126 OfflinePageModelImpl(); |
123 | 127 |
124 private: | 128 private: |
125 FRIEND_TEST_ALL_PREFIXES(OfflinePageModelImplTest, MarkPageForDeletion); | 129 FRIEND_TEST_ALL_PREFIXES(OfflinePageModelImplTest, MarkPageForDeletion); |
126 | 130 |
127 typedef ScopedVector<OfflinePageArchiver> PendingArchivers; | 131 typedef ScopedVector<OfflinePageArchiver> PendingArchivers; |
128 | 132 |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 // Controller of the client policies. | 270 // Controller of the client policies. |
267 std::unique_ptr<ClientPolicyController> policy_controller_; | 271 std::unique_ptr<ClientPolicyController> policy_controller_; |
268 | 272 |
269 // Manager for the storage consumed by archives and responsible for | 273 // Manager for the storage consumed by archives and responsible for |
270 // automatic page clearing. | 274 // automatic page clearing. |
271 std::unique_ptr<OfflinePageStorageManager> storage_manager_; | 275 std::unique_ptr<OfflinePageStorageManager> storage_manager_; |
272 | 276 |
273 // Manager for the offline archive files and directory. | 277 // Manager for the offline archive files and directory. |
274 std::unique_ptr<ArchiveManager> archive_manager_; | 278 std::unique_ptr<ArchiveManager> archive_manager_; |
275 | 279 |
| 280 // Logger to facilitate recording of events. |
| 281 OfflinePageModelEventLogger offline_event_logger_; |
| 282 |
276 base::WeakPtrFactory<OfflinePageModelImpl> weak_ptr_factory_; | 283 base::WeakPtrFactory<OfflinePageModelImpl> weak_ptr_factory_; |
277 | 284 |
278 DISALLOW_COPY_AND_ASSIGN(OfflinePageModelImpl); | 285 DISALLOW_COPY_AND_ASSIGN(OfflinePageModelImpl); |
279 }; | 286 }; |
280 | 287 |
281 } // namespace offline_pages | 288 } // namespace offline_pages |
282 | 289 |
283 #endif // COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_MODEL_IMPL_H_ | 290 #endif // COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_MODEL_IMPL_H_ |
OLD | NEW |