Class trackable
boost::signals2::trackable — Provided to ease porting for code using the boost::signals::trackable class from
the original Boost.Signals library.
Synopsis
Description
Использование класса<trackable>не рекомендуется для нового кода. Класс<trackable>не является безвредным, поскольку<trackable>объекты отключают связанные с ними соединения в<trackable>деструкторе. Поскольку деструктор не работает до тех пор, пока не будут завершены деструкторы любых производных классов, остается открытым окно, в котором частично разрушенный объект все еще может иметь активные соединения.
Предпочтительный метод автоматического управления соединением с Boost. Сигналы2 предназначены для управления временем жизни отслеживаемых объектов с помощью<shared_ptr>с и использованиясигналов2::slot::trackдля отслеживания их жизни.
Класс<trackable>обеспечивает автоматическое отключение сигналов и слотов, когда объекты, связанные в слотах (через указатель или ссылку), разрушаются.<trackable>Класс может использоваться только в качестве общедоступного базового класса для какого-либо другого класса; при использовании в качестве такового этот класс может быть связан с функциями объектов, используемых как часть слотов. Способ, которым объект<trackable>отслеживает набор соединений сигнал-слота, частью которого он является, не определен.
Фактическое использование<trackable>зависит от наличия соответствующихvisit_eachперегрузок для любого типа, которые могут содержать указатели или ссылки на отслеживаемые объекты.
trackable
public
construct/copy/destruct
- <
trackable();
>Эффекты: | Устанавливает список подключенных слотов на пустые. |
Броски: | Бросок не будет. |
- <
trackable(consttrackable&other);
>Эффекты: | Устанавливает список подключенных слотов пустым. |
Броски: | Бросок не будет. |
Обоснование: | Соединения сигнального слота могут быть созданы только посредством вызовов к явному способу соединения, и поэтому не могут быть созданы здесь при копировании отслеживаемых объектов. |
- <
trackable&operator=(consttrackable&other);
>Эффекты: | Устанавливает список подключенных слотов пустым. |
Возврат: | <*this> |
Бросок:
|
Обоснование: | Соединения слота сигнала могут быть созданы только посредством вызовов явного метода соединения, и поэтому не могут быть созданы здесь при копировании отслеживаемых объектов. |
- <
~trackable();
>Эффекты: | Отключает все соединения сигнал/слот, которые содержат указатель или ссылку на этот отслеживаемый объект, который может быть найденvisit_each. |