38 std::vector<std::pair<std::string, std::string>>
txt;
77 std::scoped_lock lock{mutex};
84 std::vector<ServiceData> ret;
100 std::scoped_lock lock{mutex};
103 if (!copyCallback(data)) {
104 queue.emplace_back(std::forward<ServiceData>(data));
107 }
else if (moveCallback) {
108 moveCallback(std::move(data));
110 queue.emplace_back(std::forward<ServiceData>(data));
115 wpi::util::Event
event{
true};
116 std::vector<ServiceData> queue;
118 std::function<bool(
const ServiceData&)> copyCallback;
120 std::unique_ptr<Impl> pImpl;
134 const char* serviceType);
unsigned int WPI_MulticastServiceResolverHandle
Definition MulticastServiceResolver.h:131
void WPI_StopMulticastServiceResolver(WPI_MulticastServiceResolverHandle handle)
void WPI_FreeMulticastServiceResolver(WPI_MulticastServiceResolverHandle handle)
WPI_MulticastServiceResolverHandle WPI_CreateMulticastServiceResolver(const char *serviceType)
void WPI_StartMulticastServiceResolver(WPI_MulticastServiceResolverHandle handle)
WPI_EventHandle WPI_GetMulticastServiceResolverEventHandle(WPI_MulticastServiceResolverHandle handle)
int32_t WPI_GetMulticastServiceResolverHasImplementation(WPI_MulticastServiceResolverHandle handle)
void WPI_FreeServiceData(WPI_ServiceData *serviceData, int32_t length)
WPI_ServiceData * WPI_GetMulticastServiceResolverData(WPI_MulticastServiceResolverHandle handle, int32_t *dataCount)
WPI_Handle WPI_EventHandle
An event handle.
Definition Synchronization.h:18
void Stop()
Stops multicast service resolver.
bool HasImplementation() const
Returns true if there's a multicast service resolver implementation.
void Start()
Starts multicast service resolver.
~MulticastServiceResolver() noexcept
MulticastServiceResolver(std::string_view serviceType)
bool SetCopyCallback(std::function< bool(const ServiceData &)> callback)
Set a copy callback to be called when a service is resolved.
WPI_EventHandle GetEventHandle() const
Returns event handle.
Definition MulticastServiceResolver.h:69
bool SetMoveCallback(std::function< void(ServiceData &&)> callback)
Set a move callback to be called when a service is resolved.
std::vector< ServiceData > GetData()
Returns multicast service resolver data.
Definition MulticastServiceResolver.h:76
Definition raw_socket_ostream.hpp:9
::std::mutex mutex
Definition mutex.hpp:17
Definition MulticastServiceResolver.h:151
const char ** txtValues
Definition MulticastServiceResolver.h:158
uint32_t ipv4Address
Definition MulticastServiceResolver.h:152
const char * hostName
Definition MulticastServiceResolver.h:155
int32_t txtCount
Definition MulticastServiceResolver.h:156
const char ** txtKeys
Definition MulticastServiceResolver.h:157
const char * serviceName
Definition MulticastServiceResolver.h:154
int32_t port
Definition MulticastServiceResolver.h:153
Definition MulticastServiceResolver.h:28
std::string serviceName
Service name.
Definition MulticastServiceResolver.h:34
int port
Port number in host order.
Definition MulticastServiceResolver.h:32
unsigned int ipv4Address
IPv4 address in host order.
Definition MulticastServiceResolver.h:30
std::vector< std::pair< std::string, std::string > > txt
Service data payload.
Definition MulticastServiceResolver.h:38
std::string hostName
Host name.
Definition MulticastServiceResolver.h:36