11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
15PROMEKI_NAMESPACE_BEGIN
39class TcpSocket :
public AbstractSocket {
40 PROMEKI_OBJECT(TcpSocket, AbstractSocket)
46 TcpSocket(ObjectBase *parent =
nullptr);
49 ~TcpSocket()
override;
60 Error open(OpenMode mode)
override;
71 Error openIpv6(OpenMode mode);
77 Error close()
override;
80 bool isOpen()
const override {
return _fd >= 0; }
88 int64_t read(
void *data, int64_t maxSize)
override;
96 int64_t write(
const void *data, int64_t maxSize)
override;
102 int64_t bytesAvailable()
const override;
109 Error setNoDelay(
bool enable);
116 Error setKeepAlive(
bool enable);