33 std::vector<std::pair<std::string, std::string>>
txt;
66 std::scoped_lock lock{
mutex};
71 std::vector<ServiceData> ret;
85 std::scoped_lock lock{
mutex};
87 if (!copyCallback(data)) {
88 queue.emplace_back(std::forward<ServiceData>(data));
91 }
else if (moveCallback) {
92 moveCallback(std::move(data));
94 queue.emplace_back(std::forward<ServiceData>(data));
99 std::vector<ServiceData> queue;
101 std::function<bool(
const ServiceData&)> copyCallback;
102 std::function<void(ServiceData&&)> moveCallback;
103 std::unique_ptr<Impl> pImpl;
115 const char* serviceType);
unsigned int WPI_MulticastServiceResolverHandle
Definition MulticastServiceResolver.h:112
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)
struct WPI_ServiceData WPI_ServiceData
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:25
An atomic signaling event for synchronization.
Definition Synchronization.h:250
Definition MulticastServiceResolver.h:19
bool SetCopyCallback(std::function< bool(const ServiceData &)> callback)
Set a copy callback to be called when a service is resolved.
bool SetMoveCallback(std::function< void(ServiceData &&)> callback)
Set a move callback to be called when a service is resolved.
MulticastServiceResolver(std::string_view serviceType)
~MulticastServiceResolver() noexcept
void Start()
Starts multicast service resolver.
void Stop()
Stops multicast service resolver.
WPI_EventHandle GetEventHandle() const
Returns event handle.
Definition MulticastServiceResolver.h:59
std::vector< ServiceData > GetData()
Returns multicast service resolver data.
Definition MulticastServiceResolver.h:65
bool HasImplementation() const
Returns true if there's a multicast service resolver implementation.
Definition ntcore_cpp.h:26
::std::mutex mutex
Definition mutex.h:17
Definition MulticastServiceResolver.h:132
const char ** txtValues
Definition MulticastServiceResolver.h:139
uint32_t ipv4Address
Definition MulticastServiceResolver.h:133
const char * hostName
Definition MulticastServiceResolver.h:136
int32_t txtCount
Definition MulticastServiceResolver.h:137
const char ** txtKeys
Definition MulticastServiceResolver.h:138
const char * serviceName
Definition MulticastServiceResolver.h:135
int32_t port
Definition MulticastServiceResolver.h:134
Definition MulticastServiceResolver.h:23
std::vector< std::pair< std::string, std::string > > txt
Service data payload.
Definition MulticastServiceResolver.h:33
std::string hostName
Host name.
Definition MulticastServiceResolver.h:31
unsigned int ipv4Address
IPv4 address in host order.
Definition MulticastServiceResolver.h:25
int port
Port number in host order.
Definition MulticastServiceResolver.h:27
std::string serviceName
Service name.
Definition MulticastServiceResolver.h:29