18 #include "actor_model_generated.h" 20 #include <experimental/string_view> 22 #include <unordered_map> 23 #include <unordered_set> 25 #include "freertos/FreeRTOS.h" 26 #include "freertos/task.h" 27 #include "freertos/timers.h" 44 using LinkList = std::unordered_set<Pid, UUID::UUIDHashFunc, UUID::UUIDEqualFunc>;
45 using MonitorList = std::unordered_set<Pid, UUID::UUIDHashFunc, UUID::UUIDEqualFunc>;
54 return static_cast<size_t>(flag);
81 const MaybePid& initial_link_pid = std::experimental::nullopt,
83 Node*
const _current_node = nullptr
127 TaskHandle_t impl =
nullptr;
128 bool started =
false;
130 static flatbuffers::FlatBufferBuilder _default_execution_config_fbb;
static auto get_default_node() -> Node &
Definition: process.cpp:224
auto send(const Message &message) -> bool
Definition: process.cpp:121
Definition: actor_model.fbs:115
std::experimental::string_view Reason
Definition: process.h:43
std::experimental::string_view string_view
Definition: process.h:47
Definition: behaviour.h:30
auto get_process_flag(const ProcessFlag flag) -> bool
Definition: process.cpp:206
std::string exit_reason
Definition: process.h:121
static ResultUnion Done
Definition: process.h:32
auto get_current_node() -> Node &
Definition: process.cpp:218
auto exit(const Reason exit_reason) -> bool
Definition: process.cpp:105
static ResultUnion Ok
Definition: process.h:31
std::unordered_map< ProcessFlag, bool, ProcessFlagHashFunc > ProcessFlags
Definition: process.h:62
ProcessDictionary dictionary
Definition: process.h:118
std::experimental::optional< Pid > MaybePid
Definition: pid.h:20
Mailbox mailbox
Definition: process.h:110
static ResultUnion Unhandled
Definition: process.h:33
Process(const Pid &_pid, const Behaviour &&_behaviour, const ProcessExecutionConfig &execution_config=get_default_execution_config(), const MaybePid &initial_link_pid=std::experimental::nullopt, const ProcessDictionary::AncestorList &&_ancestors={}, Node *const _current_node=nullptr)
Definition: process.cpp:36
const Pid pid
Definition: process.h:108
Process::Reason Reason
Definition: actor_model.cpp:17
static auto get_default_execution_config() -> const ProcessExecutionConfig &
Definition: process.cpp:230
auto unlink(const Pid &pid2) -> bool
Definition: process.cpp:175
ProcessFlags process_flags
Definition: process.h:119
AncestorList ancestors
Definition: process.h:68
LinkList links
Definition: process.h:114
auto process_flag(const ProcessFlag flag, const bool flag_setting) -> bool
Definition: process.cpp:199
Behaviour behaviour
Definition: process.h:111
Definition: actor_model.fbs:27
std::string string
Definition: oom_killer_actor_behaviour.cpp:24
std::unordered_set< Pid, UUID::UUIDHashFunc, UUID::UUIDEqualFunc > LinkList
Definition: process.h:44
std::experimental::string_view string_view
Definition: actor_model.cpp:16
ProcessFlag
Definition: actor_model.fbs:22
auto operator()(const ProcessFlag &flag) const -> size_t
Definition: process.h:51
UUID::UUID Pid
Definition: pid.h:19
std::unordered_set< Pid, UUID::UUIDHashFunc, UUID::UUIDEqualFunc > MonitorList
Definition: process.h:45
SemaphoreHandle_t receive_semaphore
Definition: process.h:122
std::vector< Pid > AncestorList
Definition: process.h:66
virtual ~Process()
Definition: process.cpp:86
delegate< ResultUnion(const Pid &, Mailbox &)> Behaviour
Definition: behaviour.h:80
Node *const current_node
Definition: process.h:124
auto link(const Pid &pid2) -> bool
Definition: process.cpp:151
auto _execute() -> ResultUnion
Definition: process.cpp:249