Deskflow 1.24.0.365
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
48 {
49 return m_socket;
50 }
51
53 {
54 return m_events;
55 }
56
58 {
59 return m_socketMultiplexer;
60 }
61
62private:
63 ArchSocket m_socket;
64 IEventQueue *m_events;
65 SocketMultiplexer *m_socketMultiplexer;
66 std::mutex m_mutex;
67};
ArchSocketImpl * ArchSocket
Opaque socket type. An opaque type representing a socket.
Definition IArchNetwork.h:30
AddressFamily
Supported address families.
Definition IArchNetwork.h:58
Event queue interface.
Definition IEventQueue.h:29
Listen socket interface.
Definition IListenSocket.h:22
Socket multiplexer job.
Definition ISocketMultiplexerJob.h:18
Network address type.
Definition NetworkAddress.h:17
Socket multiplexer.
Definition SocketMultiplexer.h:24
TCPListenSocket(TCPListenSocket &&)=delete
void close() override
Close socket.
Definition TCPListenSocket.cpp:78
void setListeningJob()
Definition TCPListenSocket.cpp:118
IEventQueue * events() const
Definition TCPListenSocket.h:52
ArchSocket socket() const
Definition TCPListenSocket.h:47
ISocketMultiplexerJob * serviceListening(ISocketMultiplexerJob *, bool, bool, bool)
Definition TCPListenSocket.cpp:126
TCPListenSocket & operator=(TCPListenSocket &&)=delete
std::unique_ptr< IDataSocket > accept() override
Accept connection.
Definition TCPListenSocket.cpp:98
void bind(const NetworkAddress &) override
Bind socket to address.
Definition TCPListenSocket.cpp:51
SocketMultiplexer * socketMultiplexer() const
Definition TCPListenSocket.h:57
~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
void * getEventTarget() const override
Get event target.
Definition TCPListenSocket.cpp:93