18 : manager_ (&manager), port_uuid_ (port.get_uuid ()),
19 id_ (manager.register_request (port))
25 if (manager_ !=
nullptr && id_ >= 0)
26 manager_->unregister_request (id_);
29 ObservationToken (
const ObservationToken &) =
delete;
30 ObservationToken &operator= (
const ObservationToken &) =
delete;
32 ObservationToken (ObservationToken &&other) noexcept
33 : manager_ (other.manager_), port_uuid_ (other.port_uuid_), id_ (other.id_)
35 other.manager_ =
nullptr;
39 ObservationToken &operator= (ObservationToken &&other)
noexcept
43 if (manager_ !=
nullptr && id_ >= 0)
44 manager_->unregister_request (id_);
45 manager_ = other.manager_;
46 port_uuid_ = other.port_uuid_;
48 other.manager_ =
nullptr;
54 PortUuid port_uuid ()
const {
return port_uuid_; }
58 if (manager_ ==
nullptr)
59 throw std::runtime_error (
"ObservationToken: manager destroyed");
60 return manager_->cache (id_);
64 QPointer<PortObservationManager> manager_;
66 PortObservationManager::RegistrationId id_;