4#ifndef _Stroika_Frameworks_UPnP_SSDP_Client_Search_h_
5#define _Stroika_Frameworks_UPnP_SSDP_Client_Search_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
12#include "Stroika/Foundation/IO/Network/InternetProtocol/IP.h"
14#include "Stroika/Frameworks/UPnP/Device.h"
24namespace Stroika::Frameworks::UPnP::SSDP::Client {
60 static const Options kDefaultOptions;
82 Search (
const Options& options = kDefaultOptions);
83 Search (
const function<
void (
const SSDP::Advertisement& d)>& callOnFinds,
const Options& options = kDefaultOptions);
84 Search (
const function<
void (
const SSDP::Advertisement& d)>& callOnFinds,
const String& initialSearch,
85 const Options& options = kDefaultOptions);
86 Search (
const function<
void (
const SSDP::Advertisement& d)>& callOnFinds,
const String& initialSearch,
87 const optional<Time::Duration>& autoRetryInterval,
88 const Options& options = kDefaultOptions);
89 Search (Search&&) =
default;
90 Search (
const Search&) =
delete;
99 nonvirtual
const Search& operator= (
const Search&) =
delete;
114 nonvirtual CallbackID AddOnFoundCallback (
const function<
void (
const SSDP::Advertisement& d)>& callOnFinds);
122 nonvirtual
void RemoveOnFoundCallback (CallbackID callOnFinds);
135 static const String kSSDPAny;
141 static const String kRootDevice;
176 nonvirtual
void Start (
const String& serviceType,
const optional<Time::Duration>& autoRetryInterval = nullopt);
183 nonvirtual
void Stop ();
187 shared_ptr<Rep_> fRep_;
bool DefaultInterfaceFilter(const Foundation::IO::Network::Interface &i)
SSDP's default InterfaceFilter: an interface that is running, and not loopback (whose multicast suppo...
constexpr uint8_t kDefaultMulticastTTL
The TTL (IPv6: hop limit) multicast SSDP packets - NOTIFYs and M-SEARCHes - go out with,...
function< bool(const Foundation::IO::Network::Interface &i)> InterfaceFilter
Which network interfaces SSDP is to talk on - asked of each interface every time SSDP lists them,...
String is like std::u32string, except it is much easier to use, often much more space efficient,...
a cross between Mapping<KEY, T> and Collection<T> and Set<T>
The callbacks an object calls when something happens - each added, and removed by the ID Add gave it ...
InterfaceFilter fInterfaces
IO::Network::InternetProtocol::IP::IPVersionSupport fIPVersion
bool fFollowNetworkChanges