refactor: server use std::unique_ptr for socketFactory

based on ff7f23e79d
This commit is contained in:
sithlord48 2025-06-18 17:12:03 -04:00 committed by Nick Bolton
parent dbc7aebfbc
commit 90a651b409
4 changed files with 17 additions and 10 deletions

View file

@ -570,9 +570,9 @@ void ServerApp::handleScreenSwitched(const Event &e)
// do nothing
}
ISocketFactory *ServerApp::getSocketFactory() const
std::unique_ptr<ISocketFactory> ServerApp::getSocketFactory() const
{
return new TCPSocketFactory(m_events, getSocketMultiplexer());
return std::make_unique<TCPSocketFactory>(m_events, getSocketMultiplexer());
}
NetworkAddress ServerApp::getAddress(const NetworkAddress &address) const

View file

@ -17,6 +17,8 @@
#include "net/NetworkAddress.h"
#include "server/Config.h"
#include <memory>
enum EServerState
{
kUninitialized,
@ -124,7 +126,7 @@ public:
private:
void handleScreenSwitched(const Event &e);
ISocketFactory *getSocketFactory() const;
std::unique_ptr<ISocketFactory> getSocketFactory() const;
NetworkAddress getAddress(const NetworkAddress &address) const;
Server *m_server = nullptr;

View file

@ -24,9 +24,10 @@
//
ClientListener::ClientListener(
const NetworkAddress &address, ISocketFactory *socketFactory, IEventQueue *events, SecurityLevel securityLevel
const NetworkAddress &address, std::unique_ptr<ISocketFactory> socketFactory, IEventQueue *events,
SecurityLevel securityLevel
)
: m_socketFactory(socketFactory),
: m_socketFactory{std::move(socketFactory)},
m_events(events),
m_securityLevel(securityLevel),
m_address(address)
@ -37,11 +38,11 @@ ClientListener::ClientListener(
start();
} catch (XSocketAddressInUse &) {
cleanupListenSocket();
delete m_socketFactory;
m_socketFactory.reset();
throw;
} catch (XBase &) {
cleanupListenSocket();
delete m_socketFactory;
m_socketFactory.reset();
throw;
}
LOG((CLOG_DEBUG1 "listening for clients"));
@ -50,7 +51,7 @@ ClientListener::ClientListener(
ClientListener::~ClientListener()
{
stop();
delete m_socketFactory;
m_socketFactory.reset();
}
void ClientListener::setServer(Server *server)

View file

@ -14,6 +14,7 @@
#include "server/Config.h"
#include <deque>
#include <memory>
#include <set>
class ClientProxy;
@ -29,7 +30,10 @@ class ClientListener
{
public:
// The factories are adopted.
ClientListener(const NetworkAddress &, ISocketFactory *, IEventQueue *events, SecurityLevel securityLevel);
ClientListener(
const NetworkAddress &, std::unique_ptr<ISocketFactory> socketFactory, IEventQueue *events,
SecurityLevel securityLevel
);
ClientListener(ClientListener const &) = delete;
ClientListener(ClientListener &&) = delete;
~ClientListener();
@ -81,7 +85,7 @@ private:
using ClientSockets = std::set<IDataSocket *>;
IListenSocket *m_listen;
ISocketFactory *m_socketFactory;
std::unique_ptr<ISocketFactory> m_socketFactory;
NewClients m_newClients;
WaitingClients m_waitingClients;
Server *m_server = nullptr;