17 #include "actor_model_generated.h" 19 #include <experimental/string_view> 21 #include <unordered_map> 23 #include "freertos/FreeRTOS.h" 24 #include "freertos/ringbuf.h" 25 #include "freertos/semphr.h" 29 class ReceivedMessage;
50 const size_t _mailbox_size = 2048,
51 const size_t _send_timeout_microseconds = 0,
52 const size_t _receive_timeout_microseconds = 0,
53 const size_t _receive_lock_timeout_microseconds = 0
60 const size_t payload_alignment =
sizeof(uint64_t),
61 const Pid* from_pid =
nullptr 62 ) -> flatbuffers::DetachedBuffer;
70 const size_t payload_alignment =
sizeof(uint64_t),
71 const Pid* from_pid =
nullptr 74 auto receive(
bool verify =
false)
81 size_t send_timeout_ticks;
82 size_t receive_timeout_ticks;
83 size_t receive_lock_timeout_ticks;
85 SemaphoreHandle_t receive_semaphore =
nullptr;
86 portMUX_TYPE receive_multicore_mutex;
auto send(const Message &message) -> bool
Definition: mailbox.cpp:131
Definition: actor_model.fbs:27
std::string string
Definition: oom_killer_actor_behaviour.cpp:24
std::experimental::string_view string_view
Definition: actor_model.cpp:16
~Mailbox()
Definition: mailbox.cpp:56
UUID::UUID Address
Definition: mailbox.h:40
UUID::UUID Pid
Definition: pid.h:19
auto release(const string_view message) -> bool
Definition: mailbox.cpp:245
auto receive(bool verify=false) -> ReceivedMessagePtr
Definition: mailbox.cpp:187
Mailbox(const size_t _mailbox_size=2048, const size_t _send_timeout_microseconds=0, const size_t _receive_timeout_microseconds=0, const size_t _receive_lock_timeout_microseconds=0)
Definition: mailbox.cpp:29
Definition: received_message.h:21
const Address address
Definition: mailbox.h:77
static auto create_message(const string_view type, const string_view payload, const size_t payload_alignment=sizeof(uint64_t), const Pid *from_pid=nullptr) -> flatbuffers::DetachedBuffer
Definition: mailbox.cpp:81
std::unordered_map< Address, Mailbox *, UUID::UUIDHashFunc, UUID::UUIDEqualFunc > AddressRegistry
Definition: mailbox.h:47
std::unique_ptr< ReceivedMessage > ReceivedMessagePtr
Definition: mailbox.h:38
UUID::UUID UUID
Definition: firmware_update_actor.cpp:41
std::experimental::string_view string_view
Definition: mailbox.h:36