9 #ifndef CLUON_UDPRECEIVER_HPP 10 #define CLUON_UDPRECEIVER_HPP 20 #include <netinet/in.h> 26 #include <condition_variable> 91 uint16_t receiveFromPort,
92 std::function<
void(std::string &&, std::string &&, std::chrono::system_clock::time_point &&)> delegate,
93 uint16_t localSendFromPort = 0) noexcept;
99 bool isRunning()
const noexcept;
107 void closeSocket(
int errorCode) noexcept;
109 void readFromSocket() noexcept;
112 int32_t m_socket{-1};
113 bool m_isBlockingSocket{
true};
114 std::set<unsigned long> m_listOfLocalIPAddresses{};
115 uint16_t m_localSendFromPort;
116 struct sockaddr_in m_receiveFromAddress {};
117 struct ip_mreq m_mreq {};
118 bool m_isMulticast{
false};
120 std::atomic<bool> m_readFromSocketThreadRunning{
false};
121 std::thread m_readFromSocketThread{};
124 std::function<void(std::string &&, std::string &&, std::chrono::system_clock::time_point)> m_delegate{};
127 class PipelineEntry {
131 std::chrono::system_clock::time_point m_sampleTime;
134 std::shared_ptr<cluon::NotifyingPipeline<PipelineEntry>> m_pipeline{};
#define LIBCLUON_API
Definition: cluon.hpp:56
Definition: UDPReceiver.hpp:74