mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-24 22:21:03 +00:00
Add socket abstraction
This commit is contained in:
35
src/windows-emulator/network/socket_wrapper.hpp
Normal file
35
src/windows-emulator/network/socket_wrapper.hpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include "i_socket.hpp"
|
||||
|
||||
namespace network
|
||||
{
|
||||
class socket_wrapper : public i_socket
|
||||
{
|
||||
public:
|
||||
socket_wrapper(int af, int type, int protocol);
|
||||
~socket_wrapper() override = default;
|
||||
|
||||
void set_blocking(bool blocking) override;
|
||||
|
||||
int get_last_error() override;
|
||||
|
||||
bool is_ready(bool in_poll) override;
|
||||
|
||||
bool bind(const address& addr) override;
|
||||
|
||||
sent_size send(std::span<const std::byte> data) override;
|
||||
sent_size sendto(const address& destination, std::span<const std::byte> data) override;
|
||||
|
||||
sent_size recv(std::span<std::byte> data) override;
|
||||
sent_size recvfrom(address& source, std::span<std::byte> data) override;
|
||||
|
||||
const socket& get() const
|
||||
{
|
||||
return this->socket_;
|
||||
}
|
||||
|
||||
private:
|
||||
socket socket_{};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user