32 #include <condition_variable>
41 explicit SocketAddress(
const std::string &hostName,
unsigned short port);
44 static bool isUnix(
const std::string &hostName);
49 return data() !=
nullptr;
52 const struct sockaddr *
data()
const
73 std::unique_ptr<struct sockaddr>
mData;
87 ssize_t
sendSocket(
const void *src,
size_t size);
91 bool connectSocket(
const std::string &hostName,
unsigned short port);
96 ssize_t
write(
const void *data,
size_t size);
98 void connectToHost(
const std::string &hostName,
unsigned short port);
132 std::function<void(
const char *,
size_t)>
onData;
std::unique_ptr< struct sockaddr > mData
static bool isUnix(const std::string &hostName)
static const char * unixDomainPrefix
const struct sockaddr * data() const
const struct sockaddr * operator&() const
static SocketAddress afUnix(const std::string &hostName)
static SocketAddress afInet(const std::string &hostName, unsigned short port)
bool createSocket(int domain)
SocketFileDescriptor socketFd
virtual ~TcpSocketPrivate()=default
std::function< void()> onDisconnected
TcpSocketPrivate(TcpSocket *parent)
std::atomic< TcpSocket::SocketState > socketState
ssize_t sendSocket(const void *src, size_t size)
std::function< void(const char *, size_t)> onData
std::condition_variable socketStateChanged
bool waitForConnectedSockets()
std::function< void(TcpSocket::SocketError)> onErrorOccurred
TcpSocket::SocketError socketError
bool connectSocket(const std::string &hostName, unsigned short port)
void connectToHost(const std::string &hostName, unsigned short port)
std::function< void()> onConnected
void setSocketState(TcpSocket::SocketState state)
ssize_t write(const void *data, size_t size)
void setSocketError(TcpSocket::SocketError error, ErrorType errorType=ErrorTypeSystem, const std::string &errorString="")
std::mutex socketStateMutex
ssize_t recvSocket(void *dst, size_t size)
void joinThread(std::thread &thread)
std::atomic< bool > isAboutToClose