forked from pocoproject/poco
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTCPServerConnection.h
More file actions
88 lines (68 loc) · 1.97 KB
/
TCPServerConnection.h
File metadata and controls
88 lines (68 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//
// TCPServerConnection.h
//
// $Id: //poco/1.4/Net/include/Poco/Net/TCPServerConnection.h#1 $
//
// Library: Net
// Package: TCPServer
// Module: TCPServerConnection
//
// Definition of the TCPServerConnection class.
//
// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Net_TCPServerConnection_INCLUDED
#define Net_TCPServerConnection_INCLUDED
#include "Poco/Net/Net.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Runnable.h"
namespace Poco {
namespace Net {
class Net_API TCPServerConnection: public Poco::Runnable
/// The abstract base class for TCP server connections
/// created by TCPServer.
///
/// Derived classes must override the run() method
/// (inherited from Runnable). Furthermore, a
/// TCPServerConnectionFactory must be provided for the subclass.
///
/// The run() method must perform the complete handling
/// of the client connection. As soon as the run() method
/// returns, the server connection object is destroyed and
/// the connection is automatically closed.
///
/// A new TCPServerConnection object will be created for
/// each new client connection that is accepted by
/// TCPServer.
{
public:
TCPServerConnection(const StreamSocket& socket);
/// Creates the TCPServerConnection using the given
/// stream socket.
virtual ~TCPServerConnection();
/// Destroys the TCPServerConnection.
protected:
StreamSocket& socket();
/// Returns a reference to the underlying socket.
void start();
/// Calls run() and catches any exceptions that
/// might be thrown by run().
private:
TCPServerConnection();
TCPServerConnection(const TCPServerConnection&);
TCPServerConnection& operator = (const TCPServerConnection&);
StreamSocket _socket;
friend class TCPServerDispatcher;
};
//
// inlines
//
inline StreamSocket& TCPServerConnection::socket()
{
return _socket;
}
} } // namespace Poco::Net
#endif // Net_TCPServerConnection_INCLUDED