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.
4
5#ifndef CONTENT_BROWSER_APPCACHE_APPCACHE_FRONTEND_PROXY_H_
6#define CONTENT_BROWSER_APPCACHE_APPCACHE_FRONTEND_PROXY_H_
7
8#include <string>
9#include <vector>
10
11#include "content/common/appcache_interfaces.h"
12#include "ipc/ipc_sender.h"
13
14namespace content {
15
16// Sends appcache related messages to a child process.
17class AppCacheFrontendProxy : public AppCacheFrontend {
18 public:
19  explicit AppCacheFrontendProxy(IPC::Sender* sender);
20
21  // AppCacheFrontend methods
22  virtual void OnCacheSelected(int host_id,
23                               const AppCacheInfo& info) OVERRIDE;
24  virtual void OnStatusChanged(const std::vector<int>& host_ids,
25                               AppCacheStatus status) OVERRIDE;
26  virtual void OnEventRaised(const std::vector<int>& host_ids,
27                             AppCacheEventID event_id) OVERRIDE;
28  virtual void OnProgressEventRaised(const std::vector<int>& host_ids,
29                                     const GURL& url,
30                                     int num_total, int num_complete) OVERRIDE;
31  virtual void OnErrorEventRaised(const std::vector<int>& host_ids,
32                                  const AppCacheErrorDetails& details)
33      OVERRIDE;
34  virtual void OnLogMessage(int host_id, AppCacheLogLevel log_level,
35                            const std::string& message) OVERRIDE;
36  virtual void OnContentBlocked(int host_id,
37                                const GURL& manifest_url) OVERRIDE;
38
39 private:
40  IPC::Sender* sender_;
41};
42
43}  // namespace content
44
45#endif  // CONTENT_BROWSER_APPCACHE_APPCACHE_FRONTEND_PROXY_H_
46