lib/upnp/Discovery: use DeferredMonitor instead of BlockingCall()
This commit is contained in:
@@ -22,7 +22,6 @@
|
||||
#include "ContentDirectoryService.hxx"
|
||||
#include "Log.hxx"
|
||||
#include "lib/curl/Global.hxx"
|
||||
#include "event/Call.hxx"
|
||||
#include "util/DeleteDisposer.hxx"
|
||||
#include "util/ScopeExit.hxx"
|
||||
#include "util/RuntimeError.hxx"
|
||||
@@ -34,7 +33,7 @@
|
||||
|
||||
UPnPDeviceDirectory::Downloader::Downloader(UPnPDeviceDirectory &_parent,
|
||||
const Upnp_Discovery &disco)
|
||||
:parent(_parent),
|
||||
:DeferredMonitor(_parent.GetEventLoop()), parent(_parent),
|
||||
id(disco.DeviceId), url(disco.Location),
|
||||
expires(std::chrono::seconds(disco.Expires)),
|
||||
request(*parent.curl, url.c_str(), *this)
|
||||
@@ -42,16 +41,6 @@ UPnPDeviceDirectory::Downloader::Downloader(UPnPDeviceDirectory &_parent,
|
||||
parent.downloaders.push_back(*this);
|
||||
}
|
||||
|
||||
void
|
||||
UPnPDeviceDirectory::Downloader::Start()
|
||||
{
|
||||
auto &event_loop = parent.GetEventLoop();
|
||||
|
||||
BlockingCall(event_loop, [this](){
|
||||
request.Start();
|
||||
});
|
||||
}
|
||||
|
||||
void
|
||||
UPnPDeviceDirectory::Downloader::Destroy()
|
||||
{
|
||||
@@ -59,6 +48,12 @@ UPnPDeviceDirectory::Downloader::Destroy()
|
||||
DeleteDisposer());
|
||||
}
|
||||
|
||||
void
|
||||
UPnPDeviceDirectory::Downloader::RunDeferred()
|
||||
{
|
||||
request.Start();
|
||||
}
|
||||
|
||||
void
|
||||
UPnPDeviceDirectory::Downloader::OnHeaders(unsigned status,
|
||||
std::multimap<std::string, std::string> &&)
|
||||
|
Reference in New Issue
Block a user