Added support for completely disabling noexcept using MIJIN_TEST_NO_NOEXCEPT (for testing).
This commit is contained in:
@@ -30,32 +30,32 @@ inline constexpr socket_handle_t INVALID_SOCKET_HANDLE = -1;
|
||||
class Socket
|
||||
{
|
||||
protected:
|
||||
Socket() noexcept = default;
|
||||
Socket(const Socket&) noexcept = default;
|
||||
Socket(Socket&&) noexcept = default;
|
||||
Socket() MIJIN_NOEXCEPT = default;
|
||||
Socket(const Socket&) MIJIN_NOEXCEPT = default;
|
||||
Socket(Socket&&) MIJIN_NOEXCEPT = default;
|
||||
|
||||
Socket& operator=(const Socket&) noexcept = default;
|
||||
Socket& operator=(Socket&&) noexcept = default;
|
||||
Socket& operator=(const Socket&) MIJIN_NOEXCEPT = default;
|
||||
Socket& operator=(Socket&&) MIJIN_NOEXCEPT = default;
|
||||
public:
|
||||
virtual ~Socket() noexcept = default;
|
||||
virtual ~Socket() MIJIN_NOEXCEPT = default;
|
||||
|
||||
virtual Stream& getStream() noexcept = 0;
|
||||
virtual Stream& getStream() MIJIN_NOEXCEPT = 0;
|
||||
};
|
||||
|
||||
class ServerSocket
|
||||
{
|
||||
protected:
|
||||
ServerSocket() noexcept = default;
|
||||
ServerSocket(const ServerSocket&) noexcept = default;
|
||||
ServerSocket(ServerSocket&&) noexcept = default;
|
||||
ServerSocket() MIJIN_NOEXCEPT = default;
|
||||
ServerSocket(const ServerSocket&) MIJIN_NOEXCEPT = default;
|
||||
ServerSocket(ServerSocket&&) MIJIN_NOEXCEPT = default;
|
||||
|
||||
ServerSocket& operator=(const ServerSocket&) noexcept = default;
|
||||
ServerSocket& operator=(ServerSocket&&) noexcept = default;
|
||||
ServerSocket& operator=(const ServerSocket&) MIJIN_NOEXCEPT = default;
|
||||
ServerSocket& operator=(ServerSocket&&) MIJIN_NOEXCEPT = default;
|
||||
public:
|
||||
virtual ~ServerSocket() noexcept = default;
|
||||
virtual ~ServerSocket() MIJIN_NOEXCEPT = default;
|
||||
|
||||
virtual void close() noexcept = 0;
|
||||
virtual Task<StreamResult<std::unique_ptr<Socket>>> c_waitForConnection() noexcept = 0;
|
||||
virtual void close() MIJIN_NOEXCEPT = 0;
|
||||
virtual Task<StreamResult<std::unique_ptr<Socket>>> c_waitForConnection() MIJIN_NOEXCEPT = 0;
|
||||
};
|
||||
|
||||
class TCPStream : public Stream
|
||||
@@ -74,9 +74,9 @@ public:
|
||||
bool isAtEnd() override;
|
||||
StreamFeatures getFeatures() override;
|
||||
|
||||
StreamError open(ip_address_t address, std::uint16_t port) noexcept;
|
||||
void close() noexcept;
|
||||
[[nodiscard]] bool isOpen() const noexcept { return handle_ != INVALID_SOCKET_HANDLE; }
|
||||
StreamError open(ip_address_t address, std::uint16_t port) MIJIN_NOEXCEPT;
|
||||
void close() MIJIN_NOEXCEPT;
|
||||
[[nodiscard]] bool isOpen() const MIJIN_NOEXCEPT { return handle_ != INVALID_SOCKET_HANDLE; }
|
||||
private:
|
||||
void setNoblock(bool async);
|
||||
|
||||
@@ -88,10 +88,10 @@ class TCPSocket : public Socket
|
||||
private:
|
||||
TCPStream stream_;
|
||||
public:
|
||||
TCPStream& getStream() noexcept override;
|
||||
TCPStream& getStream() MIJIN_NOEXCEPT override;
|
||||
|
||||
StreamError open(ip_address_t address, std::uint16_t port) noexcept { return stream_.open(address, port); }
|
||||
StreamError open(std::string_view addressText, std::uint16_t port) noexcept
|
||||
StreamError open(ip_address_t address, std::uint16_t port) MIJIN_NOEXCEPT { return stream_.open(address, port); }
|
||||
StreamError open(std::string_view addressText, std::uint16_t port) MIJIN_NOEXCEPT
|
||||
{
|
||||
if (Optional<ip_address_t> address = ipAddressFromString(addressText); !address.empty())
|
||||
{
|
||||
@@ -99,8 +99,8 @@ public:
|
||||
}
|
||||
return StreamError::UNKNOWN_ERROR;
|
||||
}
|
||||
void close() noexcept { stream_.close(); }
|
||||
[[nodiscard]] bool isOpen() const noexcept { return stream_.isOpen(); }
|
||||
void close() MIJIN_NOEXCEPT { stream_.close(); }
|
||||
[[nodiscard]] bool isOpen() const MIJIN_NOEXCEPT { return stream_.isOpen(); }
|
||||
|
||||
friend class TCPServerSocket;
|
||||
};
|
||||
@@ -110,8 +110,8 @@ class TCPServerSocket : public ServerSocket
|
||||
private:
|
||||
socket_handle_t handle_ = INVALID_SOCKET_HANDLE;
|
||||
public:
|
||||
StreamError setup(ip_address_t address, std::uint16_t port) noexcept;
|
||||
StreamError setup(std::string_view addressText, std::uint16_t port) noexcept
|
||||
StreamError setup(ip_address_t address, std::uint16_t port) MIJIN_NOEXCEPT;
|
||||
StreamError setup(std::string_view addressText, std::uint16_t port) MIJIN_NOEXCEPT
|
||||
{
|
||||
if (Optional<ip_address_t> address = ipAddressFromString(addressText); !address.empty())
|
||||
{
|
||||
@@ -119,10 +119,10 @@ public:
|
||||
}
|
||||
return StreamError::UNKNOWN_ERROR;
|
||||
}
|
||||
void close() noexcept override;
|
||||
[[nodiscard]] bool isListening() const noexcept { return handle_ >= 0; }
|
||||
void close() MIJIN_NOEXCEPT override;
|
||||
[[nodiscard]] bool isListening() const MIJIN_NOEXCEPT { return handle_ >= 0; }
|
||||
|
||||
Task<StreamResult<std::unique_ptr<Socket>>> c_waitForConnection() noexcept override;
|
||||
Task<StreamResult<std::unique_ptr<Socket>>> c_waitForConnection() MIJIN_NOEXCEPT override;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user