|  | 
|      | 
|  | 
| Class template signalBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
  
   | 
| Эффекты: | Инициализирует сигнал, не содержащий слотов, копирует данный комбинатор во внутреннее хранилище и сохраняет заданный объект функции сравнения групп для сравнения групп. | 
| Постусловия: | < | 
signal(signal&&other);>
Переместить конструктор.
| Постусловия: | Сигнал< | 
| Броски: | Не бросит | 
signal&operator=(signal&&rhs);>
Переместить назначение.
| Последующие условия: | Сигнал< | 
| Броски: | 
signal connection managementconnectionconnect(constslot_type&slot,connect_positionat=at_back); connectionconnect(constgroup_type&group,constslot_type&slot, connect_positionat=at_back);>
| Эффекты: | Подключает сигнал к входящему слоту. Если слот неактивен, т.е. любой из отслеживаемых объектов слотов был уничтожен, то вызов на соединение является безоперационным. Если используется вторая версия< | 
| Возвращается: | Объект< | 
| Броски: | Эта процедура соответствует строгой гарантии исключения, когда любое исключение приведет к тому, что слот не будет подключен к сигналу. | 
| Сложность: | Постоянное время при подключении слота без названия группы или логарифмического в количестве групп при подключении к конкретной группе. | 
| Примечания: | Не уточняется, приведет ли соединение слота во время вызова сигнала к немедленному вызову слота. | 
connectionconnect_extended(constextended_slot_type&slot, connect_positionat=at_back); connectionconnect_extended(constgroup_type&group, constextended_slot_type&slot, connect_positionat=at_back);>
Методы<connect_extended>работают так же, как методы<connect>, за исключением слотов типа<extended_slot_type>. Это полезно, если слот должен получить доступ к соединению между ним и сигналом, вызывающим его, например, если он хочет отключить или заблокировать свое собственное соединение.
voiddisconnect(constgroup_type&group); template<typenameS>voiddisconnect(constS&slot_func);>
| Эффекты: | Если параметр является (конвертируемым) именем группы, любые слоты в данной группе отключаются. В противном случае любые слоты, равные данной функции слота, отключаются. Обратите внимание, что аргумент< | 
| Броски: | Бросок не будет производиться, если не будет броска деструктора пользователя или оператора равенства< | 
| Сложность: | Если дана группа, O(lg g) + k, где g - число групп в сигнале и k - число слотов в группе. В противном случае линейно количество слотов, подключенных к сигналу. | 
voiddisconnect_all_slots();>
| Эффекты: | Отключает все слоты, подключенные к сигналу. | 
| < | |
| Броски: | Если отключение слота вызывает исключение, не все слоты могут быть отключены. | 
| Сложность: | Линейное число слотов, известных сигналу. | 
| Примечания: | Могут быть вызваны в любое время в течение срока действия сигнала, в том числе во время вызовов в слоты сигнала. | 
boolempty()const;>
| Возвращается: | < | 
| Бросает: | Не бросит. | 
| Сложность: | Линейный по числу слотов, известных сигналу. | 
| Обоснование: | Слоты могут отключаться в любой момент времени, в том числе при использовании тех же слотов. Поэтому возможно, что реализация должна искать через список отключенных слотов, чтобы определить, все ли слоты все еще подключены. | 
std::size_tnum_slots()const;>
| Возвращение: | Количество слотов, подключенных к сигналу | 
| Бросок: | |
| Сложность: | Линейное число слотов, известных сигналу. | 
| Обоснование: | Слоты могут отключаться в любой момент времени, в том числе при использовании тех же слотов. Поэтому возможно, что реализация должна искать через список отключенных слотов, чтобы определить, сколько слотов все еще подключены. | 
signal invocationresult_typeoperator()(arg<0>::typea1,arg<1>::typea2,..., arg<N-1>::typeaN); result_typeoperator()(arg<0>::typea1,arg<1>::typea2,..., arg<N-1>::typeaN)const;>
| Эффекты: | Взывает комбинатор с диапазоном< | 
| Возвращение: | Результат возвращается комбинатором. | 
| Броски: | Если исключение бросается вызовом слота или если комбинатор не отменяет какой-либо слот за некоторым заданным слотом, все слоты после этого слота во внутреннем списке подключенных слотов не будут вызываться. | 
| Примечания: | Будут задействованы только слоты, связанные с итераторами, которые фактически исключены. Множественные отступления одного и того же итератора не приведут к нескольким вызовам слота, потому что обратная стоимость слота будет кэшироваться. < | 
signal modifiersvoidswap(signal&other);>
Эффекты:
Переключает сигнал, указанный в<this>и<other>.
Не буду бросать.
signal specialized algorithmstemplate<typenameSignature,typenameCombiner,typenameGroup, typenameGroupCompare,typenameSlotFunction, typenameExtendedSlotFunction,typenameMutex> voidswap(signal<Signature,Combiner,Group,GroupCompare,SlotFunction,ExtendedSlotFunction,Mutex>&x, signal<Signature,Combiner,Group,GroupCompare,SlotFunction,ExtendedSlotFunction,Mutex>&y);>
| Эффекты: | < | 
| Броски: | Не буду бросать. | 
Статья Class template signal раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
| реклама |