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

#include <EventBus.hpp>

struct  Subscriber
 

Public 类型

using SubscriptionId = size_t
 

Public 成员函数

template<typename EventType , typename Callback >
SubscriptionId subscribe (Callback &&callback)
 
template<typename EventType >
void publish (const EventType &event) const
 
template<typename EventType >
void unsubscribeAll ()
 
void unsubscribe (SubscriptionId id)
 

Private 类型

using SubscriberList = std::vector< Subscriber >
 

Private 属性

std::shared_mutex mutex_
 
std::unordered_map< std::type_index, SubscriberListsubscribers_
 
SubscriptionId nextSubscriptionId_ = 0
 

成员类型定义说明

◆ SubscriberList

template<typename EventBaseType >
using EventBus< EventBaseType >::SubscriberList = std::vector<Subscriber>
private

◆ SubscriptionId

template<typename EventBaseType >
using EventBus< EventBaseType >::SubscriptionId = size_t

成员函数说明

◆ publish()

template<typename EventBaseType >
template<typename EventType >
void EventBus< EventBaseType >::publish ( const EventType &  event) const
inline

◆ subscribe()

template<typename EventBaseType >
template<typename EventType , typename Callback >
SubscriptionId EventBus< EventBaseType >::subscribe ( Callback &&  callback)
inline

◆ unsubscribe()

template<typename EventBaseType >
void EventBus< EventBaseType >::unsubscribe ( SubscriptionId  id)
inline

◆ unsubscribeAll()

template<typename EventBaseType >
template<typename EventType >
void EventBus< EventBaseType >::unsubscribeAll ( )
inline

类成员变量说明

◆ mutex_

template<typename EventBaseType >
std::shared_mutex EventBus< EventBaseType >::mutex_
mutableprivate

◆ nextSubscriptionId_

template<typename EventBaseType >
SubscriptionId EventBus< EventBaseType >::nextSubscriptionId_ = 0
private

◆ subscribers_

template<typename EventBaseType >
std::unordered_map<std::type_index, SubscriberList> EventBus< EventBaseType >::subscribers_
private

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