From f0ef2b9576331658a940b7b511496ed9701dea39 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Tue, 18 Mar 2014 18:35:35 +0100 Subject: [PATCH] Expose HTTP client to Canvas. --- src/Canvas/FGCanvasSystemAdapter.cxx | 16 ++++++++++++++++ src/Canvas/FGCanvasSystemAdapter.hxx | 1 + src/Scripting/NasalHTTP.cxx | 7 ++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/Canvas/FGCanvasSystemAdapter.cxx b/src/Canvas/FGCanvasSystemAdapter.cxx index ad774fd43..69ea6c5a4 100644 --- a/src/Canvas/FGCanvasSystemAdapter.cxx +++ b/src/Canvas/FGCanvasSystemAdapter.cxx @@ -20,6 +20,7 @@ #include
#include
+#include #include #include @@ -98,4 +99,19 @@ namespace canvas return 0; } + //---------------------------------------------------------------------------- + simgear::HTTP::Client* FGCanvasSystemAdapter::getHTTPClient() const + { + FGHTTPClient* http = + static_cast(globals->get_subsystem("http")); + + if( http ) + return http->client(); + + SG_LOG( SG_IO, + SG_ALERT, + "FGCanvasSystemAdapter: Failed to get HTTP subsystem" ); + return 0; + } + } diff --git a/src/Canvas/FGCanvasSystemAdapter.hxx b/src/Canvas/FGCanvasSystemAdapter.hxx index 03ff2df36..e568302d7 100644 --- a/src/Canvas/FGCanvasSystemAdapter.hxx +++ b/src/Canvas/FGCanvasSystemAdapter.hxx @@ -31,6 +31,7 @@ namespace canvas virtual void addCamera(osg::Camera* camera) const; virtual void removeCamera(osg::Camera* camera) const; virtual osg::Image* getImage(const std::string& path) const; + virtual simgear::HTTP::Client* getHTTPClient() const; }; } diff --git a/src/Scripting/NasalHTTP.cxx b/src/Scripting/NasalHTTP.cxx index ae55204ac..637e3a3ac 100644 --- a/src/Scripting/NasalHTTP.cxx +++ b/src/Scripting/NasalHTTP.cxx @@ -82,6 +82,7 @@ static naRef f_http_load(const nasal::CallContext& ctx) naRef initNasalHTTP(naRef globals, naContext c) { using simgear::HTTP::Request; + typedef Request* (Request::*HTTPCallback)(const Request::Callback&); NasalRequest::init("http.Request") .member("url", &Request::url) .member("method", &Request::method) @@ -94,9 +95,9 @@ naRef initNasalHTTP(naRef globals, naContext c) .member("reason", &Request::responseReason) .member("readyState", &Request::readyState) .method("abort", static_cast(&Request::abort)) - .method("done", &Request::done) - .method("fail", &Request::fail) - .method("always", &Request::always); + .method("done", static_cast(&Request::done)) + .method("fail", static_cast(&Request::fail)) + .method("always", static_cast(&Request::always)); using simgear::HTTP::FileRequest; NasalFileRequest::init("http.FileRequest") -- 2.39.5