Luanti 5.16.0-dev
 
Loading...
Searching...
No Matches
sscsm_controller.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024 Luanti authors
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#pragma once
6
7#include <memory>
8#include "irrlichttypes.h"
9#include "sscsm_irequest.h"
10#include "sscsm_ievent.h"
11#include "util/basic_macros.h"
12
14class StupidChannel;
15
25{
26 std::unique_ptr<SSCSMEnvironment> m_thread;
27 std::shared_ptr<StupidChannel> m_channel;
28
30
31public:
32 static std::unique_ptr<SSCSMController> create();
33
34 SSCSMController(std::unique_ptr<SSCSMEnvironment> thread,
35 std::shared_ptr<StupidChannel> channel);
36
38
40
41 // Handles requests until the next event is polled
42 void runEvent(Client *client, std::unique_ptr<ISSCSMEvent> event);
43};
Definition client.h:107
The purpose of this class is to:
Definition sscsm_controller.h:25
void runEvent(Client *client, std::unique_ptr< ISSCSMEvent > event)
Definition sscsm_controller.cpp:47
SerializedSSCSMAnswer handleRequest(Client *client, ISSCSMRequest *req)
Definition sscsm_controller.cpp:42
std::shared_ptr< StupidChannel > m_channel
Definition sscsm_controller.h:27
DISABLE_CLASS_COPY(SSCSMController)
SSCSMController(std::unique_ptr< SSCSMEnvironment > thread, std::shared_ptr< StupidChannel > channel)
Definition sscsm_controller.cpp:25
std::unique_ptr< SSCSMEnvironment > m_thread
Definition sscsm_controller.h:26
static std::unique_ptr< SSCSMController > create()
Definition sscsm_controller.cpp:11
~SSCSMController()
Definition sscsm_controller.cpp:31
The thread that runs SSCSM code.
Definition sscsm_environment.h:26
Definition sscsm_stupid_channel.h:14
Definition activeobjectmgr.cpp:11
std::unique_ptr< ISSCSMAnswer > SerializedSSCSMAnswer
Definition sscsm_irequest.h:25
Definition sscsm_irequest.h:29