| Index: chrome/browser/ui/webui/cookies_tree_model_util.h
 | 
| ===================================================================
 | 
| --- chrome/browser/ui/webui/cookies_tree_model_util.h	(revision 145933)
 | 
| +++ chrome/browser/ui/webui/cookies_tree_model_util.h	(working copy)
 | 
| @@ -1,4 +1,4 @@
 | 
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
 | 
| +// 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.
 | 
|  
 | 
| @@ -6,8 +6,12 @@
 | 
|  #define CHROME_BROWSER_UI_WEBUI_COOKIES_TREE_MODEL_UTIL_H_
 | 
|  #pragma once
 | 
|  
 | 
| +#include <map>
 | 
|  #include <string>
 | 
|  
 | 
| +#include "base/basictypes.h"
 | 
| +#include "base/id_map.h"
 | 
| +
 | 
|  class CookieTreeNode;
 | 
|  
 | 
|  namespace base {
 | 
| @@ -15,24 +19,43 @@
 | 
|  class ListValue;
 | 
|  }
 | 
|  
 | 
| -namespace cookies_tree_model_util {
 | 
| +class CookiesTreeModelUtil {
 | 
| + public:
 | 
| +  CookiesTreeModelUtil();
 | 
| +  ~CookiesTreeModelUtil();
 | 
|  
 | 
| -// Returns tree node id. Currently use hex string of node pointer as id.
 | 
| -std::string GetTreeNodeId(CookieTreeNode* node);
 | 
| +  // Finds or creates an ID for given |node| and returns it as string.
 | 
| +  std::string GetTreeNodeId(const CookieTreeNode* node);
 | 
|  
 | 
| -// Populate given |dict| with cookie tree node properties.
 | 
| -// Returns false if the |node| does not need to be shown.
 | 
| -bool GetCookieTreeNodeDictionary(const CookieTreeNode& node,
 | 
| -                                 base::DictionaryValue* dict);
 | 
| +  // Append the children nodes of |parent| in specified range to |nodes| list.
 | 
| +  void GetChildNodeList(const CookieTreeNode* parent,
 | 
| +                        int start,
 | 
| +                        int count,
 | 
| +                        base::ListValue* nodes);
 | 
|  
 | 
| -// Append the children nodes of |parent| in specified range to |nodes| list.
 | 
| -void GetChildNodeList(CookieTreeNode* parent, int start, int count,
 | 
| -                      base::ListValue* nodes);
 | 
| +  // Gets tree node from |path| under |root|. |path| is comma separated list of
 | 
| +  // ids. |id_map| translates ids into object pointers. Return NULL if |path|
 | 
| +  // is not valid.
 | 
| +  const CookieTreeNode* GetTreeNodeFromPath(const CookieTreeNode* root,
 | 
| +                                            const std::string& path);
 | 
|  
 | 
| -// Gets tree node from |path| under |root|. Return NULL if |path| is not valid.
 | 
| -CookieTreeNode* GetTreeNodeFromPath(CookieTreeNode* root,
 | 
| -                                    const std::string& path);
 | 
| + private:
 | 
| +  typedef IDMap<const CookieTreeNode> CookiesTreeNodeIdMap;
 | 
| +  typedef std::map<const CookieTreeNode*, int32> CookieTreeNodeMap;
 | 
|  
 | 
| -}  // namespace cookies_tree_model_util
 | 
| +  // Populate given |dict| with cookie tree node properties. |id_map| maps
 | 
| +  // a CookieTreeNode to an ID and creates a new ID if |node| is not in the
 | 
| +  // maps. Returns false if the |node| does not need to be shown.
 | 
| +  bool GetCookieTreeNodeDictionary(const CookieTreeNode& node,
 | 
| +                                   base::DictionaryValue* dict);
 | 
|  
 | 
| +  // IDMap to create unique ID and look up the object for an ID.
 | 
| +  CookiesTreeNodeIdMap id_map_;
 | 
| +
 | 
| +  // Reverse look up map to find the ID for a node.
 | 
| +  CookieTreeNodeMap node_map_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(CookiesTreeModelUtil);
 | 
| +};
 | 
| +
 | 
|  #endif  // CHROME_BROWSER_UI_WEBUI_COOKIES_TREE_MODEL_UTIL_H_
 | 
| 
 |