1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_BOOKMARKS_BROWSER_BASE_BOOKMARK_MODEL_OBSERVER_H_
6#define COMPONENTS_BOOKMARKS_BROWSER_BASE_BOOKMARK_MODEL_OBSERVER_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "components/bookmarks/browser/bookmark_model_observer.h"
11
12// Base class for a BookmarkModelObserver implementation. All mutations of the
13// model funnel into the method BookmarkModelChanged.
14class BaseBookmarkModelObserver : public BookmarkModelObserver {
15 public:
16  BaseBookmarkModelObserver() {}
17
18  virtual void BookmarkModelChanged() = 0;
19
20  // BookmarkModelObserver:
21  virtual void BookmarkModelLoaded(BookmarkModel* model,
22                                   bool ids_reassigned) OVERRIDE;
23  virtual void BookmarkModelBeingDeleted(BookmarkModel* model) OVERRIDE;
24  virtual void BookmarkNodeMoved(BookmarkModel* model,
25                                 const BookmarkNode* old_parent,
26                                 int old_index,
27                                 const BookmarkNode* new_parent,
28                                 int new_index) OVERRIDE;
29  virtual void BookmarkNodeAdded(BookmarkModel* model,
30                                 const BookmarkNode* parent,
31                                 int index) OVERRIDE;
32  virtual void BookmarkNodeRemoved(BookmarkModel* model,
33                                   const BookmarkNode* parent,
34                                   int old_index,
35                                   const BookmarkNode* node,
36                                   const std::set<GURL>& removed_urls) OVERRIDE;
37  virtual void BookmarkAllUserNodesRemoved(
38      BookmarkModel* model,
39      const std::set<GURL>& removed_urls) OVERRIDE;
40  virtual void BookmarkNodeChanged(BookmarkModel* model,
41                                   const BookmarkNode* node) OVERRIDE;
42  virtual void BookmarkNodeFaviconChanged(BookmarkModel* model,
43                                          const BookmarkNode* node) OVERRIDE;
44  virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
45                                             const BookmarkNode* node) OVERRIDE;
46
47 protected:
48  virtual ~BaseBookmarkModelObserver() {}
49
50 private:
51  DISALLOW_COPY_AND_ASSIGN(BaseBookmarkModelObserver);
52};
53
54#endif  // COMPONENTS_BOOKMARKS_BROWSER_BASE_BOOKMARK_MODEL_OBSERVER_H_
55