diff --git a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj index 4cad46f..6081f28 100644 --- a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj +++ b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj @@ -25,6 +25,7 @@ + diff --git a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters index cc7daca..46c2a5a 100644 --- a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters +++ b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters @@ -51,6 +51,9 @@ include + + include + diff --git a/include/Config.hpp b/include/Config.hpp index 2dcb94a..cde1296 100644 --- a/include/Config.hpp +++ b/include/Config.hpp @@ -5,14 +5,20 @@ #pragma once #endif +#include "Utility.hpp" + struct Config { + static void Initialize(); + static void SetUsingConsole(bool value); static bool GetUsingConsole(); static void SetLogToFile(bool value); static bool GetLogToFile(); + static Utility::ConfigReader Configuration; + private: static bool using_console; static bool log_to_file; diff --git a/include/PluginManager.hpp b/include/PluginManager.hpp new file mode 100644 index 0000000..73cc20b --- /dev/null +++ b/include/PluginManager.hpp @@ -0,0 +1,13 @@ +#ifndef PLUGIN_MANAGER_HPP +#define PLUGIN_MANAGER_HPP + +#ifdef _MSC_VER +#pragma once +#endif + +struct PluginManager +{ + +}; + +#endif diff --git a/include/TcpClient.hpp b/include/TcpClient.hpp index 57907bc..785d454 100644 --- a/include/TcpClient.hpp +++ b/include/TcpClient.hpp @@ -45,9 +45,9 @@ struct TcpClient bool SendBytes(const std::vector &bytes); bool SendBytes(byte *bytes, uint32 lenght); - void SetOnDisconnectCallback(void (*func)(uint16)); - void SetOnConnectCallback(void (*func)(uint16)); - void SetOnMessageCallback(void (*func)(uint16, byte, byte, void*)); + void SetOnDisconnectCallback(std::function func); + void SetOnConnectCallback(std::function func); + void SetOnMessageCallback(std::function func); static const TcpClient &DefaultTcpClient(); diff --git a/include/UdpClient.hpp b/include/UdpClient.hpp index d239e57..ea75fe4 100644 --- a/include/UdpClient.hpp +++ b/include/UdpClient.hpp @@ -31,11 +31,17 @@ struct UdpClient uint16 GetID(); void SetID(uint16 id); + void ReceiveMessages(); + + const NetworkMessage &ReceiveMessage(); + std::future SendMessage(const NetworkMessage &message); bool SendBytes(const std::vector &bytes); bool SendBytes(byte *bytes, uint32 lenght); private: + const NetworkBuffer &receive_data_array(); + static void receive_data(UdpClient *client); bool initialize(const std::string &ip, uint16 port = default_client_port); static bool send_network_message(const NetworkMessage &message, UdpClient *client); diff --git a/src/Config.cpp b/src/Config.cpp index 1182417..960e3fe 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -1,5 +1,13 @@ #include "Config.hpp" +#include + +void Config::Initialize() +{ + Configuration.ReadConfig("config.dat"); + Configuration.ReadNodes(); +} + inline void Config::SetUsingConsole(bool value) { using_console = value; diff --git a/src/Init.cpp b/src/Init.cpp index c022a35..d8dedda 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -1,3 +1,23 @@ +#include "Init.hpp" +#include "Config.hpp" + +#include + #ifdef _MSC_VER -#include "InitWindows.cpp" +bool Initialization::Initialize() +{ + uint16 code = WSAStartup(MAKEWORD(2, 2), &wsa_data); + if (code != 0) + { + if (Config::GetUsingConsole()) + std::cerr << code << std::endl; // display some more information too + return false; + } + return true; +} + +const WSADATA &Initialization::GetData() +{ + return wsa_data; +} #endif \ No newline at end of file diff --git a/src/InitWindows.cpp b/src/InitWindows.cpp deleted file mode 100644 index 18b8dd4..0000000 --- a/src/InitWindows.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "Init.hpp" -#include "Config.hpp" - -#include - -bool Initialization::Initialize() -{ - uint16 code = WSAStartup(MAKEWORD(2, 2), &wsa_data); - if (code != 0) - { - if (Config::GetUsingConsole()) - std::cerr << code << std::endl; // display some more information too - return false; - } - return true; -} - -const WSADATA &Initialization::GetData() -{ - return wsa_data; -} \ No newline at end of file diff --git a/src/TcpClient.cpp b/src/TcpClient.cpp index ef80498..904074b 100644 --- a/src/TcpClient.cpp +++ b/src/TcpClient.cpp @@ -89,17 +89,17 @@ std::future TcpClient::SendMessage(const NetworkMessage &message) return std::async(std::launch::async, &send_network_message, message, this); } -void TcpClient::SetOnDisconnectCallback(void(*func)(uint16)) +void TcpClient::SetOnDisconnectCallback(std::function func) { OnDisconnect = func; } -void TcpClient::SetOnConnectCallback(void(*func)(uint16)) +void TcpClient::SetOnConnectCallback(std::function func) { OnConnect = func; } -void TcpClient::SetOnMessageCallback(void(*func)(uint16, byte, byte, void*)) +void TcpClient::SetOnMessageCallback(std::function func) { OnMessage = func; } diff --git a/src/UdpClient.cpp b/src/UdpClient.cpp index 3e4dbd9..3fec257 100644 --- a/src/UdpClient.cpp +++ b/src/UdpClient.cpp @@ -36,6 +36,15 @@ void UdpClient::SetID(uint16 id) this->id = id; } +void UdpClient::ReceiveMessages() +{ +} + +const NetworkMessage & UdpClient::ReceiveMessage() +{ + // TODO: insert return statement here +} + std::future UdpClient::SendMessage(const NetworkMessage & message) { return std::async(std::launch::async, &send_network_message, message, this); @@ -56,6 +65,15 @@ UdpClient::UdpClient(const SOCKET & socket) udp_socket = socket; } +const NetworkBuffer & UdpClient::receive_data_array() +{ + // TODO: insert return statement here +} + +void UdpClient::receive_data(UdpClient * client) +{ +} + bool UdpClient::initialize(const std::string &ip, uint16 port) { if (Utility::IPUtil::ValidIPV4(ip) || port == 0)