Deskflow
1.26.0.418
Keyboard and mouse sharing utility
Toggle main menu visibility
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 Synergy App 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
15
class
ISocketMultiplexerJob
;
16
class
IEventQueue
;
17
class
SocketMultiplexer
;
18
20
23
class
TCPListenSocket
:
public
IListenSocket
24
{
25
public
:
26
TCPListenSocket
(
IEventQueue
*
events
,
SocketMultiplexer
*
socketMultiplexer
,
IArchNetwork::AddressFamily
family);
27
TCPListenSocket
(
TCPListenSocket
const
&) =
delete
;
28
TCPListenSocket
(
TCPListenSocket
&&) =
delete
;
29
~TCPListenSocket
()
override
;
30
31
TCPListenSocket
&
operator=
(
TCPListenSocket
const
&) =
delete
;
32
TCPListenSocket
&
operator=
(
TCPListenSocket
&&) =
delete
;
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
42
ISocketMultiplexerJob
*
serviceListening
(
ISocketMultiplexerJob
*,
bool
,
bool
,
bool
);
43
44
protected
:
45
void
setListeningJob
();
46
47
ArchSocket
socket
()
const
48
{
49
return
m_socket;
50
}
51
52
IEventQueue
*
events
()
const
53
{
54
return
m_events;
55
}
56
57
SocketMultiplexer
*
socketMultiplexer
()
const
58
{
59
return
m_socketMultiplexer;
60
}
61
62
private
:
63
ArchSocket
m_socket;
64
IEventQueue
*m_events;
65
SocketMultiplexer
*m_socketMultiplexer;
66
std::mutex m_mutex;
67
};
IArchNetwork.h
ArchSocket
ArchSocketImpl * ArchSocket
Opaque socket type. An opaque type representing a socket.
Definition
IArchNetwork.h:30
IListenSocket.h
IArchNetwork::AddressFamily
AddressFamily
Supported address families.
Definition
IArchNetwork.h:58
IEventQueue
Event queue interface.
Definition
IEventQueue.h:29
IListenSocket
Listen socket interface.
Definition
IListenSocket.h:22
ISocketMultiplexerJob
Socket multiplexer job.
Definition
ISocketMultiplexerJob.h:18
NetworkAddress
Network address type.
Definition
NetworkAddress.h:17
SocketMultiplexer
Socket multiplexer.
Definition
SocketMultiplexer.h:24
TCPListenSocket::TCPListenSocket
TCPListenSocket(TCPListenSocket &&)=delete
TCPListenSocket::close
void close() override
Close socket.
Definition
TCPListenSocket.cpp:78
TCPListenSocket::setListeningJob
void setListeningJob()
Definition
TCPListenSocket.cpp:118
TCPListenSocket::events
IEventQueue * events() const
Definition
TCPListenSocket.h:52
TCPListenSocket::socket
ArchSocket socket() const
Definition
TCPListenSocket.h:47
TCPListenSocket::serviceListening
ISocketMultiplexerJob * serviceListening(ISocketMultiplexerJob *, bool, bool, bool)
Definition
TCPListenSocket.cpp:126
TCPListenSocket::operator=
TCPListenSocket & operator=(TCPListenSocket &&)=delete
TCPListenSocket::accept
std::unique_ptr< IDataSocket > accept() override
Accept connection.
Definition
TCPListenSocket.cpp:98
TCPListenSocket::bind
void bind(const NetworkAddress &) override
Bind socket to address.
Definition
TCPListenSocket.cpp:51
TCPListenSocket::socketMultiplexer
SocketMultiplexer * socketMultiplexer() const
Definition
TCPListenSocket.h:57
TCPListenSocket::TCPListenSocket
TCPListenSocket(IEventQueue *events, SocketMultiplexer *socketMultiplexer, IArchNetwork::AddressFamily family)
Definition
TCPListenSocket.cpp:25
TCPListenSocket::TCPListenSocket
TCPListenSocket(TCPListenSocket const &)=delete
TCPListenSocket::operator=
TCPListenSocket & operator=(TCPListenSocket const &)=delete
TCPListenSocket::getEventTarget
void * getEventTarget() const override
Get event target.
Definition
TCPListenSocket.cpp:93
src
lib
net
TCPListenSocket.h
Generated by
1.18.0