Fix getOutputReport, getInputReport and getFeatureReport: not being able to create more than one report + temporal coupling #812
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fix is related to Issue #805 in the
NimBLEHIDDeviceclass.What fixes:
getXXXXXReport()in any order.Fix description:
A new private method is introduced:
locateReportCharacteristicById(): given areportID, it returns the characteristic if already created, nullptr otherwise.getXXXXXReport()tries to locate the characteristic. If found, it is returned "as is". If not found, it is created and returned.Drawbacks:
There is a computational overhead. The user should store/cache the value returned by
getXXXXXReport()instead of repeating the calls. Perhaps we should warn about this in the documentation.