1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-02-22 20:57:12 +01:00
SqMod/vendor/POCO/Net/include/Poco/Net/TCPServerConnection.h
2023-03-23 20:19:11 +02:00

87 lines
1.9 KiB
C++

//
// TCPServerConnection.h
//
// 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