From ca43e634b5adfebdcb9c3c8f61cebf38d42827e0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 13 Jan 2014 22:05:45 +0100 Subject: db/upnp: use std::function for the libupnp callback Replaces the bloated std::map. --- src/db/upnp/upnpplib.cxx | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'src/db/upnp/upnpplib.cxx') diff --git a/src/db/upnp/upnpplib.cxx b/src/db/upnp/upnpplib.cxx index d7c65ccf4..508315b26 100644 --- a/src/db/upnp/upnpplib.cxx +++ b/src/db/upnp/upnpplib.cxx @@ -65,15 +65,6 @@ LibUPnP::LibUPnP() ixmlRelaxParser(1); } -void -LibUPnP::registerHandler(Upnp_EventType et, Upnp_FunPtr handler, void *cookie) -{ - if (handler == nullptr) - m_handlers.erase(et); - else - m_handlers.emplace(et, Handler(handler, cookie)); -} - int LibUPnP::o_callback(Upnp_EventType et, void* evp, void* cookie) { @@ -83,10 +74,9 @@ LibUPnP::o_callback(Upnp_EventType et, void* evp, void* cookie) ulib = theLib; } - auto it = ulib->m_handlers.find(et); - if (it != ulib->m_handlers.end()) { - (it->second.handler)(et, evp, it->second.cookie); - } + if (ulib->handler) + ulib->handler(et, evp); + return UPNP_E_SUCCESS; } -- cgit v1.2.3