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
|
||||
}
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue