From ea34cb5725815dbb5075205b01407a00329a3542 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Wed, 21 Jun 2017 17:39:29 +0300 Subject: [core] Use the ResourceTransform instead of callbacks Based on the actor model, can be considered safer to use since we don't need to worry about object lifetime anymore. --- platform/default/default_file_source.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'platform/default/default_file_source.cpp') diff --git a/platform/default/default_file_source.cpp b/platform/default/default_file_source.cpp index dc3e71b0c0..bf8d7b6348 100644 --- a/platform/default/default_file_source.cpp +++ b/platform/default/default_file_source.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -49,7 +50,7 @@ public: return onlineFileSource.getAccessToken(); } - void setResourceTransform(OnlineFileSource::ResourceTransform&& transform) { + void setResourceTransform(optional>&& transform) { onlineFileSource.setResourceTransform(std::move(transform)); } @@ -227,17 +228,8 @@ std::string DefaultFileSource::getAccessToken() { return cachedAccessToken; } -void DefaultFileSource::setResourceTransform(std::function transform) { - if (transform) { - auto loop = util::RunLoop::Get(); - impl->actor().invoke(&Impl::setResourceTransform, [loop, transform](Resource::Kind kind_, std::string&& url_, auto callback_) { - return loop->invokeWithCallback([transform](Resource::Kind kind, std::string&& url, auto callback) { - callback(transform(kind, std::move(url))); - }, kind_, std::move(url_), callback_); - }); - } else { - impl->actor().invoke(&Impl::setResourceTransform, nullptr); - } +void DefaultFileSource::setResourceTransform(optional>&& transform) { + impl->actor().invoke(&Impl::setResourceTransform, std::move(transform)); } std::unique_ptr DefaultFileSource::request(const Resource& resource, Callback callback) { -- cgit v1.2.1