Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2127)

Unified Diff: device/generic_sensor/platform_sensor_provider_base.cc

Issue 2533793002: [sensors](CrOS/Linux) Implement Sensor device manager for sensors (Closed)
Patch Set: construct manager Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/generic_sensor/platform_sensor_provider_base.cc
diff --git a/device/generic_sensor/platform_sensor_provider_base.cc b/device/generic_sensor/platform_sensor_provider_base.cc
index c3f30ceb648966f50954ee5717d6e42ac4686551..f8bb907f0f27f013da38c99a13a329bf7ad0af20 100644
--- a/device/generic_sensor/platform_sensor_provider_base.cc
+++ b/device/generic_sensor/platform_sensor_provider_base.cc
@@ -32,8 +32,7 @@ void PlatformSensorProviderBase::CreateSensor(
return;
}
- mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset(
- kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type));
+ mojo::ScopedSharedBufferMapping mapping = MapSharedBufferForType(type);
if (!mapping) {
callback.Run(nullptr);
return;
@@ -43,8 +42,6 @@ void PlatformSensorProviderBase::CreateSensor(
if (it != requests_map_.end()) {
it->second.push_back(callback);
} else { // This is the first CreateSensor call.
- memset(mapping.get(), 0, kReadingBufferSize);
-
requests_map_[type] = CallbackQueue({callback});
CreateSensorInternal(
@@ -117,4 +114,20 @@ void PlatformSensorProviderBase::NotifySensorCreated(
requests_map_.erase(type);
}
+std::vector<mojom::SensorType>
+PlatformSensorProviderBase::GetPendingRequestTypes() {
+ std::vector<mojom::SensorType> request_types;
+ for (auto const& entry : requests_map_)
+ request_types.push_back(entry.first);
+ return request_types;
+}
+
+mojo::ScopedSharedBufferMapping
+PlatformSensorProviderBase::MapSharedBufferForType(mojom::SensorType type) {
+ mojo::ScopedSharedBufferMapping mapping = shared_buffer_handle_->MapAtOffset(
+ kReadingBufferSize, SensorReadingSharedBuffer::GetOffset(type));
+ memset(mapping.get(), 0, kReadingBufferSize);
+ return mapping;
+}
+
} // namespace device

Powered by Google App Engine
This is Rietveld 408576698