16 #include "actor_model_generated.h" 18 #include "delegate.hpp" 21 #include <experimental/string_view> 23 #include <unordered_map> 25 #include "freertos/FreeRTOS.h" 26 #include "freertos/timers.h" 31 using Time = std::chrono::milliseconds;
51 flatbuffers::DetachedBuffer&& _buf,
52 const bool _is_recurring,
53 const TimerHandle_t _timer_handle
56 ,
buf(std::move(_buf))
63 flatbuffers::DetachedBuffer
buf;
98 using TimedSignals = std::unordered_map<SignalRef, TimedBufferDelivery>;
110 const Pid& _initial_link_pid,
118 const bool flag_setting
204 const MaybePid& _initial_link_pid = std::experimental::nullopt,
211 auto signal(
const Pid& pid, flatbuffers::DetachedBuffer&& signal_buf)
220 flatbuffers::DetachedBuffer&& message_buf,
221 const bool is_recurring =
false size_t SignalRef
Definition: node.h:34
FunctionRegistry function_registry
Definition: node.h:228
TimedSignals timed_signals
Definition: node.h:233
bool is_recurring
Definition: node.h:64
delegate< void(ProcessExecutionConfigBuilder &)> ExecConfigCallback
Definition: node.h:30
Definition: behaviour.h:30
auto start_timer(const Time time, const Pid &pid, flatbuffers::DetachedBuffer &&message_buf, const bool is_recurring=false) -> TRef
Definition: node.cpp:278
ModuleRegistry module_registry
Definition: node.h:227
ProcessRegistry process_registry
Definition: node.h:224
auto send_after(const Time time, const Pid &pid, const Message &message) -> TRef
Definition: node.cpp:182
auto spawn(const Behaviour &&_behaviour, const ExecConfigCallback &&_exec_config_callback) -> Pid
Definition: node.cpp:54
auto _spawn(const Behaviour &&_behaviour, const MaybePid &_initial_link_pid=std::experimental::nullopt, const ExecConfigCallback &&_exec_config_callback=nullptr) -> Pid
Definition: node.cpp:79
auto unregister(const string_view name) -> bool
Definition: node.cpp:615
auto signal(const Pid &pid, flatbuffers::DetachedBuffer &&signal_buf) -> SignalRef
Definition: node.cpp:333
auto spawn_link(const Pid &_initial_link_pid, const Behaviour &&_behaviour, const ExecConfigCallback &&_exec_config_callback) -> Pid
Definition: node.cpp:66
size_t TRef
Definition: node.h:33
std::experimental::optional< Pid > MaybePid
Definition: pid.h:20
int TTL
Definition: node.h:35
auto module(const string_view module_flatbuffer) -> bool
Definition: node.cpp:693
Process::Reason Reason
Definition: actor_model.cpp:17
auto exit(const Pid &pid, const Pid &pid2, const Reason exit_reason) -> bool
Definition: node.cpp:468
auto cancel(const TRef tref) -> bool
Definition: node.cpp:381
auto whereis(const string_view name) -> MaybePid
Definition: node.cpp:681
auto registered() -> const NamedProcessRegistry
Definition: node.cpp:675
flatbuffers::DetachedBuffer buf
Definition: node.h:63
constexpr TRef NullTRef
Definition: node.h:43
Definition: actor_model.fbs:27
std::unordered_map< string, ModuleFlatbuffer > ModuleRegistry
Definition: node.h:91
std::string string
Definition: oom_killer_actor_behaviour.cpp:24
std::experimental::string_view string_view
Definition: actor_model.cpp:16
ProcessFlag
Definition: actor_model.fbs:22
TimerHandle_t timer_handle
Definition: node.h:65
auto register_name(const string_view name, const Pid &pid) -> bool
Definition: node.cpp:608
UUID::UUID Pid
Definition: pid.h:19
std::unordered_map< TRef, TimedBufferDelivery > TimedMessages
Definition: node.h:97
std::vector< uint8_t > FunctionMutableFlatbuffer
Definition: node.h:41
Node()
Definition: node.cpp:49
Pid pid
Definition: node.h:62
std::unordered_map< Pid, ProcessPtr, UUID::UUIDHashFunc, UUID::UUIDEqualFunc > ProcessRegistry
Definition: node.h:85
std::chrono::milliseconds Time
Definition: node.h:31
TRef next_tref
Definition: node.h:231
TimedMessages timed_messages
Definition: node.h:230
auto process_signal(const Pid &pid, const Signal &sig) -> bool
Definition: node.cpp:539
delegate< ResultUnion(const Pid &, Mailbox &)> Behaviour
Definition: behaviour.h:80
auto signal_timer_callback(const SignalRef signal_ref) -> bool
Definition: node.cpp:520
std::unordered_map< SignalRef, TimedBufferDelivery > TimedSignals
Definition: node.h:98
std::unordered_map< string, Pid > NamedProcessRegistry
Definition: node.h:86
std::string string
Definition: node.h:75
auto process_flag(const Pid &pid, const ProcessFlag flag, const bool flag_setting) -> bool
Definition: node.cpp:129
auto apply(const Pid &pid, const string_view function_name, const string_view args) -> ResultUnion
Definition: node.cpp:727
auto cancel_signal(const SignalRef signal_ref) -> bool
Definition: node.cpp:426
Definition: actor_model.fbs:58
SignalRef next_signal_ref
Definition: node.h:234
constexpr SignalRef NullSignalRef
Definition: node.h:44
auto terminate(const Pid &pid) -> bool
Definition: node.cpp:623
auto timer_callback(const TRef tref) -> bool
Definition: node.cpp:486
std::unordered_map< string, FunctionMutableFlatbuffer > FunctionRegistry
Definition: node.h:95
auto send_interval(const Time time, const Pid &pid, const Message &message) -> TRef
Definition: node.cpp:230
TimedBufferDelivery(const Pid &_pid, flatbuffers::DetachedBuffer &&_buf, const bool _is_recurring, const TimerHandle_t _timer_handle)
Definition: node.h:49
flatbuffers::DetachedBuffer FunctionFlatbuffer
Definition: node.h:40
NamedProcessRegistry named_process_registry
Definition: node.h:225
std::vector< uint8_t > ModuleFlatbuffer
Definition: node.h:38
std::unique_ptr< Process > ProcessPtr
Definition: node.h:78
auto send(const Pid &pid, const Message &message) -> bool
Definition: node.cpp:147
std::experimental::string_view string_view
Definition: node.h:76