Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
TCPListenSocket.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include "arch/IArchNetwork.h"
11#include "net/IListenSocket.h"
12
13#include <mutex>
14
16class IEventQueue;
18
20
24{
25public:
29 ~TCPListenSocket() override;
30
33
34 // ISocket overrides
35 void bind(const NetworkAddress &) override;
36 void close() override;
37 void *getEventTarget() const override;
38
39 // IListenSocket overrides
40 std::unique_ptr<IDataSocket> accept() override;
41
43
44protected:
45 void setListeningJob();
46
50
51private:
52 std::mutex m_mutex;
53};
ArchSocketImpl * ArchSocket
Opaque socket type. An opaque type representing a socket.
Definition IArchNetwork.h:30
AddressFamily
Supported address families.
Definition IArchNetwork.h:57
Event queue interface.
Definition IEventQueue.h:32
Listen socket interface.
Definition IListenSocket.h:23
Socket multiplexer job.
Definition ISocketMultiplexerJob.h:18
Network address type.
Definition NetworkAddress.h:18
Socket multiplexer.
Definition SocketMultiplexer.h:26
SocketMultiplexer * m_socketMultiplexer
Definition TCPListenSocket.h:49
TCPListenSocket(TCPListenSocket &&)=delete
void close() override
Close socket.
Definition TCPListenSocket.cpp:70
void setListeningJob()
Definition TCPListenSocket.cpp:110
ISocketMultiplexerJob * serviceListening(ISocketMultiplexerJob *, bool, bool, bool)
Definition TCPListenSocket.cpp:118
TCPListenSocket & operator=(TCPListenSocket &&)=delete
std::unique_ptr< IDataSocket > accept() override
Accept connection.
Definition TCPListenSocket.cpp:90
void bind(const NetworkAddress &) override
Bind socket to address.
Definition TCPListenSocket.cpp:51
~TCPListenSocket() override
Definition TCPListenSocket.cpp:38
TCPListenSocket(IEventQueue *events, SocketMultiplexer *socketMultiplexer, IArchNetwork::AddressFamily family)
Definition TCPListenSocket.cpp:25
TCPListenSocket(TCPListenSocket const &)=delete
TCPListenSocket & operator=(TCPListenSocket const &)=delete
ArchSocket m_socket
Definition TCPListenSocket.h:48
IEventQueue * m_events
Definition TCPListenSocket.h:47
void * getEventTarget() const override
Get event target.
Definition TCPListenSocket.cpp:85