diff --git a/TODO b/TODO index 8aede5e..2bd9b76 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,7 @@ initialization code for other operating systems - currently VoidNet only supports windows initialization code for tcp client for other operating systems - " handle SendNetworkMessage errors for windows -handle ReceiveDataArray errors for windows \ No newline at end of file +handle ReceiveDataArray errors for windows + +revamped BitConverter class +new StringConverter class \ No newline at end of file diff --git a/TestsVS/Tests/Release/Tests.tlog/CL.command.1.tlog b/TestsVS/Tests/Release/Tests.tlog/CL.command.1.tlog index 2d0bd35..f4433fb 100644 Binary files a/TestsVS/Tests/Release/Tests.tlog/CL.command.1.tlog and b/TestsVS/Tests/Release/Tests.tlog/CL.command.1.tlog differ diff --git a/TestsVS/Tests/Release/Tests.tlog/link.command.1.tlog b/TestsVS/Tests/Release/Tests.tlog/link.command.1.tlog index 46b134b..7d676d7 100644 Binary files a/TestsVS/Tests/Release/Tests.tlog/link.command.1.tlog and b/TestsVS/Tests/Release/Tests.tlog/link.command.1.tlog differ diff --git a/TestsVS/Tests/Release/Tests.tlog/link.read.1.tlog b/TestsVS/Tests/Release/Tests.tlog/link.read.1.tlog index 46b134b..c0d510f 100644 Binary files a/TestsVS/Tests/Release/Tests.tlog/link.read.1.tlog and b/TestsVS/Tests/Release/Tests.tlog/link.read.1.tlog differ diff --git a/TestsVS/Tests/Release/Tests.tlog/link.write.1.tlog b/TestsVS/Tests/Release/Tests.tlog/link.write.1.tlog index 46b134b..33fb381 100644 Binary files a/TestsVS/Tests/Release/Tests.tlog/link.write.1.tlog and b/TestsVS/Tests/Release/Tests.tlog/link.write.1.tlog differ diff --git a/TestsVS/Tests/Release/Tests.tlog/unsuccessfulbuild b/TestsVS/Tests/Release/Tests.tlog/unsuccessfulbuild deleted file mode 100644 index e69de29..0000000 diff --git a/VoidNetVS/Release/Tests.iobj b/VoidNetVS/Release/Tests.iobj index 839a832..774d6c9 100644 Binary files a/VoidNetVS/Release/Tests.iobj and b/VoidNetVS/Release/Tests.iobj differ diff --git a/VoidNetVS/Release/Tests.ipdb b/VoidNetVS/Release/Tests.ipdb index 4edb2c4..10a1feb 100644 Binary files a/VoidNetVS/Release/Tests.ipdb and b/VoidNetVS/Release/Tests.ipdb differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog index d72a6c0..485734d 100644 Binary files a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog and b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog index f065455..273036a 100644 Binary files a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog and b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog index 78d5573..a48a2b7 100644 Binary files a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog and b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/unsuccessfulbuild b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/unsuccessfulbuild deleted file mode 100644 index e69de29..0000000 diff --git a/include/Defs.hpp b/include/Defs.hpp index 9c28956..3c75a60 100644 --- a/include/Defs.hpp +++ b/include/Defs.hpp @@ -5,14 +5,11 @@ #pragma once #define WIN32_LEAN_AND_MEAN #define _WINSOCKAPI_ +#pragma comment(lib, "ws2_32.lib") #include #include #include -#pragma comment(lib, "ws2_32.lib") - -WSADATA wsa_data; - typedef signed char int8, sbyte; typedef unsigned char uint8, byte; typedef signed short int16; diff --git a/include/Init.hpp b/include/Init.hpp index 5c0b3da..416a464 100644 --- a/include/Init.hpp +++ b/include/Init.hpp @@ -7,6 +7,11 @@ #include "Defs.hpp" -VoidCode initialize(); + +struct Initialization +{ + static VoidCode initialize(); + static WSADATA wsa_data; +}; #endif \ No newline at end of file diff --git a/include/Utility.hpp b/include/Utility.hpp index 4ead391..2b33540 100644 --- a/include/Utility.hpp +++ b/include/Utility.hpp @@ -7,6 +7,7 @@ #include "Defs.hpp" +#include #include #include @@ -22,6 +23,39 @@ struct Utility static byte *FromUint16(uint16 number); static uint16 ToUint16(byte *bytes, uint16 start_index); + + static byte *FromUint32(uint32 number); + static uint32 *ToUint32(byte *bytes, uint16 start_index); + + static byte *FromUint64(uint64 number); + static uint64 ToUint64(byte *bytes, uint16 start_index); + + static byte *FromInt8(int8 number); + static int8 ToInt8(byte *bytes, uint16 start_index); + + static byte *FromInt16(int16 number); + static int16 ToInt16(byte *bytes, uint16 start_index); + + static byte *FromInt32(int32 number); + static int32 ToInt32(byte *bytes, uint16 start_index); + + static byte *FromInt64(int64 number); + static int64 ToInt64(byte *bytes, uint16 start_index); + }; + + struct StringConverter + { + static const std::string &ToString(bool value); + static const std::string &ToString(uint8 value); + static const std::string &ToString(uint16 value); + static const std::string &ToString(uint32 value); + static const std::string &ToString(uint64 value); + static const std::string &ToString(int8 value); + static const std::string &ToString(int16 value); + static const std::string &ToString(int32 value); + static const std::string &ToString(int64 value); + + static const std::string &ToString(byte *bytes, uint16 start_index = 0, uint16 lenght = 0); }; }; diff --git a/src/InitWindows.cpp b/src/InitWindows.cpp index 69de6bf..a580472 100644 --- a/src/InitWindows.cpp +++ b/src/InitWindows.cpp @@ -3,7 +3,7 @@ #include -VoidCode initialize() +VoidCode Initialization::initialize() { uint16 code = WSAStartup(MAKEWORD(2, 2), &wsa_data); if (code != 0) diff --git a/src/Utility.cpp b/src/Utility.cpp index 2ebb0b3..e9a6156 100644 --- a/src/Utility.cpp +++ b/src/Utility.cpp @@ -18,28 +18,130 @@ void Utility::DeleteArray(void *pointer) byte *Utility::BitConverter::FromUint8(uint8 number) { - if (number == 0) - return nullptr; - return reinterpret_cast(number); + } uint8 Utility::BitConverter::ToUint8(byte *bytes, uint16 start_index) { - if (bytes == nullptr) - return 0; - return reinterpret_cast(&bytes[start_index]); + } byte *Utility::BitConverter::FromUint16(uint16 number) { - if (number == 0) - return nullptr; - return reinterpret_cast(number); + } uint16 Utility::BitConverter::ToUint16(byte *bytes, uint16 start_index) { - if (bytes == nullptr) - return 0; - return reinterpret_cast(&bytes[start_index]); + +} + +byte * Utility::BitConverter::FromUint32(uint32 number) +{ + return nullptr; +} + +uint32 * Utility::BitConverter::ToUint32(byte * bytes, uint16 start_index) +{ + return nullptr; +} + +byte * Utility::BitConverter::FromUint64(uint64 number) +{ + return nullptr; +} + +uint64 Utility::BitConverter::ToUint64(byte * bytes, uint16 start_index) +{ + return uint64(); +} + +byte * Utility::BitConverter::FromInt8(int8 number) +{ + return nullptr; +} + +int8 Utility::BitConverter::ToInt8(byte * bytes, uint16 start_index) +{ + return int8(); +} + +byte * Utility::BitConverter::FromInt16(int16 number) +{ + return nullptr; +} + +int16 Utility::BitConverter::ToInt16(byte * bytes, uint16 start_index) +{ + return int16(); +} + +byte * Utility::BitConverter::FromInt32(int32 number) +{ + return nullptr; +} + +int32 Utility::BitConverter::ToInt32(byte * bytes, uint16 start_index) +{ + return int32(); +} + +byte * Utility::BitConverter::FromInt64(int64 number) +{ + return nullptr; +} + +int64 Utility::BitConverter::ToInt64(byte * bytes, uint16 start_index) +{ + return int64(); +} + +const std::string & Utility::StringConverter::ToString(bool value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(uint8 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(uint16 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(uint32 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(uint64 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(int8 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(int16 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(int32 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(int64 value) +{ + // TODO: insert return statement here +} + +const std::string & Utility::StringConverter::ToString(byte * bytes, uint16 start_index, uint16 lenght) +{ + // TODO: insert return statement here }