f11bb86acb957c2659b6f1557acffdb42e03a117
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / extensions / file_manager / private_api_tasks.h
1 // Copyright 2013 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 // This file provides task related API functions.
6
7 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_
8 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_
9
10 #include <vector>
11
12 #include "base/memory/scoped_ptr.h"
13 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
14 #include "chrome/browser/chromeos/file_manager/file_tasks.h"
15 #include "chrome/common/extensions/api/file_browser_private.h"
16
17 namespace base {
18 class FilePath;
19 }  // namespace base
20
21 namespace extensions {
22
23 namespace app_file_handler_util {
24 class MimeTypeCollector;
25 }  // namespace app_file_handler_util
26
27 // Implements the chrome.fileBrowserPrivate.executeTask method.
28 class FileBrowserPrivateExecuteTaskFunction
29     : public LoggedAsyncExtensionFunction {
30  public:
31   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.executeTask",
32                              FILEBROWSERPRIVATE_EXECUTETASK)
33
34  protected:
35   virtual ~FileBrowserPrivateExecuteTaskFunction() {}
36
37   // AsyncExtensionFunction overrides.
38   virtual bool RunAsync() OVERRIDE;
39
40  private:
41   void OnTaskExecuted(
42       extensions::api::file_browser_private::TaskResult success);
43 };
44
45 // Implements the chrome.fileBrowserPrivate.getFileTasks method.
46 class FileBrowserPrivateGetFileTasksFunction
47     : public LoggedAsyncExtensionFunction {
48  public:
49   FileBrowserPrivateGetFileTasksFunction();
50
51   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getFileTasks",
52                              FILEBROWSERPRIVATE_GETFILETASKS)
53
54  protected:
55   virtual ~FileBrowserPrivateGetFileTasksFunction();
56
57   // AsyncExtensionFunction overrides.
58   virtual bool RunAsync() OVERRIDE;
59
60  private:
61   void OnMimeTypesCollected(scoped_ptr<std::vector<std::string> > mime_types);
62
63   void OnSniffingMimeTypeCompleted(
64       scoped_ptr<app_file_handler_util::PathAndMimeTypeSet> path_mime_set,
65       scoped_ptr<std::vector<GURL> > file_urls);
66
67   scoped_ptr<app_file_handler_util::MimeTypeCollector> collector_;
68   std::vector<GURL> file_urls_;
69   std::vector<base::FilePath> local_paths_;
70 };
71
72 // Implements the chrome.fileBrowserPrivate.setDefaultTask method.
73 class FileBrowserPrivateSetDefaultTaskFunction
74     : public ChromeSyncExtensionFunction {
75  public:
76   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.setDefaultTask",
77                              FILEBROWSERPRIVATE_SETDEFAULTTASK)
78
79  protected:
80   virtual ~FileBrowserPrivateSetDefaultTaskFunction() {}
81
82   // SyncExtensionFunction overrides.
83   virtual bool RunSync() OVERRIDE;
84 };
85
86 }  // namespace extensions
87
88 #endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_TASKS_H_