1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 23:17:45 +00:00

LibCore: Convert CTCPServer to ObjectPtr

Also get rid of the custom CNotifier::create() in favor of construct().
This commit is contained in:
Andreas Kling 2019-09-21 15:18:12 +02:00
parent bce58bbbca
commit 4ea229accd
12 changed files with 23 additions and 27 deletions

View file

@ -14,7 +14,7 @@ Client::Client(int id, ObjectPtr<CTCPSocket> socket, int ptm_fd)
: m_id(id)
, m_socket(move(socket))
, m_ptm_fd(ptm_fd)
, m_ptm_notifier(CNotifier::create(ptm_fd, CNotifier::Read))
, m_ptm_notifier(CNotifier::construct(ptm_fd, CNotifier::Read))
{
m_socket->on_ready_to_read = [this] { drain_socket(); };
m_ptm_notifier->on_ready_to_read = [this] { drain_pty(); };

View file

@ -1,3 +1,4 @@
#include "Client.h"
#include <AK/BufferStream.h>
#include <AK/ByteBuffer.h>
#include <AK/HashMap.h>
@ -11,10 +12,9 @@
#include <fcntl.h>
#include <getopt.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include "Client.h"
static void run_command(int ptm_fd, String command)
{
pid_t pid = fork();
@ -81,7 +81,7 @@ static void run_command(int ptm_fd, String command)
int main(int argc, char** argv)
{
CEventLoop event_loop;
CTCPServer server;
auto server = CTCPServer::construct();
int opt;
u16 port = 23;
@ -96,7 +96,7 @@ int main(int argc, char** argv)
}
}
if (!server.listen({}, port)) {
if (!server->listen({}, port)) {
perror("listen");
exit(1);
}
@ -104,10 +104,10 @@ int main(int argc, char** argv)
HashMap<int, NonnullRefPtr<Client>> clients;
int next_id = 0;
server.on_ready_to_accept = [&next_id, &clients, &server] {
server->on_ready_to_accept = [&next_id, &clients, &server] {
int id = next_id++;
auto client_socket = server.accept();
auto client_socket = server->accept();
if (!client_socket) {
perror("accept");
return;
@ -122,7 +122,7 @@ int main(int argc, char** argv)
run_command(ptm_fd, "");
auto client = Client::create(id, client_socket, ptm_fd);
auto client = Client::create(id, move(client_socket), ptm_fd);
client->on_exit = [&clients, id] { clients.remove(id); };
clients.set(id, client);
};