NVMeBasicContext: Poll all sensors each polling interval
Rework the polling protocol so that the completion of polling sensor N
invokes polling of sensor N+1 for the given context.
The timer is retained in order to trigger polling the initial sensor.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I599547c8c790905549c0cad9fbfbe63cf6930de4
diff --git a/include/NVMeBasicContext.hpp b/include/NVMeBasicContext.hpp
index 29b55d9..6b0a425 100644
--- a/include/NVMeBasicContext.hpp
+++ b/include/NVMeBasicContext.hpp
@@ -11,8 +11,10 @@
NVMeBasicContext(boost::asio::io_service& io, int rootBus);
~NVMeBasicContext() override = default;
void pollNVMeDevices() override;
- void readAndProcessNVMeSensor() override;
- void processResponse(void* msg, size_t len) override;
+ void readAndProcessNVMeSensor(
+ std::list<std::shared_ptr<NVMeSensor>>::iterator iter) override;
+ void processResponse(std::shared_ptr<NVMeSensor>& sensor, void* msg,
+ size_t len) override;
private:
NVMeBasicContext(boost::asio::io_service& io, int rootBus, int cmdOut,
diff --git a/include/NVMeContext.hpp b/include/NVMeContext.hpp
index f8270f2..2489815 100644
--- a/include/NVMeContext.hpp
+++ b/include/NVMeContext.hpp
@@ -50,22 +50,18 @@
sensors.remove(sensor);
}
- virtual void pollNVMeDevices()
- {}
-
virtual void close()
{
scanTimer.cancel();
}
- virtual void readAndProcessNVMeSensor()
- {}
+ virtual void pollNVMeDevices() = 0;
- virtual void processResponse(void* msg, size_t len)
- {
- (void)msg;
- (void)len;
- }
+ virtual void readAndProcessNVMeSensor(
+ std::list<std::shared_ptr<NVMeSensor>>::iterator iter) = 0;
+
+ virtual void processResponse(std::shared_ptr<NVMeSensor>& sensor, void* msg,
+ size_t len) = 0;
protected:
boost::asio::deadline_timer scanTimer;