1#ifndef _PAINLESS_MESH_CALLBACK_HPP_
2#define _PAINLESS_MESH_CALLBACK_HPP_
17template <
typename... Args>
56template <
typename... Args>
62 void onPackage(
int id, std::function<
void(Args...)> func) {
64 (*pendingCallbackMap)[id].push_back(func);
66 (*callbackMap)[id].push_back(func);
73 for (
auto&& key_value : *generation) {
74 size += key_value.second.size();
82 auto it = generation->find(
id);
83 return it == generation->end() ? 0 : it->second.size();
104 auto result = (*generation)[id].execute(args...);
116 std::shared_ptr<CallbackMap>
callbackMap = std::make_shared<CallbackMap>();
Definition callback.hpp:18
void clear()
Definition callback.hpp:29
size_t size()
Definition callback.hpp:27
int execute(Args... args)
Definition callback.hpp:20
std::list< std::function< void(Args...)> > callbacks
Definition callback.hpp:50
void push_back(std::function< void(Args...)> func)
Definition callback.hpp:45
Definition callback.hpp:57
size_t size()
Definition callback.hpp:70
size_t count(int id)
Definition callback.hpp:80
int execute(int id, Args... args)
Definition callback.hpp:98
void onPackage(int id, std::function< void(Args...)> func)
Definition callback.hpp:62
std::shared_ptr< CallbackMap > pendingCallbackMap
Definition callback.hpp:120
std::shared_ptr< CallbackMap > callbackMap
Definition callback.hpp:116
std::map< int, List< Args... > > CallbackMap
Definition callback.hpp:115
bool clearPending
Definition callback.hpp:122
size_t dispatchDepth
Definition callback.hpp:121
void clear()
Definition callback.hpp:86