blob: 8135ad61098ebac578a2de03a9eca7090d5ff541 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_
#define CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_
#include <stdint.h>
#include <string>
#include <vector>
#include "chrome/common/extensions/api/bookmarks.h"
namespace bookmarks {
class BookmarkModel;
class BookmarkNode;
class ManagedBookmarkService;
}
// Helper functions.
namespace extensions {
namespace bookmark_api_helpers {
api::bookmarks::BookmarkTreeNode GetBookmarkTreeNode(
bookmarks::ManagedBookmarkService* managed,
const bookmarks::BookmarkNode* node,
bool recurse,
bool only_folders);
// Populates |out_bookmark_tree_node| with given |node|.
void PopulateBookmarkTreeNode(
bookmarks::ManagedBookmarkService* managed,
const bookmarks::BookmarkNode* node,
bool recurse,
bool only_folders,
api::bookmarks::BookmarkTreeNode* out_bookmark_tree_node);
// Adds a JSON representation of |node| to the JSON |nodes|.
void AddNode(bookmarks::ManagedBookmarkService* managed,
const bookmarks::BookmarkNode* node,
std::vector<api::bookmarks::BookmarkTreeNode>* nodes,
bool recurse);
// Adds a JSON representation of |node| of folder type to the JSON |nodes|.
void AddNodeFoldersOnly(bookmarks::ManagedBookmarkService* managed,
const bookmarks::BookmarkNode* node,
std::vector<api::bookmarks::BookmarkTreeNode>* nodes,
bool recurse);
// Remove node of |id|.
bool RemoveNode(bookmarks::BookmarkModel* model,
bookmarks::ManagedBookmarkService* managed,
int64_t id,
bool recursive,
std::string* error);
// Get meta info from |node| and all it's children recursively.
void GetMetaInfo(const bookmarks::BookmarkNode& node,
base::DictionaryValue* id_to_meta_info_map);
} // namespace bookmark_api_helpers
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_