refactor: server use std::unique_ptr for socketFactory
based on ff7f23e79d
This commit is contained in:
parent
dbc7aebfbc
commit
90a651b409
4 changed files with 17 additions and 10 deletions
|
|
@ -570,9 +570,9 @@ void ServerApp::handleScreenSwitched(const Event &e)
|
||||||
// do nothing
|
// 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
|
NetworkAddress ServerApp::getAddress(const NetworkAddress &address) const
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@
|
||||||
#include "net/NetworkAddress.h"
|
#include "net/NetworkAddress.h"
|
||||||
#include "server/Config.h"
|
#include "server/Config.h"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
enum EServerState
|
enum EServerState
|
||||||
{
|
{
|
||||||
kUninitialized,
|
kUninitialized,
|
||||||
|
|
@ -124,7 +126,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void handleScreenSwitched(const Event &e);
|
void handleScreenSwitched(const Event &e);
|
||||||
ISocketFactory *getSocketFactory() const;
|
std::unique_ptr<ISocketFactory> getSocketFactory() const;
|
||||||
NetworkAddress getAddress(const NetworkAddress &address) const;
|
NetworkAddress getAddress(const NetworkAddress &address) const;
|
||||||
|
|
||||||
Server *m_server = nullptr;
|
Server *m_server = nullptr;
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,10 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
ClientListener::ClientListener(
|
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_events(events),
|
||||||
m_securityLevel(securityLevel),
|
m_securityLevel(securityLevel),
|
||||||
m_address(address)
|
m_address(address)
|
||||||
|
|
@ -37,11 +38,11 @@ ClientListener::ClientListener(
|
||||||
start();
|
start();
|
||||||
} catch (XSocketAddressInUse &) {
|
} catch (XSocketAddressInUse &) {
|
||||||
cleanupListenSocket();
|
cleanupListenSocket();
|
||||||
delete m_socketFactory;
|
m_socketFactory.reset();
|
||||||
throw;
|
throw;
|
||||||
} catch (XBase &) {
|
} catch (XBase &) {
|
||||||
cleanupListenSocket();
|
cleanupListenSocket();
|
||||||
delete m_socketFactory;
|
m_socketFactory.reset();
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
LOG((CLOG_DEBUG1 "listening for clients"));
|
LOG((CLOG_DEBUG1 "listening for clients"));
|
||||||
|
|
@ -50,7 +51,7 @@ ClientListener::ClientListener(
|
||||||
ClientListener::~ClientListener()
|
ClientListener::~ClientListener()
|
||||||
{
|
{
|
||||||
stop();
|
stop();
|
||||||
delete m_socketFactory;
|
m_socketFactory.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientListener::setServer(Server *server)
|
void ClientListener::setServer(Server *server)
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
#include "server/Config.h"
|
#include "server/Config.h"
|
||||||
|
|
||||||
#include <deque>
|
#include <deque>
|
||||||
|
#include <memory>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
class ClientProxy;
|
class ClientProxy;
|
||||||
|
|
@ -29,7 +30,10 @@ class ClientListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// The factories are adopted.
|
// 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 const &) = delete;
|
||||||
ClientListener(ClientListener &&) = delete;
|
ClientListener(ClientListener &&) = delete;
|
||||||
~ClientListener();
|
~ClientListener();
|
||||||
|
|
@ -81,7 +85,7 @@ private:
|
||||||
using ClientSockets = std::set<IDataSocket *>;
|
using ClientSockets = std::set<IDataSocket *>;
|
||||||
|
|
||||||
IListenSocket *m_listen;
|
IListenSocket *m_listen;
|
||||||
ISocketFactory *m_socketFactory;
|
std::unique_ptr<ISocketFactory> m_socketFactory;
|
||||||
NewClients m_newClients;
|
NewClients m_newClients;
|
||||||
WaitingClients m_waitingClients;
|
WaitingClients m_waitingClients;
|
||||||
Server *m_server = nullptr;
|
Server *m_server = nullptr;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue