Home | History | Annotate | Download | only in bookmarks
      1 // Copyright (c) 2012 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_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_
      6 #define CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/basictypes.h"
     12 #include "chrome/common/extensions/api/bookmarks.h"
     13 
     14 class BookmarkModel;
     15 class BookmarkNode;
     16 class ChromeBookmarkClient;
     17 
     18 // Helper functions.
     19 namespace extensions {
     20 namespace bookmark_api_helpers {
     21 
     22 // The returned value is owned by the caller.
     23 api::bookmarks::BookmarkTreeNode* GetBookmarkTreeNode(
     24     ChromeBookmarkClient* client,
     25     const BookmarkNode* node,
     26     bool recurse,
     27     bool only_folders);
     28 
     29 // Add a JSON representation of |node| to the JSON |nodes|.
     30 void AddNode(ChromeBookmarkClient* client,
     31              const BookmarkNode* node,
     32              std::vector<linked_ptr<api::bookmarks::BookmarkTreeNode> >* nodes,
     33              bool recurse);
     34 
     35 void AddNodeFoldersOnly(ChromeBookmarkClient* client,
     36                         const BookmarkNode* node,
     37                         std::vector<linked_ptr<
     38                             api::bookmarks::BookmarkTreeNode> >* nodes,
     39                         bool recurse);
     40 
     41 bool RemoveNode(BookmarkModel* model,
     42                 ChromeBookmarkClient* client,
     43                 int64 id,
     44                 bool recursive,
     45                 std::string* error);
     46 
     47 // Get meta info from |node| and all it's children recursively.
     48 void GetMetaInfo(const BookmarkNode& node,
     49                  base::DictionaryValue* id_to_meta_info_map);
     50 
     51 }  // namespace bookmark_api_helpers
     52 }  // namespace extensions
     53 
     54 #endif  // CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_
     55