Cntm.Events


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

События - это механизм с помощью которого объект сервера оповещает объекты клиентов о наступлении какого либо события, связанного с сервером, например изменение состояния объекта сервера.

Сервер ничего не знает о клиентах, он просто предоставляет точку подключения обработчиков. Подключением и отключением обработчиков управляют клиенты.

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

Существуют два типа событий: прямые - Cntm::DirectEvent и отложенные - Cntm::DeferEvent. При использовании прямых событий запуск обработчиков происходит в момент генерации события. Но наибольший интерес представляют отложенные события, запуск обработчиков которых происходит не в момент генерации, а после завершения алгоритма, сгенерировавшего событие. Отложенные события являются мощным инструментом изоляции сервера от действий клиентов, которые они выполняют в своих обработчиках. Детальное описание отложенных и прямых событий приведено в Cntm::DeferEvent и Cntm::DirectEvent соответственно.

Для подключения обработчика к событию используется специальный объект связи - Cntm::EventLink. При создании связи указывается событие и обработчик, и задача связи состоит в том, чтобы подключить обработчик к событию. При разрушении связи происходит автоматическое отключение обработчика от события. Иногда удобно группировать подключения обработчиков к событиям. Для этого используется Cntm::EventLinksGroup. Создается один единственный объект группы, содержащий несколько связей, при его уничтожении происходит автоматическое отключение всех обработчиков, входящих в группу.

В событиях используется механизм подсчета ссылок, а в отложенных событиях - механизмы синхронизации.


Классы

class  Cntm::DeferEvent< SignatureT >
 Шаблонный класс отложенного синхронного (сериализованного) события. Подробнее...
class  Cntm::DirectEvent< SignatureT >
 Шаблонный класс обычного (прямого) события. Подробнее...
class  Cntm::EventLink
 Класс связи между событием и обработчиком. Подробнее...
class  Cntm::EventLinksGroup
 Класс группы связей между событием и обработчиком. Подробнее...


SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3