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