34 #include <type_traits>
37 #define WIN32_LEAN_AND_MEAN
47 static inline std::string wsaErrorCodeToString(
int err) {
51 FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
nullptr,
52 err, 0, &(buf[0]),
sizeof(buf) /
sizeof(buf[0]),
nullptr);
53 return util::tcharToUTF8String(buf);
56 inline bool NetworkingSupport::m_start() {
58 auto status = WSAStartup(MAKEWORD(2, 2), &wsaData);
63 m_err =
"WSAStartup failed: " + wsaErrorCodeToString(status);
67 inline bool NetworkingSupport::m_stop() {
68 if (SOCKET_ERROR == WSACleanup()) {
70 "WSACleanup failed: " + wsaErrorCodeToString(WSAGetLastError());
77 inline bool NetworkingSupport::m_start() {
81 inline bool NetworkingSupport::m_stop() {
return true; }
85 m_success = m_start();
91 std::cerr <<
getError() << std::endl;
~NetworkingSupport()
Destructor.
void shutdown()
Shutdown before destruction.
std::string const & getError() const
Get error message, if any.
NetworkingSupport()
Constructor.
bool wasSuccessful() const
Get whether the last operation (automatic startup or manual, early shutdown) was successful.
Configured header for internal UTF16 or Windows TCHAR to UTF8 conversion. Using this header requires ...