EventSource - класс
Представляет негибкое событие. Функции-члены EventSource
добавляют, удаляют и вызывают обработчики событий. Для гибких событий используйте AgileEventSource.
Синтаксис
template<typename TDelegateInterface>
class EventSource;
Параметры
TDelegateInterface
Интерфейс делегата, представляющего обработчик событий.
Участники
Открытые конструкторы
Имя | Описание |
---|---|
EventSource::EventSource | Инициализирует новый экземпляр класса EventSource . |
Открытые методы
Имя | Описание |
---|---|
EventSource::Add | Добавляет обработчик событий, представленный указанным интерфейсом делегата, к набору обработчиков событий для текущего EventSource объекта. |
EventSource::GetSize | Извлекает количество обработчиков событий, связанных с текущим EventSource объектом. |
EventSource::InvokeAll | Вызывает каждый обработчик событий, связанный с текущим EventSource объектом, с помощью указанных типов аргументов и аргументов. |
EventSource::Remove | Удаляет обработчик событий, представленный указанным маркером регистрации событий из набора обработчиков событий, связанных с текущим EventSource объектом. |
Защищенные члены данных
Имя | Описание |
---|---|
EventSource::addRemoveLock_ | Синхронизирует доступ к массиву targets_ при добавлении, удалении или вызове обработчиков событий. |
EventSource::targets_ | Массив одного или нескольких обработчиков событий. |
EventSource::targetsPointerLock_ | Синхронизирует доступ к внутренним членам данных, даже если обработчики событий для этого EventSource добавляются, удаляются или вызываются. |
Иерархия наследования
EventSource
Требования
Заголовок: event.h
Пространство имен: Microsoft::WRL
EventSource::Add
Добавляет обработчик событий, представленный указанным интерфейсом делегата, к набору обработчиков событий для текущего EventSource
объекта.
HRESULT Add(
_In_ TDelegateInterface* delegateInterface,
_Out_ EventRegistrationToken* token
);
Параметры
делегатInterface
Интерфейс для объекта делегата, который представляет обработчик событий.
token
После завершения операции представляет дескриптор события. Используйте этот маркер в качестве параметра для метода Remove(), чтобы отменить обработчик событий.
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, указывающее на ошибку.
EventSource::addRemoveLock_
Синхронизирует доступ к массиву targets_ при добавлении, удалении или вызове обработчиков событий.
Wrappers::SRWLock addRemoveLock_;
EventSource::EventSource
Инициализирует новый экземпляр класса EventSource
.
EventSource();
EventSource::GetSize
Извлекает количество обработчиков событий, связанных с текущим EventSource
объектом.
size_t GetSize() const;
Возвращаемое значение
Количество обработчиков событий в targets_.
EventSource::InvokeAll
Вызывает каждый обработчик событий, связанный с текущим EventSource
объектом, с помощью указанных типов аргументов и аргументов.
void InvokeAll();
template <
typename T0
>
void InvokeAll(
T0arg0
);
template <
typename T0,
typename T1
>
void InvokeAll(
T0arg0,
T1arg1
);
template <
typename T0,
typename T1,
typename T2
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2
);
template <
typename T0,
typename T1,
typename T2,
typename T3
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6,
T7arg7
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6,
T7arg7,
T8arg8
);
template <
typename T0,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9
>
void InvokeAll(
T0arg0,
T1arg1,
T2arg2,
T3arg3,
T4arg4,
T5arg5,
T6arg6,
T7arg7,
T8arg8,
T9arg9
);
Параметры
T0
Тип нулевого аргумента обработчика событий.
T1
Тип первого аргумента обработчика событий.
T2
Тип второго аргумента обработчика событий.
T3
Тип третьего аргумента обработчика событий.
T4
Тип четвертого аргумента обработчика событий.
T5
Тип пятого аргумента обработчика событий.
T6
Тип шестого аргумента обработчика событий.
T7
Тип седьмого аргумента обработчика событий.
T8
Тип восьмого аргумента обработчика событий.
T9
Тип девятого аргумента обработчика событий.
arg0
Нулевой аргумент обработчика событий.
arg1
Первый аргумент обработчика событий.
arg2
Второй аргумент обработчика событий.
arg3
Третий аргумент обработчика событий.
arg4
Четвертый аргумент обработчика событий.
arg5
Пятый аргумент обработчика событий.
arg6
Шестой аргумент обработчика событий.
arg7
Седьмой аргумент обработчика событий.
arg8
Восьмой аргумент обработчика событий.
arg9
Девятый аргумент обработчика событий.
EventSource::Remove
Удаляет обработчик событий, представленный указанным маркером регистрации событий из набора обработчиков событий, связанных с текущим EventSource
объектом.
HRESULT Remove(
EventRegistrationToken token
);
Параметры
token
Дескриптор, представляющий обработчик событий. Этот маркер был возвращен при регистрации обработчика событий методом Add( ).
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, указывающее на ошибку.
Замечания
Дополнительные сведения о EventRegistrationToken
структуре см. в разделе "Структура Windows::Foundation::EventRegistrationToken" в справочной документации по среда выполнения Windows.
EventSource::targets_
Массив одного или нескольких обработчиков событий.
ComPtr<Details::EventTargetArray> targets_;
Замечания
При возникновении события, представленного текущим EventSource
объектом, вызываются обработчики событий.
EventSource::targetsPointerLock_
Синхронизирует доступ к внутренним элементам данных даже при добавлении, удалении или вызове обработчиков EventSource
событий.
Wrappers::SRWLock targetsPointerLock_;