title: tk::EventHub summary: メッセージ型ごとの超軽量 Pub/Sub ディスパッチャ
メッセージ型ごとの超軽量 Pub/Sub ディスパッチャ More...
#include <actor.hpp>
| Name | |
|---|---|
| bool | subscribe(void * actor, bool(*)(void *, const MsgType &) post_fn) Actor をこのメッセージ型の購読者として登録します |
| bool | unsubscribe(void * actor) Actor の購読登録を解除します |
| size_t | publish(const MsgType & msg) このメッセージ型を購読しているすべての Actor へ同報配信します |
| size_t | subscriber_count() |
template <typename MsgType ,
size_t MaxSubscribers =4>
class tk::EventHub;
メッセージ型ごとの超軽量 Pub/Sub ディスパッチャ
Template Parameters:
テンプレート引数 MsgType ごとにコンパイル時解決される静的レジストリです。 実行時の型検索オーバーヘッドゼロ、動的メモリ確保ゼロで動作します。
static inline bool subscribe(
void * actor,
bool(*)(void *, const MsgType &) post_fn
)
Actor をこのメッセージ型の購読者として登録します
Parameters:
Return: true 登録成功, false 購読者上限に達した
static inline bool unsubscribe(
void * actor
)
Actor の購読登録を解除します
Parameters:
Return: true 解除成功, false 未登録
static inline size_t publish(
const MsgType & msg
)
このメッセージ型を購読しているすべての Actor へ同報配信します
Parameters:
Return: size_t 配信に成功した Actor の数
static inline size_t subscriber_count()
現在の購読者数を取得
Updated on 2026-10-02 at 14:01:32 +0900