|
SVCS - Русская документация
|
Интерфейс Subject (Издатель) (Абстрактный Базовый Класс). Подробнее...
#include <ISubject.hxx>
Открытые члены | |
| virtual | ~ISubject ()=default |
| Виртуальный деструктор. | |
| virtual void | attach (std::shared_ptr< IObserver > observer)=0 |
| Прикрепляет наблюдателя к субъекту. | |
| virtual void | detach (std::shared_ptr< IObserver > observer)=0 |
| Открепляет наблюдателя от субъекта. | |
| virtual void | notify (const Event &event) const =0 |
| Уведомляет всех прикрепленных наблюдателей о событии. | |
Защищенные данные | |
| std::vector< IObserver * > | observers |
| Коллекция зарегистрированных наблюдателей. | |
Интерфейс Subject (Издатель) (Абстрактный Базовый Класс).
Основные классы (например, Repository, EventBus) реализуют этот интерфейс, чтобы позволить наблюдателям подписываться на события. Контракт требует, чтобы все функции управления (attach, detach) обрабатывали std::shared_ptr<IObserver>.
|
virtualdefault |
Виртуальный деструктор.
Обеспечивает корректную очистку производных классов субъектов.
|
pure virtual |
Прикрепляет наблюдателя к субъекту.
| observer | Умный указатель на объект наблюдателя для прикрепления. |
Замещается в svcs::core::Repository, svcs::services::EventBus, svcs::test::cli::mocks::MockSubject, svcs::test::cli::utils::MockSubject, svcs::test::core::MockSubject, svcs::test::core::MockSubject, svcs::test::server::MockEventBus, svcs::test::server::SimpleEventBus, svcs::test::server::SimpleEventBus и svcs::test::server::TestEventBus.
|
pure virtual |
Открепляет наблюдателя от субъекта.
| observer | Умный указатель на объект наблюдателя для открепления. |
Замещается в svcs::core::Repository, svcs::services::EventBus, svcs::test::cli::mocks::MockSubject, svcs::test::cli::utils::MockSubject, svcs::test::core::MockSubject, svcs::test::core::MockSubject, svcs::test::server::MockEventBus, svcs::test::server::SimpleEventBus, svcs::test::server::SimpleEventBus и svcs::test::server::TestEventBus.
|
pure virtual |
Уведомляет всех прикрепленных наблюдателей о событии.
Этот метод сделан публичным, чтобы классы компонентов (как ObjectStorage) могли публиковать события через внедренный указатель ISubject. Метод объявлен как const, потому что уведомление о событии является логически неизменяющим действием над состоянием Subject.
| event | Константная ссылка на структуру события для отправки. |
Замещается в svcs::core::Repository, svcs::services::EventBus, svcs::test::cli::mocks::MockSubject, svcs::test::cli::utils::MockSubject, svcs::test::core::mocks::MockSubject, svcs::test::core::MockSubject, svcs::test::core::MockSubject, svcs::test::server::MockEventBus, svcs::test::server::SimpleEventBus, svcs::test::server::SimpleEventBus, svcs::test::server::ssh::MockEventBus и svcs::test::server::TestEventBus.