Type: User Story
Priority: P3: Somewhat important
Resolution: Out of scope
Affects Version/s: None
Fix Version/s: None
The current 2-stage construction is for the benefit of QML and should be removed.
There should be a factory method that takes whatever information is required (eg. type, driver) and returns a pointer.
This will be a sub-class of QSensor though the exact details have not been determined yet.
The class will already be "connected" to a driver. Failure to connect to a driver will result in NULL being returned.
Creating sensor objects on the heap will not be allowable anymore. Use a scoped pointer for that use-case.
This should be implemented and unit tested. If the QML C++ classes have already been created, they'll need to be updated.
Using "instance" as the method name will conveniently remove from people's minds the idea that they can have multiple of these. Since we don't really want to support multiple sensors of the same type in an app, this seems like a good side-effect.
The constructors must be private (or more likely protected, since we want the backend to be a sub-class of the interface class).
A source-compatible implementation could be done but it would require the use of exceptions or extra code to deal with a "non-functioning sensors object".
How can we unit test this?
How can we document this?