1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARK_HELPERS_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARK_HELPERS_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include <string>
103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/basictypes.h"
123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass BookmarkModel;
143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass BookmarkNode;
153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass DictionaryValue;
163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass ListValue;
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Helper functions.
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace extension_bookmark_helpers {
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochDictionaryValue* GetNodeDictionary(const BookmarkNode* node,
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                                   bool recurse,
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                                   bool only_folders);
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Add a JSON representation of |node| to the JSON |list|.
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickvoid AddNode(const BookmarkNode* node, ListValue* list, bool recurse);
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid AddNodeFoldersOnly(const BookmarkNode* node,
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                        ListValue* list,
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                        bool recurse);
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochbool RemoveNode(BookmarkModel* model,
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                int64 id,
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                bool recursive,
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                std::string* error);
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}  // namespace extension_bookmark_helpers
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARK_HELPERS_H_
40