mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 06:39:46 -06:00
Merge pull request #9559 from iwubcode/gdb-stub-raii
Common / Core: add raii object that cleans up WSA on destruction in gdb-stub
This commit is contained in:
@ -110,6 +110,8 @@ add_library(common
|
||||
SettingsHandler.h
|
||||
SFMLHelper.cpp
|
||||
SFMLHelper.h
|
||||
SocketContext.cpp
|
||||
SocketContext.h
|
||||
SPSCQueue.h
|
||||
StringUtil.cpp
|
||||
StringUtil.h
|
||||
|
22
Source/Core/Common/SocketContext.cpp
Normal file
22
Source/Core/Common/SocketContext.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright 2021 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "Common/SocketContext.h"
|
||||
|
||||
namespace Common
|
||||
{
|
||||
#ifdef _WIN32
|
||||
SocketContext::SocketContext()
|
||||
{
|
||||
static_cast<void>(WSAStartup(MAKEWORD(2, 2), &m_data));
|
||||
}
|
||||
SocketContext::~SocketContext()
|
||||
{
|
||||
WSACleanup();
|
||||
}
|
||||
#else
|
||||
SocketContext::SocketContext() = default;
|
||||
SocketContext::~SocketContext() = default;
|
||||
#endif
|
||||
} // namespace Common
|
30
Source/Core/Common/SocketContext.h
Normal file
30
Source/Core/Common/SocketContext.h
Normal file
@ -0,0 +1,30 @@
|
||||
// Copyright 2021 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <WinSock2.h>
|
||||
#endif
|
||||
|
||||
namespace Common
|
||||
{
|
||||
class SocketContext
|
||||
{
|
||||
public:
|
||||
SocketContext();
|
||||
~SocketContext();
|
||||
|
||||
SocketContext(const SocketContext&) = delete;
|
||||
SocketContext(SocketContext&&) = delete;
|
||||
|
||||
SocketContext& operator=(const SocketContext&) = delete;
|
||||
SocketContext& operator=(SocketContext&&) = delete;
|
||||
|
||||
private:
|
||||
#ifdef _WIN32
|
||||
WSADATA m_data;
|
||||
#endif
|
||||
};
|
||||
} // namespace Common
|
Reference in New Issue
Block a user