-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changed Field Fix #82
Conversation
@@ -289,6 +289,7 @@ static void testMasterField(PVRecordPtr const& pvRecord) | |||
cout << "Master PV structure from copy" << endl << *pvMasterField << endl; | |||
cout << "Master PV structure from copy offset " << pvMasterField->getFieldOffset() << endl; | |||
} | |||
testOk1(pvCopy->isMasterFieldRequested()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This only appears to test that PVCopy detects when the master field is requested, showing the changes to PVCopy and pvRecord. How about adding tests for the behavior fix described in the intro to this PR, which appears to have been implemented in MonitorLocal::dataPut()
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New set of tests have been added that verify correct behavior of the changed set.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
This PR resolves issue with changed field set in the case where the top level (master) field ("_") is not requested by the client, but the master field callback causes all fields to be marked as updated, rather than only those fields that have actually been modified. The example below shows how the code works with this PR: the PV structure contains 4 fields, with the field 'z' the only one not being updated on the server side, and this is indicated correctly using pvmonitor and printing only fields that changed (after the initial update):
Without this fix, all fields would be marked as updated.