System: Move GDB server into core
This commit is contained in:
@ -755,6 +755,9 @@ void BufferedStreamSocket::ReleaseReadBuffer(size_t bytes_consumed)
|
||||
|
||||
std::span<u8> BufferedStreamSocket::AcquireWriteBuffer(size_t wanted_bytes, bool allow_smaller /* = false */)
|
||||
{
|
||||
if (!m_connected)
|
||||
return {};
|
||||
|
||||
// If to get the desired space, we need to move backwards, do so.
|
||||
if ((m_send_buffer_offset + m_send_buffer_size + wanted_bytes) > m_send_buffer.size())
|
||||
{
|
||||
@ -776,6 +779,9 @@ std::span<u8> BufferedStreamSocket::AcquireWriteBuffer(size_t wanted_bytes, bool
|
||||
|
||||
void BufferedStreamSocket::ReleaseWriteBuffer(size_t bytes_written, bool commit /* = true */)
|
||||
{
|
||||
if (!m_connected)
|
||||
return;
|
||||
|
||||
DebugAssert((m_send_buffer_offset + m_send_buffer_size + bytes_written) <= m_send_buffer.size());
|
||||
m_send_buffer_size += static_cast<u32>(bytes_written);
|
||||
|
||||
@ -819,6 +825,9 @@ size_t BufferedStreamSocket::Read(void* buffer, size_t buffer_size)
|
||||
|
||||
size_t BufferedStreamSocket::Write(const void* buffer, size_t buffer_size)
|
||||
{
|
||||
if (!m_connected)
|
||||
return 0;
|
||||
|
||||
// Read from receive buffer.
|
||||
const std::span<u8> wrbuf = AcquireWriteBuffer(buffer_size, true);
|
||||
if (wrbuf.empty())
|
||||
@ -857,6 +866,16 @@ size_t BufferedStreamSocket::WriteVector(const void** buffers, const size_t* buf
|
||||
return written_bytes;
|
||||
}
|
||||
|
||||
void BufferedStreamSocket::Close()
|
||||
{
|
||||
StreamSocket::Close();
|
||||
|
||||
m_receive_buffer_offset = 0;
|
||||
m_receive_buffer_size = 0;
|
||||
m_send_buffer_offset = 0;
|
||||
m_send_buffer_size = 0;
|
||||
}
|
||||
|
||||
void BufferedStreamSocket::OnReadEvent()
|
||||
{
|
||||
std::unique_lock lock(m_lock);
|
||||
|
||||
@ -197,7 +197,7 @@ public:
|
||||
|
||||
static u32 GetSocketProtocolForAddress(const SocketAddress& sa);
|
||||
|
||||
virtual void Close() override final;
|
||||
virtual void Close() override;
|
||||
|
||||
// Accessors
|
||||
const SocketAddress& GetLocalAddress() const { return m_local_address; }
|
||||
@ -251,6 +251,7 @@ public:
|
||||
size_t Read(void* buffer, size_t buffer_size);
|
||||
size_t Write(const void* buffer, size_t buffer_size);
|
||||
size_t WriteVector(const void** buffers, const size_t* buffer_lengths, size_t num_buffers);
|
||||
virtual void Close() override;
|
||||
|
||||
protected:
|
||||
void OnReadEvent() override final;
|
||||
|
||||
Reference in New Issue
Block a user