2012-06-10 16:50:54 +00:00
|
|
|
/*
|
2024-09-17 19:00:25 +00:00
|
|
|
* Deskflow -- mouse and keyboard sharing utility
|
2025-01-24 00:11:17 +00:00
|
|
|
* SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
|
|
|
|
|
* SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
|
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
|
2012-06-10 16:50:54 +00:00
|
|
|
*/
|
|
|
|
|
|
2014-02-28 12:36:45 +00:00
|
|
|
#pragma once
|
2012-06-10 16:50:54 +00:00
|
|
|
|
2018-03-20 15:22:52 +00:00
|
|
|
#include "arch/IArchNetwork.h"
|
2024-07-02 19:07:06 +00:00
|
|
|
#include "net/ISocketFactory.h"
|
2012-06-10 16:50:54 +00:00
|
|
|
|
2013-06-29 14:17:49 +00:00
|
|
|
class IEventQueue;
|
2014-11-11 13:51:47 +00:00
|
|
|
class SocketMultiplexer;
|
2013-06-29 14:17:49 +00:00
|
|
|
|
2012-06-10 16:50:54 +00:00
|
|
|
//! Socket factory for TCP sockets
|
2024-10-17 18:04:35 +00:00
|
|
|
class TCPSocketFactory : public ISocketFactory
|
|
|
|
|
{
|
2012-06-10 16:50:54 +00:00
|
|
|
public:
|
2024-07-02 19:07:06 +00:00
|
|
|
TCPSocketFactory(IEventQueue *events, SocketMultiplexer *socketMultiplexer);
|
|
|
|
|
virtual ~TCPSocketFactory();
|
2012-06-10 16:50:54 +00:00
|
|
|
|
2024-07-02 19:07:06 +00:00
|
|
|
// ISocketFactory overrides
|
2024-10-17 18:04:35 +00:00
|
|
|
virtual IDataSocket *create(bool secure, IArchNetwork::EAddressFamily family = IArchNetwork::kINET) const;
|
|
|
|
|
virtual IListenSocket *createListen(bool secure, IArchNetwork::EAddressFamily family = IArchNetwork::kINET) const;
|
2013-06-29 14:17:49 +00:00
|
|
|
|
|
|
|
|
private:
|
2024-07-02 19:07:06 +00:00
|
|
|
IEventQueue *m_events;
|
|
|
|
|
SocketMultiplexer *m_socketMultiplexer;
|
2012-06-10 16:50:54 +00:00
|
|
|
};
|