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