Титульная страница   Пространства имен   Иерархия классов   Алфавитный указатель   Классы   Файлы   Члены пространства имен   Члены классов   Члены файла  

Структура PubSub_private::PubImpl

Часть класса Publisher<M>, не зависящая от параметра шаблона M. Подробнее...

#include <pubsub.hpp>

Полный список членов класса

Открытые типы

typedef std::list< void * > list_type
 определение типа для краткости


Открытые члены

bool subscribe (void *sub)
 добавляет нового подписчика

bool unsubscribe (void *sub)
 удаляет подписчика

bool isSubscribed (void *sub) const
 отвечает был ли уже подписан

int subCount () const
 возвращает количество подписчиков


Открытые атрибуты

list_type subs
 список подписчиков


Подробное описание

Часть класса Publisher<M>, не зависящая от параметра шаблона M.

Вынесена в отдельный класс для уменьшения количества кода, генерируемого компилятором по шаблону.

См. определение в файле pubsub.hpp строка 31


Определения типов

typedef std::list<void*> PubSub_private::PubImpl::list_type
 

определение типа для краткости

См. определение в файле pubsub.hpp строка 33


Методы

bool PubSub_private::PubImpl::isSubscribed void *  sub  )  const
 

отвечает был ли уже подписан

См. определение в файле pubsub.cpp строка 37

Перекрестные ссылки subs.

Используется в subscribe().

00038 {
00039  for (list_type::const_iterator cit=subs.begin(), cend=subs.end(); cit!=cend;
00040       ++cit) {
00041      if (*cit==sub) return 1;
00042  }
00043 
00044  return 0;
00045 }

int PubSub_private::PubImpl::subCount  )  const [inline]
 

возвращает количество подписчиков

См. определение в файле pubsub.hpp строка 47

00047 { return subs.size(); }

bool PubSub_private::PubImpl::subscribe void *  sub  ) 
 

добавляет нового подписчика

См. определение в файле pubsub.cpp строка 17

Перекрестные ссылки isSubscribed() и subs.

Используется в Publisher< M >::subscribe().

00018 {
00019  if (isSubscribed(sub)) return 0;
00020 
00021  subs.push_back(sub);
00022  return 1;
00023 }

bool PubSub_private::PubImpl::unsubscribe void *  sub  ) 
 

удаляет подписчика

См. определение в файле pubsub.cpp строка 25

Перекрестные ссылки subs.

Используется в Publisher< M >::unsubscribe().

00026 {
00027  for (list_type::iterator it=subs.begin(), end=subs.end(); it!=end; ++it) {
00028      if (*it==sub) {
00029         subs.erase(it);
00030         return 1;
00031      }
00032  }
00033 
00034  return 0;
00035 }


Данные класса

list_type PubSub_private::PubImpl::subs
 

список подписчиков

См. определение в файле pubsub.hpp строка 35

Используется в isSubscribed(), Publisher< M >::send(), subscribe(), unsubscribe() и Publisher< M >::~Publisher().


Объявления и описания членов структур находятся в файлах:
Документация по ftext. Последние изменения: Sat Mar 20 17:58:16 2004. Создано системой doxygen1.3