4#ifndef _Stroika_Frameworks_UPnP_SSDP_Client_CachingListener_h_
5#define _Stroika_Frameworks_UPnP_SSDP_Client_CachingListener_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
12#include "Stroika/Foundation/Containers/Collection.h"
24namespace Stroika::Frameworks::UPnP::SSDP::Client {
111 using AutoStart = Listener::AutoStart;
112 static constexpr AutoStart eAutoStart{Listener::eAutoStart};
147 static const Options kDefaultOptions;
158 CachingListener (
const function<
void (
const SSDP::Advertisement& d)>& callOnChanges,
const Options& options = kDefaultOptions);
159 CachingListener (
const function<
void (
const SSDP::Advertisement& d)>& callOnChanges,
const Options& options,
161 CachingListener (
const function<
void (
const SSDP::Advertisement& d)>& callOnChanges, AutoStart);
220 nonvirtual
void Start ();
230 nonvirtual
void Stop ();
234 shared_ptr<Rep_> fRep_;
244#include "CachingListener.inl"
constexpr uint8_t kDefaultMulticastTTL
The TTL (IPv6: hop limit) multicast SSDP packets - NOTIFYs and M-SEARCHes - go out with,...
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
a cross between Mapping<KEY, T> and Collection<T> and Set<T>
A Listener that remembers: the SSDP advertisements in force around it - each kept from its ssdp:alive...
nonvirtual CallbackID AddOnChangeCallback(const function< void(const SSDP::Advertisement &d)> &callOnChanges)
Call callOnChanges too, with each change from now on - what it holds already, GetAdvertisements () re...
nonvirtual Containers::Collection< SSDP::Advertisement > GetAdvertisements() const
The advertisements in force: each added, and not yet removed - fAlive true. Safe to call from any thr...
nonvirtual IO::Network::InterfacesByID GetNetworkInterfaces() const
The network interfaces it is listening on now (.
nonvirtual void RemoveOnChangeCallback(CallbackID callOnChanges)
Once this returns, that callback is not running, and is never called again - except that,...
Listener::CallbackID CallbackID
Names a callback AddOnChangeCallback added, for RemoveOnChangeCallback - Listener's.
Execution::CallbackRegistry< void(const SSDP::Advertisement &)>::ID CallbackID
Names a callback AddOnFoundCallback added, for RemoveOnFoundCallback.
Listener::Options fListenerOptions
optional< Foundation::Time::Duration > fSearchRepeatInterval
optional< String > fSearchFor