ModernCPlusPlusDemo
载入中...
搜索中...
未找到
| Public 类型 | Public 成员函数 | Private 属性 | 所有成员列表
Subject< Args > 模板类 参考

#include <Observer.hpp>

struct  ObserverWrapper
 

Public 类型

using Observer = std::function< void(Args...)>
 
using ObserverId = size_t
 

Public 成员函数

ObserverId addObserver (Observer observer)
 
bool removeObserver (ObserverId id)
 
void notify (Args... args) const
 
void clearObservers ()
 
size_t observerCount () const
 
std::optional< ObserverIdfindObserver (const Observer &observer) const
 

Private 属性

std::shared_mutex mutex_
 
std::vector< ObserverWrapperobservers_
 
ObserverId nextObserverId_ = 0
 

成员类型定义说明

◆ Observer

template<typename... Args>
using Subject< Args >::Observer = std::function<void(Args...)>

◆ ObserverId

template<typename... Args>
using Subject< Args >::ObserverId = size_t

成员函数说明

◆ addObserver()

template<typename... Args>
ObserverId Subject< Args >::addObserver ( Observer  observer)
inline

◆ clearObservers()

template<typename... Args>
void Subject< Args >::clearObservers ( )
inline

◆ findObserver()

template<typename... Args>
std::optional< ObserverId > Subject< Args >::findObserver ( const Observer observer) const
inline

◆ notify()

template<typename... Args>
void Subject< Args >::notify ( Args...  args) const
inline

◆ observerCount()

template<typename... Args>
size_t Subject< Args >::observerCount ( ) const
inline

◆ removeObserver()

template<typename... Args>
bool Subject< Args >::removeObserver ( ObserverId  id)
inline

类成员变量说明

◆ mutex_

template<typename... Args>
std::shared_mutex Subject< Args >::mutex_
mutableprivate

◆ nextObserverId_

template<typename... Args>
ObserverId Subject< Args >::nextObserverId_ = 0
private

◆ observers_

template<typename... Args>
std::vector<ObserverWrapper> Subject< Args >::observers_
private

该类的文档由以下文件生成: