Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / chrome / browser / sync_file_system / drive_backend / sync_task.cc
blobf5f7dac7f375570e341e81b3c4d2256927a5cc65
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.
5 #include "chrome/browser/sync_file_system/drive_backend/sync_task.h"
7 #include "base/bind.h"
8 #include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h"
9 #include "chrome/browser/sync_file_system/drive_backend/sync_task_token.h"
10 #include "chrome/browser/sync_file_system/drive_backend/task_dependency_manager.h"
12 namespace sync_file_system {
13 namespace drive_backend {
15 namespace {
17 void CallRunExclusive(const base::WeakPtr<ExclusiveTask>& task,
18 scoped_ptr<SyncTaskToken> token) {
19 if (task)
20 task->RunExclusive(SyncTaskToken::WrapToCallback(token.Pass()));
23 } // namespace
25 ExclusiveTask::ExclusiveTask() : weak_ptr_factory_(this) {}
26 ExclusiveTask::~ExclusiveTask() {}
28 void ExclusiveTask::RunPreflight(scoped_ptr<SyncTaskToken> token) {
29 scoped_ptr<TaskBlocker> task_blocker(new TaskBlocker);
30 task_blocker->exclusive = true;
32 SyncTaskManager::UpdateTaskBlocker(
33 token.Pass(), task_blocker.Pass(),
34 base::Bind(&CallRunExclusive, weak_ptr_factory_.GetWeakPtr()));
37 } // namespace drive_backend
38 } // namespace sync_file_system