libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
tcpsocket.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
14
15PROMEKI_NAMESPACE_BEGIN
16
39class TcpSocket : public AbstractSocket {
40 PROMEKI_OBJECT(TcpSocket, AbstractSocket)
41 public:
46 TcpSocket(ObjectBase *parent = nullptr);
47
49 ~TcpSocket() override;
50
60 Error open(OpenMode mode) override;
61
71 Error openIpv6(OpenMode mode);
72
77 Error close() override;
78
80 bool isOpen() const override { return _fd >= 0; }
81
88 int64_t read(void *data, int64_t maxSize) override;
89
96 int64_t write(const void *data, int64_t maxSize) override;
97
102 int64_t bytesAvailable() const override;
103
109 Error setNoDelay(bool enable);
110
116 Error setKeepAlive(bool enable);
117};
118
119PROMEKI_NAMESPACE_END
120
121#endif // PROMEKI_ENABLE_NETWORK