#include <pubsub.hpp>
Открытые члены | |
Subscriber () | |
Создает объект. | |
virtual | ~Subscriber () |
Проходит по списку издателей и отписывается от каждого из них. | |
virtual bool | regularMsg (const Publisher< M > &pub, const M &msg) |
Данная функция может быть переопределена пользователем для обработки сообщений издателя, посылаемых им из send(). | |
virtual void | subscribedMsg (const Publisher< M > &pub) |
Данная функция может быть переопределена пользователем для получения сообщений о подписке. | |
virtual void | unsubscribedMsg (const Publisher< M > &pub) |
Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки. | |
Закрытые типы | |
typedef std::list< Publisher< M > * > | list_type |
определение типа для краткости | |
Закрытые члены | |
Subscriber (const Subscriber &) | |
запрещаем копирование. | |
Subscriber & | operator= (const Subscriber &) |
запрещаем присваивание. | |
Закрытые данные | |
list_type | pubs |
список издателей, на сообщения которых подписан данный подписчик | |
Друзья | |
class | Publisher< M > |
Пользователь должен создать производный класс и переопределить виртуальные функции, соответствующие тем сообщениям, которые он хочет получать. Класс Subscriber автоматически ведет список всех издателей, на сообщения которых он подписан, для корректной отписки в деструкторе.
См. определение в файле pubsub.hpp строка 136
|
определение типа для краткости
См. определение в файле pubsub.hpp строка 140 |
|
запрещаем копирование.
|
|
Создает объект.
См. определение в файле pubsub.hpp строка 153
00153 {} |
|
Проходит по списку издателей и отписывается от каждого из них. Переопределенная пользователем Функция unsubscribedMsg() при этом не вызывается. См. определение в файле pubsub.hpp строка 255 Перекрестные ссылки Subscriber< M >::pubs.
|
|
запрещаем присваивание.
|
|
Данная функция может быть переопределена пользователем для обработки сообщений издателя, посылаемых им из send(). Если она вернет false, то подписчик будет сразу же отписан (с вызовом unsubscribedMsg()). Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные regularMsg(), будут проигнорированы. Переопределяется в Finder, Finder, Logger, Logger, Logger и Sub. См. определение в файле pubsub.hpp строка 264 Используется в Publisher< M >::send().
00265 {
00266 return 1;
00267 }
|
|
Данная функция может быть переопределена пользователем для получения сообщений о подписке. Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные subscribedMsg(), будут проигнорированы. Переопределяется в Sub. См. определение в файле pubsub.hpp строка 270 Используется в Publisher< M >::subscribe().
00271 { 00272 } |
|
Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки. Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные unsubscribedMsg(), будут проигнорированы. Переопределяется в Sub. См. определение в файле pubsub.hpp строка 275 Используется в Publisher< M >::unsubscribe() и Publisher< M >::~Publisher().
00276 { 00277 } |
|
список издателей, на сообщения которых подписан данный подписчик
См. определение в файле pubsub.hpp строка 142 Используется в Publisher< M >::subscribe(), Publisher< M >::unsubscribe(), Publisher< M >::~Publisher() и Subscriber< M >::~Subscriber(). |