15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef COMPONENTS_BOOKMARKS_BROWSER_BASE_BOOKMARK_MODEL_OBSERVER_H_
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define COMPONENTS_BOOKMARKS_BROWSER_BASE_BOOKMARK_MODEL_OBSERVER_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/bookmarks/browser/bookmark_model_observer.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Base class for a BookmarkModelObserver implementation. All mutations of the
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// model funnel into the method BookmarkModelChanged.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BaseBookmarkModelObserver : public BookmarkModelObserver {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BaseBookmarkModelObserver() {}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkModelChanged() = 0;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // BookmarkModelObserver:
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void BookmarkModelLoaded(BookmarkModel* model,
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                   bool ids_reassigned) OVERRIDE;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkModelBeingDeleted(BookmarkModel* model) OVERRIDE;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkNodeMoved(BookmarkModel* model,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 const BookmarkNode* old_parent,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 int old_index,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 const BookmarkNode* new_parent,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 int new_index) OVERRIDE;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkNodeAdded(BookmarkModel* model,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 const BookmarkNode* parent,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 int index) OVERRIDE;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkNodeRemoved(BookmarkModel* model,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   const BookmarkNode* parent,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   int old_index,
35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                   const BookmarkNode* node,
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                   const std::set<GURL>& removed_urls) OVERRIDE;
37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual void BookmarkAllUserNodesRemoved(
38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      BookmarkModel* model,
39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      const std::set<GURL>& removed_urls) OVERRIDE;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkNodeChanged(BookmarkModel* model,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   const BookmarkNode* node) OVERRIDE;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkNodeFaviconChanged(BookmarkModel* model,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          const BookmarkNode* node) OVERRIDE;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             const BookmarkNode* node) OVERRIDE;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected:
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~BaseBookmarkModelObserver() {}
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(BaseBookmarkModelObserver);
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // COMPONENTS_BOOKMARKS_BROWSER_BASE_BOOKMARK_MODEL_OBSERVER_H_
55