1//
2// StreamSocketImpl.h
3//
4// Library: Net
5// Package: Sockets
6// Module: StreamSocketImpl
7//
8// Definition of the StreamSocketImpl class.
9//
10// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
11// and Contributors.
12//
13// SPDX-License-Identifier: BSL-1.0
14//
15
16
17#ifndef Net_StreamSocketImpl_INCLUDED
18#define Net_StreamSocketImpl_INCLUDED
19
20
21#include "Poco/Net/Net.h"
22#include "Poco/Net/SocketImpl.h"
23
24
25namespace Poco {
26namespace Net {
27
28
29class Net_API StreamSocketImpl: public SocketImpl
30 /// This class implements a TCP socket.
31{
32public:
33 StreamSocketImpl();
34 /// Creates a StreamSocketImpl.
35
36 explicit StreamSocketImpl(SocketAddress::Family addressFamily);
37 /// Creates a SocketImpl, with the underlying
38 /// socket initialized for the given address family.
39
40 StreamSocketImpl(poco_socket_t sockfd);
41 /// Creates a StreamSocketImpl using the given native socket.
42
43 virtual int sendBytes(const void* buffer, int length, int flags = 0);
44 /// Ensures that all data in buffer is sent if the socket
45 /// is blocking. In case of a non-blocking socket, sends as
46 /// many bytes as possible.
47 ///
48 /// Returns the number of bytes sent. The return value may also be
49 /// negative to denote some special condition.
50
51protected:
52 virtual ~StreamSocketImpl();
53};
54
55
56} } // namespace Poco::Net
57
58
59#endif // Net_StreamSocketImpl_INCLUDED
60