mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-17 23:39:18 +02:00
work
This commit is contained in:
10
Globals.cpp
10
Globals.cpp
@@ -768,6 +768,16 @@ global_settings::ConfigParse(cParser &Parser) {
|
||||
Parser.getTokens(1);
|
||||
Parser >> python_mipmaps;
|
||||
}
|
||||
else if (token == "network.enabled")
|
||||
{
|
||||
Parser.getTokens(1);
|
||||
Parser >> network_conf.enabled;
|
||||
}
|
||||
else if (token == "network.server")
|
||||
{
|
||||
Parser.getTokens(1);
|
||||
Parser >> network_conf.is_server;
|
||||
}
|
||||
} while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile)
|
||||
// na koniec trochę zależności
|
||||
if (!bLoadTraction) // wczytywanie drutów i słupów
|
||||
|
||||
@@ -194,6 +194,11 @@ struct global_settings {
|
||||
bool gfx_shadergamma = false;
|
||||
bool gfx_usegles = false;
|
||||
|
||||
struct network_conf_t {
|
||||
bool enabled = false;
|
||||
bool is_server;
|
||||
} network_conf;
|
||||
|
||||
// methods
|
||||
void LoadIniFile( std::string asFileName );
|
||||
void ConfigParse( cParser &parser );
|
||||
|
||||
@@ -177,7 +177,8 @@ eu07_application::run() {
|
||||
|
||||
Timer::subsystem.mainloop_total.stop();
|
||||
|
||||
m_network->poll();
|
||||
if (Global.network_conf.enabled)
|
||||
m_network->poll();
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -592,6 +593,14 @@ eu07_application::init_modes() {
|
||||
}
|
||||
|
||||
bool eu07_application::init_network() {
|
||||
if (!Global.network_conf.enabled)
|
||||
return true;
|
||||
|
||||
m_network.emplace();
|
||||
if (Global.network_conf.is_server)
|
||||
m_network->create_server();
|
||||
else
|
||||
m_network->connect();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
network::manager::manager()
|
||||
{
|
||||
create_server();
|
||||
}
|
||||
|
||||
void network::manager::create_server()
|
||||
@@ -18,5 +17,5 @@ void network::manager::poll()
|
||||
|
||||
void network::manager::connect()
|
||||
{
|
||||
|
||||
client = std::make_shared<tcp_client>(io_context);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace network
|
||||
{
|
||||
asio::io_context io_context;
|
||||
std::vector<std::shared_ptr<server>> servers;
|
||||
//std::shared_ptr<client> client;
|
||||
std::shared_ptr<network::client> client;
|
||||
|
||||
public:
|
||||
manager();
|
||||
|
||||
@@ -31,7 +31,5 @@ namespace network
|
||||
|
||||
class client
|
||||
{
|
||||
protected:
|
||||
std::shared_ptr<connection> srv;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -112,3 +112,25 @@ void network::tcp_server::handle_accept(std::shared_ptr<tcp_conn> conn, const as
|
||||
|
||||
accept_conn();
|
||||
}
|
||||
|
||||
network::tcp_client::tcp_client(asio::io_context &io_ctx)
|
||||
{
|
||||
conn = std::make_shared<tcp_conn>(io_ctx);
|
||||
|
||||
asio::ip::tcp::endpoint endpoint(
|
||||
asio::ip::address::from_string("127.0.0.1"), 7424);
|
||||
conn->socket().async_connect(endpoint,
|
||||
std::bind(&tcp_client::handle_accept, this, std::placeholders::_1));
|
||||
}
|
||||
|
||||
void network::tcp_client::handle_accept(const asio::error_code &err)
|
||||
{
|
||||
if (!err)
|
||||
{
|
||||
conn->connected();
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteLog(std::string("net: failed to connect: " + err.message()), logtype::net);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,4 +43,14 @@ namespace network
|
||||
|
||||
asio::ip::tcp::acceptor m_acceptor;
|
||||
};
|
||||
|
||||
class tcp_client : public client
|
||||
{
|
||||
private:
|
||||
std::shared_ptr<tcp_conn> conn;
|
||||
void handle_accept(const asio::error_code &err);
|
||||
|
||||
public:
|
||||
tcp_client(asio::io_context &io_ctx);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user