14 public std::enable_shared_from_this<ThreadedSession>
17 size_t execution_thread;
21 std::vector<uint8_t> data;
22 std::shared_ptr<ThreadedSession> self;
37 auto [_, body] = ringbuffer::read_message<::tcp::tcp_inbound>(data);
39 auto msg = std::make_unique<::threading::Tmsg<SendRecvMsg>>(
41 msg->data.self = this->shared_from_this();
42 msg->data.data.assign(body.data, body.data + body.size);
45 execution_thread, std::move(msg));
51 msg->data.self->handle_incoming_data_thread(std::move(msg->data.data));
58 void send_data(std::span<const uint8_t> data)
override
61 std::make_unique<::threading::Tmsg<SendRecvMsg>>(&
send_data_cb);
62 msg->data.self = this->shared_from_this();
63 msg->data.data.assign(data.begin(), data.end());
66 execution_thread, std::move(msg));
72 msg->data.self->send_data_thread(std::move(msg->data.data));
void handle_incoming_data(std::span< const uint8_t > data) override
Definition session.h:35
virtual void handle_incoming_data_thread(std::vector< uint8_t > &&data)=0
ThreadedSession(int64_t thread_affinity)
Definition session.h:26
void send_data(std::span< const uint8_t > data) override
Definition session.h:58
static void send_data_cb(std::unique_ptr<::threading::Tmsg< SendRecvMsg > > msg)
Definition session.h:69
static void handle_incoming_data_cb(std::unique_ptr<::threading::Tmsg< SendRecvMsg > > msg)
Definition session.h:48
virtual void send_data_thread(std::vector< uint8_t > &&data)=0
static ThreadMessaging & instance()
Definition thread_messaging.h:278
void add_task(uint16_t tid, std::unique_ptr< Tmsg< Payload > > msg)
Definition thread_messaging.h:312
uint16_t get_execution_thread(uint32_t i)
Definition thread_messaging.h:365
Definition app_interface.h:15
Definition thread_messaging.h:27