Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CConnectorSocket.hpp
Go to the documentation of this file.
1#ifndef LIBS_COMM_CCONNECTORSOCKET_HPP_
2#define LIBS_COMM_CCONNECTORSOCKET_HPP_
3
5
7{
8public:
9 CConnectorSocket() = default;
12
13 explicit CConnectorSocket(const CSocketAddress &address)
14 {
15 connect(address);
16 }
17
18 CConnectorSocket(CConnectorSocket &&conn) noexcept : CStreamSocket(std::move(conn))
19 {
20 }
21
23 {
24 CStreamSocket::operator=(std::move(rhs));
25
26 return *this;
27 }
28
29 bool connect(const CSocketAddress &address, int32_t milliseconds = defaultConnectionTimeoutMs);
30
31 bool isConnected() const
32 {
33 return isOpen();
34 }
35
36private:
37 static constexpr int32_t defaultConnectionTimeoutMs = 1000;
38 bool prv_setTimeOut(socket_t fd, int32_t milliseconds);
39};
40
41template<typename STREAM_SOCK, typename ADDR = typename STREAM_SOCK::addr_t>
43{
44public:
45 using stream_sock_t = STREAM_SOCK;
46 using addr_t = ADDR;
47
51
52 explicit CConnectorSocketTmpl(const addr_t &address) : CConnectorSocket(address)
53 {
54 }
55
57 {
58 CConnectorSocket::operator=(std::move(rhs));
59
60 return *this;
61 }
62
63 bool connect(const addr_t &address)
64 {
65 return CConnectorSocket::connect(address);
66 }
67
72
77};
78
79#endif /* LIBS_COMM_CCONNECTORSOCKET_HPP_ */
int32_t socket_t
Definition ENetPort.hpp:13
Definition CConnectorSocket.hpp:43
STREAM_SOCK stream_sock_t
Definition CConnectorSocket.hpp:45
CConnectorSocketTmpl()=default
addr_t getPeerAddr() const
Definition CConnectorSocket.hpp:73
CConnectorSocketTmpl(const CConnectorSocketTmpl &)=delete
CConnectorSocketTmpl(const addr_t &address)
Definition CConnectorSocket.hpp:52
CConnectorSocketTmpl & operator=(CConnectorSocketTmpl &&rhs) noexcept
Definition CConnectorSocket.hpp:56
ADDR addr_t
Definition CConnectorSocket.hpp:46
bool connect(const addr_t &address)
Definition CConnectorSocket.hpp:63
addr_t getOwnAddress() const
Definition CConnectorSocket.hpp:68
CConnectorSocketTmpl & operator=(const CConnectorSocketTmpl &)=delete
Definition CConnectorSocket.hpp:7
CConnectorSocket & operator=(CConnectorSocket &&rhs) noexcept
Definition CConnectorSocket.hpp:22
CConnectorSocket(const CSocketAddress &address)
Definition CConnectorSocket.hpp:13
static constexpr int32_t defaultConnectionTimeoutMs
Definition CConnectorSocket.hpp:37
CConnectorSocket(CConnectorSocket &&conn) noexcept
Definition CConnectorSocket.hpp:18
bool prv_setTimeOut(socket_t fd, int32_t milliseconds)
Definition CConnectorSocket.cpp:23
CConnectorSocket & operator=(const CConnectorSocket &)=delete
bool isConnected() const
Definition CConnectorSocket.hpp:31
CConnectorSocket()=default
CConnectorSocket(const CConnectorSocket &)=delete
bool connect(const CSocketAddress &address, int32_t milliseconds=defaultConnectionTimeoutMs)
Definition CConnectorSocket.cpp:5
Definition CSocketAddress.hpp:91
virtual CSocketAddressAny getPeerAddress() const
Definition CSocket.cpp:152
bool isOpen() const
Comprueba que el handle del socket sea vĂ¡lido.
Definition CSocket.cpp:52
virtual CSocketAddressAny getAddress() const
Definition CSocket.cpp:139
Definition CStreamSocket.hpp:9
CStreamSocket & operator=(CStreamSocket &&rhs) noexcept
Definition CStreamSocket.hpp:25
CStreamSocket()=default