cc: Added inline to Tile::IsReadyToDraw
[chromium-blink-merge.git] / components / visitedlink / browser / visitedlink_delegate.h
blob6adf7de57180d5948707a28a27eaeed9db9d5c9c
1 // Copyright (c) 2012 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.
5 #ifndef COMPONENTS_VISITEDLINK_BROWSER_VISITEDLINK_DELEGATE_H_
6 #define COMPONENTS_VISITEDLINK_BROWSER_VISITEDLINK_DELEGATE_H_
8 #include "base/memory/ref_counted.h"
10 class GURL;
12 namespace content {
13 class BrowserContext;
16 namespace visitedlink {
18 // Delegate class that clients of VisitedLinkMaster must implement.
19 class VisitedLinkDelegate {
20 public:
21 // See RebuildTable.
22 class URLEnumerator : public base::RefCountedThreadSafe<URLEnumerator> {
23 public:
24 // Call this with each URL to rebuild the table.
25 virtual void OnURL(const GURL& url) = 0;
27 // This must be called by Delegate after RebuildTable is called. |success|
28 // indicates all URLs have been returned successfully. The URLEnumerator
29 // object cannot be used by the delegate after this call.
30 virtual void OnComplete(bool success) = 0;
32 protected:
33 virtual ~URLEnumerator() {}
35 private:
36 friend class base::RefCountedThreadSafe<URLEnumerator>;
39 // Delegate class is responsible for persisting the list of visited URLs
40 // across browser runs. This is called by VisitedLinkMaster to repopulate
41 // its internal table. Note that methods on enumerator can be called on any
42 // thread but the delegate is responsible for synchronizating the calls.
43 virtual void RebuildTable(const scoped_refptr<URLEnumerator>& enumerator) = 0;
45 protected:
46 virtual ~VisitedLinkDelegate() {}
49 } // namespace visitedlink
51 #endif // COMPONENTS_VISITEDLINK_BROWSER_VISITEDLINK_DELEGATE_H_