#include #include #include namespace mbgl { FileSourceRequest::FileSourceRequest(FileSource::Callback&& callback) : responseCallback(callback) , mailbox(std::make_shared(*Scheduler::GetCurrent())) { } FileSourceRequest::~FileSourceRequest() { if (cancelCallback) { cancelCallback(); } mailbox->close(); } void FileSourceRequest::onCancel(std::function&& callback) { cancelCallback = std::move(callback); } void FileSourceRequest::setResponse(const Response& response) { // Copy, because calling the callback will sometimes self // destroy this object. We cannot move because this method // can be called more than one. auto callback = responseCallback; callback(response); } ActorRef FileSourceRequest::actor() { return ActorRef(*this, mailbox); } } // namespace mbgl