sync_task.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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
5#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_TASK_H_
6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_TASK_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "chrome/browser/sync_file_system/sync_callbacks.h"
10
11namespace sync_file_system {
12namespace drive_backend {
13
14class SyncTaskToken;
15
16class SyncTask {
17 public:
18  SyncTask() : used_network_(false) {}
19  virtual ~SyncTask() {}
20  virtual void Run(scoped_ptr<SyncTaskToken> token) = 0;
21
22  bool used_network() { return used_network_; }
23
24 protected:
25  void set_used_network(bool used_network) {
26    used_network_ = used_network;
27  }
28
29 private:
30  bool used_network_;
31
32  DISALLOW_COPY_AND_ASSIGN(SyncTask);
33};
34
35class SequentialSyncTask : public SyncTask {
36 public:
37  virtual void Run(scoped_ptr<SyncTaskToken> token) OVERRIDE FINAL;
38  virtual void RunSequential(const SyncStatusCallback& callback) = 0;
39};
40
41}  // namespace drive_backend
42}  // namespace sync_file_system
43
44#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_TASK_H_
45