Полезный тест:
может кодировать только с помощью const
доступа к экземпляру устройства, мешать работе кода с не-const
доступом
В принципе, const
доступ означает, что вы фактически являетесь наблюдателем. Здесь выглядит так, как если бы код, вызывающий set_request(...)
в момент времени T1, тогда get_response()
в момент времени T3 был бы серьезно испорчен, если бы некоторый предполагаемый наблюдатель вызвал set_request()
с другими параметрами в момент времени T2. По этой причине set_request(...)
не должен быть доступен для наблюдателей - он должен быть не const
.
(В тесте есть предостережения - например, если const
«наблюдатель» нуждается в блокировке, он, очевидно, может повлиять на использование не const
из другого потока с точки зрения синхронизации, но не должен делать это с функциональной точки зрения. - но совершенно очевидно, как учесть это в вашем анализе).