1// Copyright (c) 2011 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// Data structures for communication between the history service on the main
6// thread and the backend on the history thread.
7
8#ifndef CHROME_BROWSER_HISTORY_HISTORY_MARSHALING_H__
9#define CHROME_BROWSER_HISTORY_HISTORY_MARSHALING_H__
10#pragma once
11
12#include "base/memory/scoped_vector.h"
13#include "chrome/browser/favicon_service.h"
14#include "chrome/browser/history/history.h"
15#include "chrome/browser/history/page_usage_data.h"
16#include "content/browser/cancelable_request.h"
17
18namespace history {
19
20// Querying -------------------------------------------------------------------
21
22typedef CancelableRequest1<HistoryService::QueryURLCallback,
23                           Tuple2<URLRow, VisitVector> >
24    QueryURLRequest;
25
26typedef CancelableRequest1<HistoryService::QueryHistoryCallback,
27                           QueryResults>
28    QueryHistoryRequest;
29
30typedef CancelableRequest1<HistoryService::QueryRedirectsCallback,
31                           history::RedirectList>
32    QueryRedirectsRequest;
33
34typedef CancelableRequest<HistoryService::GetVisitCountToHostCallback>
35    GetVisitCountToHostRequest;
36
37typedef CancelableRequest1<HistoryService::QueryTopURLsAndRedirectsCallback,
38                           Tuple2<std::vector<GURL>,
39                                  history::RedirectMap> >
40    QueryTopURLsAndRedirectsRequest;
41
42typedef CancelableRequest1<HistoryService::QueryMostVisitedURLsCallback,
43                           history::MostVisitedURLList>
44    QueryMostVisitedURLsRequest;
45
46// Thumbnails -----------------------------------------------------------------
47
48typedef CancelableRequest<HistoryService::ThumbnailDataCallback>
49    GetPageThumbnailRequest;
50
51// Favicons -------------------------------------------------------------------
52
53typedef CancelableRequest<FaviconService::FaviconDataCallback>
54    GetFaviconRequest;
55
56// Downloads ------------------------------------------------------------------
57
58typedef CancelableRequest1<HistoryService::DownloadQueryCallback,
59                           std::vector<DownloadCreateInfo> >
60    DownloadQueryRequest;
61
62typedef CancelableRequest<HistoryService::DownloadCreateCallback>
63    DownloadCreateRequest;
64
65// Deletion --------------------------------------------------------------------
66
67typedef CancelableRequest<HistoryService::ExpireHistoryCallback>
68    ExpireHistoryRequest;
69
70// Segment usage --------------------------------------------------------------
71
72typedef CancelableRequest1<HistoryService::SegmentQueryCallback,
73                           ScopedVector<PageUsageData> >
74    QuerySegmentUsageRequest;
75
76// Keyword search terms -------------------------------------------------------
77
78typedef
79    CancelableRequest1<HistoryService::GetMostRecentKeywordSearchTermsCallback,
80                       std::vector<KeywordSearchTermVisit> >
81    GetMostRecentKeywordSearchTermsRequest;
82
83// Generic operations ---------------------------------------------------------
84
85// The argument here is an input value, which is the task to run on the
86// background thread. The callback is used to execute the portion of the task
87// that executes on the main thread.
88typedef CancelableRequest1<HistoryService::HistoryDBTaskCallback,
89                           scoped_refptr<HistoryDBTask> >
90    HistoryDBTaskRequest;
91
92}  // namespace history
93
94#endif  // CHROME_BROWSER_HISTORY_HISTORY_MARSHALING_H__
95