Index: device/generic_sensor/platform_sensor.cc |
diff --git a/device/generic_sensor/platform_sensor.cc b/device/generic_sensor/platform_sensor.cc |
deleted file mode 100644 |
index 34afa2d69987ab49b01dcf8041945c523c9f0b02..0000000000000000000000000000000000000000 |
--- a/device/generic_sensor/platform_sensor.cc |
+++ /dev/null |
@@ -1,142 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "device/generic_sensor/platform_sensor.h" |
- |
-#include <utility> |
- |
-#include "base/threading/thread_task_runner_handle.h" |
-#include "device/generic_sensor/platform_sensor_provider.h" |
-#include "device/generic_sensor/public/cpp/platform_sensor_configuration.h" |
- |
-namespace device { |
- |
-PlatformSensor::PlatformSensor(mojom::SensorType type, |
- mojo::ScopedSharedBufferMapping mapping, |
- PlatformSensorProvider* provider) |
- : task_runner_(base::ThreadTaskRunnerHandle::Get()), |
- shared_buffer_mapping_(std::move(mapping)), |
- type_(type), |
- provider_(provider), |
- weak_factory_(this) {} |
- |
-PlatformSensor::~PlatformSensor() { |
- provider_->RemoveSensor(GetType()); |
-} |
- |
-mojom::SensorType PlatformSensor::GetType() const { |
- return type_; |
-} |
- |
-double PlatformSensor::GetMaximumSupportedFrequency() { |
- return GetDefaultConfiguration().frequency(); |
-} |
- |
-double PlatformSensor::GetMinimumSupportedFrequency() { |
- return 1.0 / (60 * 60); |
-} |
- |
-bool PlatformSensor::StartListening(Client* client, |
- const PlatformSensorConfiguration& config) { |
- DCHECK(clients_.HasObserver(client)); |
- if (!CheckSensorConfiguration(config)) |
- return false; |
- |
- auto& config_list = config_map_[client]; |
- config_list.push_back(config); |
- |
- if (!UpdateSensorInternal(config_map_)) { |
- config_list.pop_back(); |
- return false; |
- } |
- |
- return true; |
-} |
- |
-bool PlatformSensor::StopListening(Client* client, |
- const PlatformSensorConfiguration& config) { |
- DCHECK(clients_.HasObserver(client)); |
- auto client_entry = config_map_.find(client); |
- if (client_entry == config_map_.end()) |
- return false; |
- |
- auto& config_list = client_entry->second; |
- auto config_entry = std::find(config_list.begin(), config_list.end(), config); |
- if (config_entry == config_list.end()) |
- return false; |
- |
- config_list.erase(config_entry); |
- |
- return UpdateSensorInternal(config_map_); |
-} |
- |
-void PlatformSensor::UpdateSensor() { |
- UpdateSensorInternal(config_map_); |
-} |
- |
-void PlatformSensor::AddClient(Client* client) { |
- DCHECK(client); |
- clients_.AddObserver(client); |
-} |
- |
-void PlatformSensor::RemoveClient(Client* client) { |
- DCHECK(client); |
- clients_.RemoveObserver(client); |
- auto client_entry = config_map_.find(client); |
- if (client_entry != config_map_.end()) { |
- config_map_.erase(client_entry); |
- UpdateSensorInternal(config_map_); |
- } |
-} |
- |
-void PlatformSensor::UpdateSensorReading(const SensorReading& reading, |
- bool notify_clients) { |
- ReadingBuffer* buffer = |
- static_cast<ReadingBuffer*>(shared_buffer_mapping_.get()); |
- auto& seqlock = buffer->seqlock.value(); |
- seqlock.WriteBegin(); |
- buffer->reading = reading; |
- seqlock.WriteEnd(); |
- |
- if (notify_clients) |
- task_runner_->PostTask( |
- FROM_HERE, base::Bind(&PlatformSensor::NotifySensorReadingChanged, |
- weak_factory_.GetWeakPtr())); |
-} |
- |
-void PlatformSensor::NotifySensorReadingChanged() { |
- for (auto& client : clients_) { |
- if (!client.IsNotificationSuspended()) |
- client.OnSensorReadingChanged(); |
- } |
-} |
- |
-void PlatformSensor::NotifySensorError() { |
- for (auto& observer : clients_) |
- observer.OnSensorError(); |
-} |
- |
-bool PlatformSensor::UpdateSensorInternal(const ConfigMap& configurations) { |
- const PlatformSensorConfiguration* optimal_configuration = nullptr; |
- for (const auto& pair : configurations) { |
- if (pair.first->IsNotificationSuspended()) |
- continue; |
- |
- const auto& conf_list = pair.second; |
- for (const auto& configuration : conf_list) { |
- if (!optimal_configuration || configuration > *optimal_configuration) { |
- optimal_configuration = &configuration; |
- } |
- } |
- } |
- |
- if (!optimal_configuration) { |
- StopSensor(); |
- return true; |
- } |
- |
- return StartSensor(*optimal_configuration); |
-} |
- |
-} // namespace device |