+ std::shared_ptr<SessionObserver> const session_observer;
does it really need to be shared? Couldn't the ConfigChanger keep a unique_ptr, and pass the raw pointer to the event register/sink?
Admittedly that probably causes more a lot more code churn.
+ std::shared_ ptr<SessionObse rver> const session_observer;
does it really need to be shared? Couldn't the ConfigChanger keep a unique_ptr, and pass the raw pointer to the event register/sink?
Admittedly that probably causes more a lot more code churn.
Rest looks fine to me