Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(159)

Side by Side Diff: chrome/browser/history/history_service.h

Issue 369503007: Remove dead code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_HISTORY_HISTORY_SERVICE_H_ 5 #ifndef CHROME_BROWSER_HISTORY_HISTORY_SERVICE_H_
6 #define CHROME_BROWSER_HISTORY_HISTORY_SERVICE_H_ 6 #define CHROME_BROWSER_HISTORY_HISTORY_SERVICE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
17 #include "base/memory/scoped_ptr.h" 17 #include "base/memory/scoped_ptr.h"
18 #include "base/memory/weak_ptr.h" 18 #include "base/memory/weak_ptr.h"
19 #include "base/observer_list.h" 19 #include "base/observer_list.h"
20 #include "base/strings/string16.h" 20 #include "base/strings/string16.h"
21 #include "base/task/cancelable_task_tracker.h" 21 #include "base/task/cancelable_task_tracker.h"
22 #include "base/threading/thread_checker.h" 22 #include "base/threading/thread_checker.h"
23 #include "base/time/time.h" 23 #include "base/time/time.h"
24 #include "chrome/browser/common/cancelable_request.h"
25 #include "chrome/browser/history/delete_directive_handler.h" 24 #include "chrome/browser/history/delete_directive_handler.h"
26 #include "chrome/browser/history/typed_url_syncable_service.h" 25 #include "chrome/browser/history/typed_url_syncable_service.h"
27 #include "chrome/common/ref_counted_util.h" 26 #include "chrome/common/ref_counted_util.h"
28 #include "components/favicon_base/favicon_callback.h" 27 #include "components/favicon_base/favicon_callback.h"
29 #include "components/history/core/browser/history_client.h" 28 #include "components/history/core/browser/history_client.h"
30 #include "components/history/core/browser/keyword_id.h" 29 #include "components/history/core/browser/keyword_id.h"
31 #include "components/keyed_service/core/keyed_service.h" 30 #include "components/keyed_service/core/keyed_service.h"
32 #include "components/visitedlink/browser/visitedlink_delegate.h" 31 #include "components/visitedlink/browser/visitedlink_delegate.h"
33 #include "content/public/browser/download_manager_delegate.h" 32 #include "content/public/browser/download_manager_delegate.h"
34 #include "content/public/browser/notification_observer.h" 33 #include "content/public/browser/notification_observer.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 struct HistoryDetails; 75 struct HistoryDetails;
77 struct KeywordSearchTermVisit; 76 struct KeywordSearchTermVisit;
78 77
79 } // namespace history 78 } // namespace history
80 79
81 // The history service records page titles, and visit times, as well as 80 // The history service records page titles, and visit times, as well as
82 // (eventually) information about autocomplete. 81 // (eventually) information about autocomplete.
83 // 82 //
84 // This service is thread safe. Each request callback is invoked in the 83 // This service is thread safe. Each request callback is invoked in the
85 // thread that made the request. 84 // thread that made the request.
86 class HistoryService : public CancelableRequestProvider, 85 class HistoryService : public content::NotificationObserver,
87 public content::NotificationObserver,
88 public syncer::SyncableService, 86 public syncer::SyncableService,
89 public KeyedService, 87 public KeyedService,
90 public visitedlink::VisitedLinkDelegate { 88 public visitedlink::VisitedLinkDelegate {
91 public: 89 public:
92 // Miscellaneous commonly-used types. 90 // Miscellaneous commonly-used types.
93 typedef std::vector<PageUsageData*> PageUsageDataList; 91 typedef std::vector<PageUsageData*> PageUsageDataList;
94 92
95 // Must call Init after construction. The |history::HistoryClient| object 93 // Must call Init after construction. The |history::HistoryClient| object
96 // must be valid for the whole lifetime of |HistoryService|. 94 // must be valid for the whole lifetime of |HistoryService|.
97 explicit HistoryService(history::HistoryClient* client, Profile* profile); 95 explicit HistoryService(history::HistoryClient* client, Profile* profile);
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 void SetInMemoryBackend( 731 void SetInMemoryBackend(
734 scoped_ptr<history::InMemoryHistoryBackend> mem_backend); 732 scoped_ptr<history::InMemoryHistoryBackend> mem_backend);
735 733
736 // Called by our BackendDelegate when there is a problem reading the database. 734 // Called by our BackendDelegate when there is a problem reading the database.
737 void NotifyProfileError(sql::InitStatus init_status); 735 void NotifyProfileError(sql::InitStatus init_status);
738 736
739 // Call to schedule a given task for running on the history thread with the 737 // Call to schedule a given task for running on the history thread with the
740 // specified priority. The task will have ownership taken. 738 // specified priority. The task will have ownership taken.
741 void ScheduleTask(SchedulePriority priority, const base::Closure& task); 739 void ScheduleTask(SchedulePriority priority, const base::Closure& task);
742 740
743 // Schedule ------------------------------------------------------------------
744 //
745 // Functions for scheduling operations on the history thread that have a
746 // handle and may be cancelable. For fire-and-forget operations, see
747 // ScheduleAndForget below.
748
749 template<typename BackendFunc, class RequestType>
750 Handle Schedule(SchedulePriority priority,
751 BackendFunc func, // Function to call on the HistoryBackend.
752 CancelableRequestConsumerBase* consumer,
753 RequestType* request) {
754 DCHECK(thread_) << "History service being called after cleanup";
755 DCHECK(thread_checker_.CalledOnValidThread());
756 if (consumer)
757 AddRequest(request, consumer);
758 ScheduleTask(priority,
759 base::Bind(func, history_backend_.get(),
760 scoped_refptr<RequestType>(request)));
761 return request->handle();
762 }
763
764 template<typename BackendFunc, class RequestType, typename ArgA>
765 Handle Schedule(SchedulePriority priority,
766 BackendFunc func, // Function to call on the HistoryBackend.
767 CancelableRequestConsumerBase* consumer,
768 RequestType* request,
769 const ArgA& a) {
770 DCHECK(thread_) << "History service being called after cleanup";
771 DCHECK(thread_checker_.CalledOnValidThread());
772 if (consumer)
773 AddRequest(request, consumer);
774 ScheduleTask(priority,
775 base::Bind(func, history_backend_.get(),
776 scoped_refptr<RequestType>(request), a));
777 return request->handle();
778 }
779
780 template<typename BackendFunc,
781 class RequestType, // Descendant of CancelableRequestBase.
782 typename ArgA,
783 typename ArgB>
784 Handle Schedule(SchedulePriority priority,
785 BackendFunc func, // Function to call on the HistoryBackend.
786 CancelableRequestConsumerBase* consumer,
787 RequestType* request,
788 const ArgA& a,
789 const ArgB& b) {
790 DCHECK(thread_) << "History service being called after cleanup";
791 DCHECK(thread_checker_.CalledOnValidThread());
792 if (consumer)
793 AddRequest(request, consumer);
794 ScheduleTask(priority,
795 base::Bind(func, history_backend_.get(),
796 scoped_refptr<RequestType>(request), a, b));
797 return request->handle();
798 }
799
800 template<typename BackendFunc,
801 class RequestType, // Descendant of CancelableRequestBase.
802 typename ArgA,
803 typename ArgB,
804 typename ArgC>
805 Handle Schedule(SchedulePriority priority,
806 BackendFunc func, // Function to call on the HistoryBackend.
807 CancelableRequestConsumerBase* consumer,
808 RequestType* request,
809 const ArgA& a,
810 const ArgB& b,
811 const ArgC& c) {
812 DCHECK(thread_) << "History service being called after cleanup";
813 DCHECK(thread_checker_.CalledOnValidThread());
814 if (consumer)
815 AddRequest(request, consumer);
816 ScheduleTask(priority,
817 base::Bind(func, history_backend_.get(),
818 scoped_refptr<RequestType>(request), a, b, c));
819 return request->handle();
820 }
821
822 template<typename BackendFunc,
823 class RequestType, // Descendant of CancelableRequestBase.
824 typename ArgA,
825 typename ArgB,
826 typename ArgC,
827 typename ArgD>
828 Handle Schedule(SchedulePriority priority,
829 BackendFunc func, // Function to call on the HistoryBackend.
830 CancelableRequestConsumerBase* consumer,
831 RequestType* request,
832 const ArgA& a,
833 const ArgB& b,
834 const ArgC& c,
835 const ArgD& d) {
836 DCHECK(thread_) << "History service being called after cleanup";
837 DCHECK(thread_checker_.CalledOnValidThread());
838 if (consumer)
839 AddRequest(request, consumer);
840 ScheduleTask(priority,
841 base::Bind(func, history_backend_.get(),
842 scoped_refptr<RequestType>(request), a, b, c, d));
843 return request->handle();
844 }
845
846 // ScheduleAndForget --------------------------------------------------------- 741 // ScheduleAndForget ---------------------------------------------------------
847 // 742 //
848 // Functions for scheduling operations on the history thread that do not need 743 // Functions for scheduling operations on the history thread that do not need
849 // any callbacks and are not cancelable. 744 // any callbacks and are not cancelable.
850 745
851 template<typename BackendFunc> 746 template<typename BackendFunc>
852 void ScheduleAndForget(SchedulePriority priority, 747 void ScheduleAndForget(SchedulePriority priority,
853 BackendFunc func) { // Function to call on backend. 748 BackendFunc func) { // Function to call on backend.
854 DCHECK(thread_) << "History service being called after cleanup"; 749 DCHECK(thread_) << "History service being called after cleanup";
855 DCHECK(thread_checker_.CalledOnValidThread()); 750 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 a, b, c, d, e)); 817 a, b, c, d, e));
923 } 818 }
924 819
925 // All vended weak pointers are invalidated in Cleanup(). 820 // All vended weak pointers are invalidated in Cleanup().
926 base::WeakPtrFactory<HistoryService> weak_ptr_factory_; 821 base::WeakPtrFactory<HistoryService> weak_ptr_factory_;
927 822
928 base::ThreadChecker thread_checker_; 823 base::ThreadChecker thread_checker_;
929 824
930 content::NotificationRegistrar registrar_; 825 content::NotificationRegistrar registrar_;
931 826
932 // Some void primitives require some internal processing in the main thread
933 // when done. We use this internal consumer for this purpose.
934 CancelableRequestConsumer internal_consumer_;
935
936 // The thread used by the history service to run complicated operations. 827 // The thread used by the history service to run complicated operations.
937 // |thread_| is NULL once |Cleanup| is NULL. 828 // |thread_| is NULL once |Cleanup| is NULL.
938 base::Thread* thread_; 829 base::Thread* thread_;
939 830
940 // This class has most of the implementation and runs on the 'thread_'. 831 // This class has most of the implementation and runs on the 'thread_'.
941 // You MUST communicate with this class ONLY through the thread_'s 832 // You MUST communicate with this class ONLY through the thread_'s
942 // message_loop(). 833 // message_loop().
943 // 834 //
944 // This pointer will be NULL once Cleanup() has been called, meaning no 835 // This pointer will be NULL once Cleanup() has been called, meaning no
945 // more calls should be made to the history thread. 836 // more calls should be made to the history thread.
(...skipping 30 matching lines...) Expand all
976 scoped_ptr<history::InMemoryURLIndex> in_memory_url_index_; 867 scoped_ptr<history::InMemoryURLIndex> in_memory_url_index_;
977 868
978 ObserverList<history::VisitDatabaseObserver> visit_database_observers_; 869 ObserverList<history::VisitDatabaseObserver> visit_database_observers_;
979 870
980 history::DeleteDirectiveHandler delete_directive_handler_; 871 history::DeleteDirectiveHandler delete_directive_handler_;
981 872
982 DISALLOW_COPY_AND_ASSIGN(HistoryService); 873 DISALLOW_COPY_AND_ASSIGN(HistoryService);
983 }; 874 };
984 875
985 #endif // CHROME_BROWSER_HISTORY_HISTORY_SERVICE_H_ 876 #endif // CHROME_BROWSER_HISTORY_HISTORY_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698