Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Unified Diff: components/sync/driver/directory_data_type_controller.cc

Issue 2276943006: [USS] Move GetAllNodes from backend to controller (Closed)
Patch Set: update for Max Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync/driver/directory_data_type_controller.cc
diff --git a/components/sync/driver/directory_data_type_controller.cc b/components/sync/driver/directory_data_type_controller.cc
index 2a4c332c65080980be45b1425dd8f1bdbe41fc7d..f8edd4d7c004d30f545b184caabb2d5687e15247 100644
--- a/components/sync/driver/directory_data_type_controller.cc
+++ b/components/sync/driver/directory_data_type_controller.cc
@@ -4,14 +4,19 @@
#include "components/sync/driver/directory_data_type_controller.h"
+#include "components/sync/core/user_share.h"
#include "components/sync/driver/backend_data_type_configurer.h"
+#include "components/sync/driver/sync_service.h"
+#include "components/sync/syncable/syncable_read_transaction.h"
namespace sync_driver {
DirectoryDataTypeController::DirectoryDataTypeController(
const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
- const base::Closure& error_callback)
- : DataTypeController(ui_thread, error_callback) {}
+ const base::Closure& error_callback,
+ SyncClient* sync_client)
+ : DataTypeController(ui_thread, error_callback),
+ sync_client_(sync_client) {}
DirectoryDataTypeController::~DirectoryDataTypeController() {}
@@ -22,6 +27,13 @@ bool DirectoryDataTypeController::ShouldLoadModelBeforeConfigure() const {
return false;
}
+void DirectoryDataTypeController::GetAllNodes(
+ const AllNodesCallback& callback) {
+ std::unique_ptr<base::ListValue> node_list = GetAllNodesForTypeFromDirectory(
+ type(), sync_client_->GetSyncService()->GetUserShare()->directory.get());
+ callback.Run(type(), std::move(node_list));
+}
+
void DirectoryDataTypeController::RegisterWithBackend(
BackendDataTypeConfigurer* configurer) {}
@@ -38,4 +50,14 @@ void DirectoryDataTypeController::DeactivateDataType(
configurer->DeactivateDirectoryDataType(type());
}
+// static
+std::unique_ptr<base::ListValue>
+DirectoryDataTypeController::GetAllNodesForTypeFromDirectory(
+ syncer::ModelType type,
+ syncer::syncable::Directory* directory) {
+ DCHECK(directory);
+ syncer::syncable::ReadTransaction trans(FROM_HERE, directory);
+ return directory->GetNodeDetailsForType(&trans, type);
+}
+
} // namespace sync_driver
« no previous file with comments | « components/sync/driver/directory_data_type_controller.h ('k') | components/sync/driver/fake_data_type_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698