New Core Feature: Async Framework (Master Branch and 4.8)

I don’t suppose you could whip up an example of adapting this for use with IHttpRequest, could you? At the moment I have this horrible nonsense:


TFuture<FXmlFile*> FOsmClient::GetCapabilities()
{
	return Async<FXmlFile*>(EAsyncExecution::Thread, &]() -> FXmlFile* {
		TSharedRef<IHttpRequest> Request = HttpModule->CreateRequest();
		Request->SetURL("http//api.openstreetmaps.org/api/capabilities");
		Request->SetVerb("GET");
		Request->SetHeader(TEXT("User-Agent"), "X-UnrealEngine-Agent");
		Request->SetHeader(TEXT("Content-Type"), TEXT("application/xml"));
		Request->ProcessRequest();

		FHttpResponsePtr Response;
		while (!(Response = Request->GetResponse()).IsValid()) { }

		const FString Str = Response->GetContentAsString();
		FXmlFile* Content = new FXmlFile(Str, EConstructMethod::ConstructFromBuffer);
		return Content;
	});
}