Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class shared_connection_block

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class shared_connection_block

boost::signals2::shared_connection_block — Blocks a connection between a signal and a slot.

Synopsis

// In header: <boost/signals2/shared_connection_block.hpp>

class shared_connection_block {
public:
  // construct/copy/destruct
  shared_connection_block(const boost::signals2::connection & = connection(), 
                          bool = true);
  shared_connection_block(const boost::signals2::shared_connection_block &);
  shared_connection_block& 
  operator=(const boost::signals2::shared_connection_block &);
  ~shared_connection_block();
  // connection blocking
  void unblock();
  void block();
  bool blocking() const;
  // miscellaneous methods
  boost::signals2::connection connection() const;
};

Description

А.<shared_connection_block>объект блокирует соединение, предотвращая выполнение связанного слота при вызове связанного сигнала. Соединение будет оставаться заблокированным до тех пор, пока каждый<shared_connection_block>, который ссылается на соединение, не выпустит свой блок. А<shared_connection_block>освобождает свой блок, когда он разрушается, или его методразблокировкиназывается.

А.<shared_connection_block>Безопасно использовать даже послесигналов2::объект, из которого он был построен, был уничтожен или связь, на которую он ссылается, была отключена.

Обратите внимание, что блокировка соединения не гарантирует завершение выполнения соответствующего слота, если он уже находится в процессе запуска, когда блок соединения вступает в силу. Это похоже на поведение отключения, поскольку блокировка соединения не будет ждать, пока соответствующий слот соединения завершит выполнение. Эта ситуация может возникнуть в многопоточной среде, если блок соединения вступает в силу одновременно с вызовом сигнала, или в однопоточной среде, если слот блокирует собственное соединение.

shared_connection_block public construct/copy/destruct

  1. <
    shared_connection_block(constboost::signals2::connection&conn=connection(),
                           boolinitially_blocking=true);
    >

    Эффекты:

    Создает<shared_connection_block>, который может блокировать соединение, на которое ссылается<conn>.<shared_connection_block>первоначально блокирует соединение, если и только если<initially_blocking>параметр<true>. Блок соединения может быть высвобожден путем вызова методаразблокировкиили уничтожения объекта<shared_connection_block>.

    По умолчанию конструкция<shared_connection_block>приводит к<shared_connection_block>, который ссылается на соединение NULL. Такой<shared_connection_block>безопасен для использования, хотя и не особенно полезен, пока ему не назначен другой<shared_connection_block>, который ссылается на реальное соединение.

    Постусловия:

    <this->blocking() == initially_blocking>

  2. <
    shared_connection_block(constboost::signals2::shared_connection_block&other);
    >

    Эффекты:

    Копия создает<shared_connection_block>, который ссылается на ту же связь, что и<other>.

    Пост-условия:

    <this->blocking() == other.blocking()>

  3. <
    shared_connection_block& 
    operator=(constboost::signals2::shared_connection_block&rhs);
    >

    Делает<this>ссылку на ту же связь, что и<rhs>.

    Пост-условия:

    Броски:

  4. <
    ~shared_connection_block();
    >

    Эффекты:

    Еслиблокировка[] верна, высвобождает блок соединения.

shared_connection_block connection blocking

  1. <
    voidunblock();
    >

    Эффекты:

    Еслиблокировка() верна, высвобождает блок соединения. Обратите внимание, что соединение может оставаться заблокированным из-за других<shared_connection_block>объектов.

    Последующие условия:

    <this->blocking() == false>

  2. <
    voidblock();
    >

    Эффекты:

    Еслиблокировка() является ложной, повторно подтверждает блок на соединении.

    Последующие условия:

    <this->blocking() == true>

  3. <
    boolblocking()const;
    >

    Возврат:

    <true>, если<this>утверждает блок на соединении.

    Примечания:

    <this->blocking() == true>подразумевает<connection::blocked() == true>для соединения. Однако<this->blocking() == false>не обязательно подразумевает<connection::blocked() == false>, поскольку соединение может быть заблокировано другим<shared_connection_block>объектом.

shared_connection_block miscellaneous methods

  1. <
    boost::signals2::connectionconnection()const;
    >

    Возврат:

    Объект соединения для соединения, на который ссылается<this>.


PrevUpHomeNext

Статья Class shared_connection_block раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 01:50:25/0.0064001083374023/1