| Index: device/generic_sensor/platform_sensor.h
|
| diff --git a/device/generic_sensor/platform_sensor.h b/device/generic_sensor/platform_sensor.h
|
| index 0485fc6861fcc2bd68dbcd30970dee2c1ecc8113..9a40e3f5531ec518a417a75f67b4c43c01f7a1f1 100644
|
| --- a/device/generic_sensor/platform_sensor.h
|
| +++ b/device/generic_sensor/platform_sensor.h
|
| @@ -12,6 +12,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/observer_list.h"
|
| +#include "device/generic_sensor/public/cpp/sensor_reading.h"
|
| #include "device/generic_sensor/public/interfaces/sensor.mojom.h"
|
| #include "mojo/public/cpp/system/buffer.h"
|
|
|
| @@ -56,6 +57,7 @@ class PlatformSensor : public base::RefCountedThreadSafe<PlatformSensor> {
|
| PlatformSensorProvider* provider);
|
|
|
| using ConfigMap = std::map<Client*, std::list<PlatformSensorConfiguration>>;
|
| + using ReadingBuffer = SensorReadingSharedBuffer;
|
|
|
| virtual bool UpdateSensorInternal(const ConfigMap& configurations);
|
| virtual bool StartSensor(
|
| @@ -64,17 +66,24 @@ class PlatformSensor : public base::RefCountedThreadSafe<PlatformSensor> {
|
| virtual bool CheckSensorConfiguration(
|
| const PlatformSensorConfiguration& configuration) = 0;
|
|
|
| + // Updates shared buffer with new sensor reading data.
|
| + // Note: this method is thread-safe.
|
| + void UpdateSensorReading(const SensorReading& reading, bool notify_clients);
|
| +
|
| void NotifySensorReadingChanged();
|
| void NotifySensorError();
|
|
|
| - mojo::ScopedSharedBufferMapping shared_buffer_mapping_;
|
| -
|
| // For testing purposes.
|
| const ConfigMap& config_map() const { return config_map_; }
|
|
|
| + // Task runner that is used by mojo objects for the IPC.
|
| + // If platfrom sensor events are processed on a different
|
| + // thread, notifications are forwarded to |task_runner_|.
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| +
|
| private:
|
| friend class base::RefCountedThreadSafe<PlatformSensor>;
|
| -
|
| + const mojo::ScopedSharedBufferMapping shared_buffer_mapping_;
|
| mojom::SensorType type_;
|
| base::ObserverList<Client, true> clients_;
|
| ConfigMap config_map_;
|
|
|