17class DataArraySocket :
public AbstractTlsSocket {
18 friend class DataArrayAbstractTcp;
19 friend class DataArrayTcpClient;
20 friend class RrdClient;
25 ~DataArraySocket()
override;
30 bool transmit(
const DataArray &, uint32_t,
bool =
false)
const;
31 void clearBuffer(
const DataArray *)
const;
32 int connectTimeout()
const {
return waitForConnectTimeoutInterval; }
33 void setConnectTimeout(
int timeout) { waitForConnectTimeoutInterval = timeout; }
34 int reconnectTimeout()
const {
return reconnectTimeoutInterval; }
35 void setReconnectTimeout(
int timeout) { reconnectTimeoutInterval = timeout; }
36 void setReadTimeout(
int timeout) { readTimeoutInterval = timeout; }
37 void setWaitForEncryptedTimeout(
int timeout) { waitForEncryptedTimeoutInterval = timeout; }
38 void setWaitKeepAliveAnswerTimeout(
int timeout) { ((waitKeepAliveAnswerTimeoutInterval = timeout) > 0) ? waitTimerType |= 0x80 : waitTimerType &= ~0x80; }
39 void setReadBuffers(
int buffers,
int size) {
40 maxReadBuffers = buffers;
43 void setWriteBuffers(
int buffers,
int size) {
44 maxWriteBuffers = buffers;
47 void initServerConnection();
48 void setHost(
const std::string &address, uint16_t port)
const {
49 hostAddress_v = address;
52 const std::string hostAddress()
const {
return hostAddress_v; }
53 uint16_t hostPort()
const {
return hostPort_v; }
54 void transmitKeepAlive() { transmitKeepAlive(
true); }
55 AbstractSocket::State state()
const {
return state_; }
57 bool connect(
const std::string &, uint16_t)
override;
58 void disconnect()
override;
60 mutable FunctionConnectorProtected<DataArraySocket>::Connector<AbstractSocket::State> stateChanged {AbstractFunctionConnector::DirectOnly};
61 mutable FunctionConnectorProtected<DataArraySocket>::Connector<
const DataArray *, uint32_t> received {AbstractFunctionConnector::DirectOnly};
64 void stateEvent()
override;
65 void readEvent()
override;
66 using AbstractTlsSocket::connect;
71 uint8_t waitTimerType;
76 int waitForConnectTimeoutInterval;
77 int reconnectTimeoutInterval;
78 int readTimeoutInterval;
79 int waitForEncryptedTimeoutInterval;
80 int waitKeepAliveAnswerTimeoutInterval;
84 mutable bool waitForTransmit;
85 mutable std::vector<DataArray *> receiveList;
86 mutable std::string address;
87 mutable uint16_t port;
88 mutable std::string hostAddress_v;
89 mutable uint16_t hostPort_v;
90 mutable std::deque<DataArray> transmitList;
92 bool connectToHost(
int timeout);
93 void clearBuffer_(
const DataArray *)
const;
95 void transmitKeepAlive(
bool);
96 std::string peerString()
const;
97 void startTimer(
int _ms);
The TlsContext class provides functionality for managing TLS certificates.
Definition TlsContext.h:24