void TcpServer::OnRead( uv_stream_t* stream, ssize_t num_read, const uv_buf_t* buf ) { Client* client = static_cast<Client*>( stream->data ); TcpServer* server = client->p_server; if ( num_read < 0 ) { uv_close( reinterpret_cast<uv_handle_t*>( stream ), TcpServer::OnCloseClient ); delete buf->base; return; } if ( server->m_read_callback ) { server->m_read_callback( client->id, buf->base, num_read ); } delete buf->base; }