1 // Copyright (c) 2018 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 CHROMECAST_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_
6 #define CHROMECAST_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_
7 
8 #include <vector>
9 
10 #include "chromecast/common/extensions_api/bookmarks.h"
11 #include "extensions/browser/extension_function.h"
12 
13 namespace extensions {
14 namespace cast {
15 namespace api {
16 
17 class BookmarksStubFunction : public ExtensionFunction {
18  public:
19   ResponseAction Run() override;
20 
21  protected:
22   ~BookmarksStubFunction() override;
23 };
24 
25 class BookmarksGetFunction : public ExtensionFunction {
26  public:
27   DECLARE_EXTENSION_FUNCTION("bookmarks.get", BOOKMARKS_GET)
28 
29  protected:
~BookmarksGetFunction()30   ~BookmarksGetFunction() override {}
31 
32   ResponseAction Run() override;
33 };
34 
35 class BookmarksGetChildrenFunction : public ExtensionFunction {
36  public:
37   DECLARE_EXTENSION_FUNCTION("bookmarks.getChildren", BOOKMARKS_GETCHILDREN)
38 
39  protected:
~BookmarksGetChildrenFunction()40   ~BookmarksGetChildrenFunction() override {}
41 
42   ResponseAction Run() override;
43 };
44 
45 class BookmarksGetRecentFunction : public ExtensionFunction {
46  public:
47   DECLARE_EXTENSION_FUNCTION("bookmarks.getRecent", BOOKMARKS_GETRECENT)
48 
49  protected:
~BookmarksGetRecentFunction()50   ~BookmarksGetRecentFunction() override {}
51 
52   ResponseAction Run() override;
53 };
54 
55 class BookmarksGetTreeFunction : public ExtensionFunction {
56  public:
57   DECLARE_EXTENSION_FUNCTION("bookmarks.getTree", BOOKMARKS_GETTREE)
58 
59  protected:
~BookmarksGetTreeFunction()60   ~BookmarksGetTreeFunction() override {}
61 
62   ResponseAction Run() override;
63 };
64 
65 class BookmarksGetSubTreeFunction : public ExtensionFunction {
66  public:
67   DECLARE_EXTENSION_FUNCTION("bookmarks.getSubTree", BOOKMARKS_GETSUBTREE)
68 
69  protected:
~BookmarksGetSubTreeFunction()70   ~BookmarksGetSubTreeFunction() override {}
71 
72   ResponseAction Run() override;
73 };
74 
75 class BookmarksSearchFunction : public ExtensionFunction {
76  public:
77   DECLARE_EXTENSION_FUNCTION("bookmarks.search", BOOKMARKS_SEARCH)
78 
79  protected:
~BookmarksSearchFunction()80   ~BookmarksSearchFunction() override {}
81 
82   ResponseAction Run() override;
83 };
84 
85 class BookmarksRemoveFunction : public BookmarksStubFunction {
86  public:
87   DECLARE_EXTENSION_FUNCTION("bookmarks.remove", BOOKMARKS_REMOVE)
88 
89  protected:
~BookmarksRemoveFunction()90   ~BookmarksRemoveFunction() override {}
91 };
92 
93 class BookmarksRemoveTreeFunction : public BookmarksStubFunction {
94  public:
95   DECLARE_EXTENSION_FUNCTION("bookmarks.removeTree", BOOKMARKS_REMOVETREE)
96 
97  protected:
~BookmarksRemoveTreeFunction()98   ~BookmarksRemoveTreeFunction() override {}
99 };
100 
101 class BookmarksCreateFunction : public BookmarksStubFunction {
102  public:
103   DECLARE_EXTENSION_FUNCTION("bookmarks.create", BOOKMARKS_CREATE)
104 
105  protected:
~BookmarksCreateFunction()106   ~BookmarksCreateFunction() override {}
107 };
108 
109 class BookmarksMoveFunction : public BookmarksStubFunction {
110  public:
111   DECLARE_EXTENSION_FUNCTION("bookmarks.move", BOOKMARKS_MOVE)
112 
113  protected:
~BookmarksMoveFunction()114   ~BookmarksMoveFunction() override {}
115 };
116 
117 class BookmarksUpdateFunction : public BookmarksStubFunction {
118  public:
119   DECLARE_EXTENSION_FUNCTION("bookmarks.update", BOOKMARKS_UPDATE)
120 
121  protected:
~BookmarksUpdateFunction()122   ~BookmarksUpdateFunction() override {}
123 };
124 
125 class BookmarksImportFunction : public BookmarksStubFunction {
126  public:
127   DECLARE_EXTENSION_FUNCTION("bookmarks.import", BOOKMARKS_IMPORT)
128 
129  private:
~BookmarksImportFunction()130   ~BookmarksImportFunction() override {}
131 };
132 
133 class BookmarksExportFunction : public BookmarksStubFunction {
134  public:
135   DECLARE_EXTENSION_FUNCTION("bookmarks.export", BOOKMARKS_EXPORT)
136 
137  private:
~BookmarksExportFunction()138   ~BookmarksExportFunction() override {}
139 };
140 
141 }  // namespace api
142 }  // namespace cast
143 }  // namespace extensions
144 
145 #endif  // CHROMECAST_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_
146