chromium/components/download/internal/background_service/scheduler/battery_status_listener_mac.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_DOWNLOAD_INTERNAL_BACKGROUND_SERVICE_SCHEDULER_BATTERY_STATUS_LISTENER_MAC_H_
#define COMPONENTS_DOWNLOAD_INTERNAL_BACKGROUND_SERVICE_SCHEDULER_BATTERY_STATUS_LISTENER_MAC_H_

#include "components/download/internal/background_service/scheduler/battery_status_listener.h"

namespace download {

// Mac implementation of BatteryStatusListener. Currently always Mac device
// full battery and charging.
// We should investigate if platform code can be correctly hooked to
// base::PowerMonitor on Mac. See https://crbug.com/825878.
class BatteryStatusListenerMac : public BatteryStatusListener {
 public:
  BatteryStatusListenerMac();

  BatteryStatusListenerMac(const BatteryStatusListenerMac&) = delete;
  BatteryStatusListenerMac& operator=(const BatteryStatusListenerMac&) = delete;

  ~BatteryStatusListenerMac() override;

 private:
  // BatteryStatusListener implementation.
  int GetBatteryPercentage() override;
  bool IsOnBatteryPower() override;
  void Start(Observer* observer) override;
  void Stop() override;
};

}  // namespace download

#endif  // COMPONENTS_DOWNLOAD_INTERNAL_BACKGROUND_SERVICE_SCHEDULER_BATTERY_STATUS_LISTENER_MAC_H_