LeviLamina
Loading...
Searching...
No Matches
ThreadingPublisherBase.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/utility/pub_sub/detail/FastDispatchPublisherBase_MultiThreaded.h"
5#include "mc/deps/core/utility/pub_sub/detail/FastDispatchPublisherBase_SingleThreaded.h"
6#include "mc/deps/core/utility/pub_sub/thread_model/MultiThreaded.h"
7
8namespace Bedrock::PubSub::Detail {
9
10template <typename ThreadModel>
12
13template <>
14struct FastDispatchBaseSelector<ThreadModel::SingleThreaded> {
16};
17
18template <>
19struct FastDispatchBaseSelector<ThreadModel::MultiThreaded> {
21};
22
23template <typename ThreadModel>
24using FastDispatchPublisherBase = FastDispatchBaseSelector<ThreadModel>::type;
25
26template <typename ThreadingModel>
27class ThreadingPublisherBase : public FastDispatchPublisherBase<ThreadingModel> {
28protected:
29 void _disconnect(SubscriptionBodyBase&) override;
30};
31
32} // namespace Bedrock::PubSub::Detail
Definition FastDispatchPublisherBase_MultiThreaded.h:16
Definition FastDispatchPublisherBase_SingleThreaded.h:13
Definition SubscriptionBodyBase.h:20
Definition ThreadingPublisherBase.h:27
Definition ThreadingPublisherBase.h:11