9#include <unordered_map>
27 std::vector<Datum>
Emit(
const std::vector<Datum>& args);
36 void CleanupDeadConnections();
38 std::unordered_map<NodePtrWeak, SignalBusHandlerFunc> mConnectionMap;
39 std::vector<std::pair<NodePtrWeak, SignalBusHandlerFunc>> mPendingConnects;
40 std::vector<NodePtrWeak> mPendingDisconnects;
41 bool mEmitting =
false;
48 std::vector<Datum> Emit(
const std::string& name,
const std::vector<Datum>& args = {});
51 void Subscribe(
const std::string& name,
Node* listener,
const ScriptFunc& func);
52 void Unsubscribe(
const std::string& name,
Node* listener);
57 std::unordered_map<std::string, SignalBusChannel> mSignalMap;
Export macros for Polyphase Engine symbols.
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Datum(* SignalBusHandlerFP)(Node *listener, const std::vector< Datum > &args)
Definition SignalBus.h:13
POLYPHASE_API SignalBus * GetSignalBus()
Definition SignalBus.cpp:7
void(* SignalBusHandlerVoidFP)(Node *listener, const std::vector< Datum > &args)
Definition SignalBus.h:14
Definition ScriptFunc.h:10
Definition SignalBus.h:24
std::vector< Datum > Emit(const std::vector< Datum > &args)
Definition SignalBus.cpp:12
void Clear()
Definition SignalBus.cpp:163
Definition SignalBus.h:45
Definition SignalBus.h:17
ScriptFunc mScriptFunc
Definition SignalBus.h:20
SignalBusHandlerVoidFP mVoidFuncPointer
Definition SignalBus.h:19
SignalBusHandlerFP mFuncPointer
Definition SignalBus.h:18