16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 00:49:19 +02:00
This commit is contained in:
milek7
2018-12-20 20:47:19 +01:00
parent 35af6d48d6
commit 21fff27903
8 changed files with 59 additions and 6 deletions

View File

@@ -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

View File

@@ -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 );

View File

@@ -177,6 +177,7 @@ eu07_application::run() {
Timer::subsystem.mainloop_total.stop();
if (Global.network_conf.enabled)
m_network->poll();
}
@@ -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;
}

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -31,7 +31,5 @@ namespace network
class client
{
protected:
std::shared_ptr<connection> srv;
};
}

View File

@@ -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);
}
}

View File

@@ -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);
};
}