9 #ifndef CLUON_TCPCONNECTION_HPP 10 #define CLUON_TCPCONNECTION_HPP 20 #include <netinet/in.h> 112 std::function<
void(std::string &&, std::chrono::system_clock::time_point &&)> newDataDelegate =
nullptr,
113 std::function<
void()> connectionLostDelegate =
nullptr) noexcept;
118 void setOnNewData(
std::function<
void(
std::
string &&,
std::chrono::system_clock::time_point &&)> newDataDelegate) noexcept;
119 void setOnConnectionLost(
std::function<
void()> connectionLostDelegate) noexcept;
125 bool isRunning() const noexcept;
133 std::pair<ssize_t, int32_t> send(
std::
string &&data) const noexcept;
141 void closeSocket(
int errorCode) noexcept;
142 void startReadingFromSocket() noexcept;
143 void readFromSocket() noexcept;
146 mutable
std::mutex m_socketMutex{};
147 int32_t m_socket{-1};
148 bool m_cleanup{
true};
149 struct sockaddr_in m_address {};
151 std::atomic<bool> m_readFromSocketThreadRunning{
false};
152 std::thread m_readFromSocketThread{};
154 std::mutex m_newDataDelegateMutex{};
155 std::function<void(std::string &&, std::chrono::system_clock::time_point)> m_newDataDelegate{};
157 mutable std::mutex m_connectionLostDelegateMutex{};
158 std::function<void()> m_connectionLostDelegate{};
161 class PipelineEntry {
164 std::chrono::system_clock::time_point m_sampleTime;
167 std::shared_ptr<cluon::NotifyingPipeline<PipelineEntry>> m_pipeline{};
Definition: TCPServer.hpp:33
#define LIBCLUON_API
Definition: cluon.hpp:56
Definition: TCPConnection.hpp:84