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 CONTENT_BROWSER_BATTERY_STATUS_BATTERY_STATUS_MESSAGE_FILTER_H_
6#define CONTENT_BROWSER_BATTERY_STATUS_BATTERY_STATUS_MESSAGE_FILTER_H_
7
8#include "content/browser/battery_status/battery_status_service.h"
9#include "content/public/browser/browser_message_filter.h"
10
11namespace content {
12
13class BatteryStatusMessageFilter : public BrowserMessageFilter {
14 public:
15  BatteryStatusMessageFilter();
16
17  // BrowserMessageFilter implementation.
18  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
19
20 private:
21  virtual ~BatteryStatusMessageFilter();
22
23  void OnBatteryStatusStart();
24  void OnBatteryStatusStop();
25  void SendBatteryChange(const blink::WebBatteryStatus& status);
26
27  BatteryStatusService::BatteryUpdateCallback callback_;
28  scoped_ptr<BatteryStatusService::BatteryUpdateSubscription> subscription_;
29  bool is_started_;
30
31  DISALLOW_COPY_AND_ASSIGN(BatteryStatusMessageFilter);
32};
33
34}  // namespace content
35
36#endif  // CONTENT_BROWSER_BATTERY_STATUS_BATTERY_STATUS_MESSAGE_FILTER_H_
37