Index: chrome/browser/bookmark_storage.h |
=================================================================== |
--- chrome/browser/bookmark_storage.h (revision 1903) |
+++ chrome/browser/bookmark_storage.h (working copy) |
@@ -1,98 +0,0 @@ |
-// Copyright (c) 2006-2008 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_BOOKMARK_STORAGE_H_ |
-#define CHROME_BROWSER_BOOKMARK_STORAGE_H_ |
- |
-#include "base/ref_counted.h" |
-#include "base/task.h" |
-#include "chrome/browser/browser_process.h" |
- |
-class BookmarkBarModel; |
-class Profile; |
-class Value; |
- |
-// BookmarkStorage handles reading/write the bookmark bar model. The |
-// BookmarkBarModel uses the BookmarkStorage to load bookmarks from |
-// disk, as well as notifying the BookmarkStorage every time the model |
-// changes. |
-// |
-// Internally BookmarkStorage uses BookmarkCodec to do the actual read/write. |
- |
-class BookmarkStorage : public base::RefCountedThreadSafe<BookmarkStorage> { |
- friend class BookmarkStorageBackend; |
- |
- public: |
- // Creates a BookmarkStorage for the specified model |
- BookmarkStorage(Profile* profile, BookmarkBarModel* model); |
- |
- // Loads the bookmarks into the model, notifying the model when done. If |
- // load_from_history is true, the bookmarks are loaded from the file written |
- // by history (StarredURLDatabase). |
- void LoadBookmarks(bool load_from_history); |
- |
- // Schedules saving the bookmark bar model to disk. |
- void ScheduleSave(); |
- |
- // Notification the bookmark bar model is going to be deleted. If there is |
- // a pending save, it is saved immediately. |
- void BookmarkModelDeleted(); |
- |
- private: |
- // Callback from backend with the results of the bookmark file. |
- void LoadedBookmarks(Value* root_value, |
- bool bookmark_file_exists, |
- bool loaded_from_history); |
- |
- // Schedules a save on the backend thread. |
- void SaveNow(); |
- |
- // Returns the thread the backend is run on. |
- base::Thread* backend_thread() const { return backend_thread_; } |
- |
- // The model. The model is NULL once BookmarkModelDeleted has been invoked. |
- BookmarkBarModel* model_; |
- |
- // Used to delay saves. |
- ScopedRunnableMethodFactory<BookmarkStorage> save_factory_; |
- |
- // The backend handles actual reading/writing to disk. |
- scoped_refptr<BookmarkStorageBackend> backend_; |
- |
- // Thread read/writing is run on. This comes from the profile, and is null |
- // during testing. |
- base::Thread* backend_thread_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BookmarkStorage); |
-}; |
- |
-// Used to save the bookmarks on the file thread. |
-class BookmarkStorageBackend : |
- public base::RefCountedThreadSafe<BookmarkStorageBackend> { |
- public: |
- explicit BookmarkStorageBackend(const std::wstring& path, |
- const std::wstring& tmp_histor_path); |
- |
- // Writes the specified value to disk. This takes ownership of |value| and |
- // deletes it when done. |
- void Write(Value* value); |
- |
- // Reads the bookmarks from kBookmarksFileName. Notifies |service| with |
- // the results on the specified MessageLoop. |
- void Read(scoped_refptr<BookmarkStorage> service, |
- MessageLoop* message_loop, |
- bool load_from_history); |
- |
- private: |
- // Path we read/write to. |
- const std::wstring path_; |
- |
- // Path bookmarks are read from if asked to load from history file. |
- const std::wstring tmp_history_path_; |
- |
- DISALLOW_EVIL_CONSTRUCTORS(BookmarkStorageBackend); |
-}; |
- |
-#endif // CHROME_BROWSER_BOOKMARK_STORAGE_H_ |
- |