Refactor sensor list in SensorService
Refactor sensor lists management logic in sensorservice:
* Factor all sensor list management code into a separate class.
* Remove error-prone repeated sensor lists.
* Solve synchronization issue when sensor is added or removed during runtime.
* Switch to STL containers.
Bug: b/27911774
Change-Id: I94d5571e1fa3166dbe893ffac2a2a7584be6349c
diff --git a/services/sensorservice/SensorInterface.h b/services/sensorservice/SensorInterface.h
index 3e76377..06cca75 100644
--- a/services/sensorservice/SensorInterface.h
+++ b/services/sensorservice/SensorInterface.h
@@ -33,8 +33,7 @@
public:
virtual ~SensorInterface();
- virtual bool process(sensors_event_t* outEvent,
- const sensors_event_t& event) = 0;
+ virtual bool process(sensors_event_t* outEvent, const sensors_event_t& event) = 0;
virtual status_t activate(void* ident, bool enabled) = 0;
virtual status_t setDelay(void* ident, int handle, int64_t ns) = 0;
@@ -52,7 +51,7 @@
return -EINVAL;
}
- virtual Sensor getSensor() const = 0;
+ virtual const Sensor& getSensor() const = 0;
virtual bool isVirtual() const = 0;
virtual void autoDisable(void* /*ident*/, int /*handle*/) { }
};
@@ -72,14 +71,14 @@
virtual bool process(sensors_event_t* outEvent,
const sensors_event_t& event);
- virtual status_t activate(void* ident, bool enabled);
+ virtual status_t activate(void* ident, bool enabled) override;
virtual status_t batch(void* ident, int handle, int flags, int64_t samplingPeriodNs,
- int64_t maxBatchReportLatencyNs);
- virtual status_t setDelay(void* ident, int handle, int64_t ns);
- virtual status_t flush(void* ident, int handle);
- virtual Sensor getSensor() const;
- virtual bool isVirtual() const { return false; }
- virtual void autoDisable(void *ident, int handle);
+ int64_t maxBatchReportLatencyNs) override;
+ virtual status_t setDelay(void* ident, int handle, int64_t ns) override;
+ virtual status_t flush(void* ident, int handle) override;
+ virtual const Sensor& getSensor() const override;
+ virtual bool isVirtual() const override { return false; }
+ virtual void autoDisable(void *ident, int handle) override;
};