Use input buffer directly
This commit is contained in:
parent
cc03c321f3
commit
9ec90e9083
|
@ -25,7 +25,6 @@ namespace Feather::Network
|
|||
TCPListener* m_parent;
|
||||
|
||||
bufferevent* m_bufferEvent;
|
||||
evbuffer* m_buffer;
|
||||
|
||||
LockableVector<uint8_t> m_data;
|
||||
};
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include <memory>
|
||||
|
||||
struct bufferevent;
|
||||
struct evbuffer;
|
||||
|
||||
namespace Feather::Network
|
||||
{
|
||||
|
|
|
@ -111,7 +111,6 @@ namespace Feather::Network
|
|||
TCPClient::TCPClient(TCPListener* parent, SocketHandle socket)
|
||||
: m_parent(parent)
|
||||
, m_bufferEvent(bufferevent_socket_new(NetworkManager::Instance().GetEventBase(), socket, BEV_OPT_CLOSE_ON_FREE | BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS))
|
||||
, m_buffer(evbuffer_new())
|
||||
{
|
||||
printf("Created TCPListenerClient\n");
|
||||
bufferevent_setcb(m_bufferEvent,
|
||||
|
@ -124,22 +123,16 @@ namespace Feather::Network
|
|||
|
||||
TCPClient::~TCPClient()
|
||||
{
|
||||
evbuffer_free(m_buffer);
|
||||
bufferevent_free(m_bufferEvent);
|
||||
}
|
||||
|
||||
void TCPClient::ReadCallback()
|
||||
{
|
||||
if (bufferevent_read_buffer(m_bufferEvent, m_buffer) != 0)
|
||||
{
|
||||
printf("fuck");
|
||||
return;
|
||||
}
|
||||
|
||||
const size_t size = evbuffer_get_length(m_buffer);
|
||||
evbuffer* buffer = bufferevent_get_input(m_bufferEvent);
|
||||
const size_t size = evbuffer_get_length(buffer);
|
||||
auto [data, lock] = m_data.borrow();
|
||||
data.resize(size);
|
||||
if (evbuffer_remove(m_buffer, data.data(), size) != size)
|
||||
if (evbuffer_remove(buffer, data.data(), size) != size)
|
||||
{
|
||||
printf("fuck");
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue