diff --git a/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h b/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h index 978f38e9e2b61073c988ef1ddb8962f2a2b701ae..b81ffce98cf8bdfd3e4013c3a6396afc0bf1487d 100644 --- a/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h +++ b/Modules/Adapters/CurlAdapters/include/otbCurlHelper.h @@ -46,8 +46,11 @@ public: itkNewMacro(Self); bool TestUrlAvailability(const std::string& url) const; + bool IsCurlReturnHttpError(const std::string& url) const; + int RetrieveFile(const std::ostringstream& urlStream, std::string filename) const; + int RetrieveFile(const std::string& urlString, std::string filename) const; int RetrieveUrlInMemory(const std::string& urlString, std::string& output) const; @@ -57,6 +60,7 @@ public: int maxConnect) const; itkGetMacro(Timeout,long int); + itkSetMacro(Timeout,long int); protected: diff --git a/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h b/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h index 0f150cb9eec0d78e2866849141adde000f66a1ea..da7da9eea36b2befb83dbba1b030459d2b2b103e 100644 --- a/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h +++ b/Modules/Adapters/CurlAdapters/include/otbCurlHelperStub.h @@ -41,11 +41,15 @@ public: typedef CurlHelperInterface Superclass; itkTypeMacro(CurlHelperStub, CurlHelperInterface); + itkNewMacro(Self); bool TestUrlAvailability(const std::string& url) const; + int RetrieveUrlInMemory(const std::string& urlString, std::string& output) const; + int RetrieveFile(const std::ostringstream& urlStream, std::string filename) const; + int RetrieveFile(const std::string& urlString, std::string filename) const; int RetrieveFileMulti(const std::vector<std::string>& listURLs, diff --git a/Modules/Adapters/CurlAdapters/otb-module.cmake b/Modules/Adapters/CurlAdapters/otb-module.cmake index fdb493690c2249cba68b20ca0b75bc38ad8ea4b9..107dc5e638890b1e111a1ce33244b5ea06c5cbc8 100644 --- a/Modules/Adapters/CurlAdapters/otb-module.cmake +++ b/Modules/Adapters/CurlAdapters/otb-module.cmake @@ -2,11 +2,11 @@ set(DOCUMENTATION "Adapters for the Curl library.") otb_module(OTBCurlAdapters DEPENDS - OTBCurl OTBCommon + OPTIONAL_DEPENDS + OTBCurl TEST_DEPENDS OTBTestKernel - DESCRIPTION "${DOCUMENTATION}" ) diff --git a/Modules/Adapters/CurlAdapters/src/CMakeLists.txt b/Modules/Adapters/CurlAdapters/src/CMakeLists.txt index 58af5bbee6349e3188f9413c59090f7fc72f986f..9a0164c41255fbc3027fcb740d763ba13528eaa0 100644 --- a/Modules/Adapters/CurlAdapters/src/CMakeLists.txt +++ b/Modules/Adapters/CurlAdapters/src/CMakeLists.txt @@ -5,10 +5,12 @@ set(OTBCurlAdapters_SRC ) add_library(OTBCurlAdapters ${OTBCurlAdapters_SRC}) -target_link_libraries(OTBCurlAdapters - ${OTBCurl_LIBRARIES} +target_link_libraries(OTBCurlAdapters ${OTBCommon_LIBRARIES} - ) +if (OTBCurl_ENABLED) + target_link_libraries(OTBCurlAdapters ${OTBCurl_LIBRARIES}) +endif() + otb_module_target(OTBCurlAdapters) diff --git a/Modules/Adapters/CurlAdapters/src/otbCurlHelper.cxx b/Modules/Adapters/CurlAdapters/src/otbCurlHelper.cxx index 735546c7e54f47a7373cd1b7b84eec9e97cf98dc..2c5bab2870fbf58e2359389bad03ad1a0fb268ea 100644 --- a/Modules/Adapters/CurlAdapters/src/otbCurlHelper.cxx +++ b/Modules/Adapters/CurlAdapters/src/otbCurlHelper.cxx @@ -145,7 +145,7 @@ private: CurlMultiResource (const CurlMultiResource &); CurlMultiResource & operator= (const CurlMultiResource &); }; //end of class CurlMultiResource -#endif +#endif // OTB_CURL_MULTI_AVAILABLE /** * Resource class that create FILE * and close the FILE * descriptor @@ -194,7 +194,7 @@ private: CurlFileDescriptorResource & operator= (const CurlFileDescriptorResource &); }; //end of class FileResource -#endif // Necessary only if Curl Availabale +#endif // OTB_USE_CURL bool CurlHelper::TestUrlAvailability(const std::string& url) const { diff --git a/Modules/Adapters/CurlAdapters/src/otbCurlHelperInterface.cxx b/Modules/Adapters/CurlAdapters/src/otbCurlHelperInterface.cxx index 29a98b9eef770635d6bf9715710adcd5cc5bb8be..c68f801648525bd4b0536351715d4c6c3aa095c8 100644 --- a/Modules/Adapters/CurlAdapters/src/otbCurlHelperInterface.cxx +++ b/Modules/Adapters/CurlAdapters/src/otbCurlHelperInterface.cxx @@ -24,22 +24,24 @@ namespace otb { bool CurlHelperInterface::IsCurlAvailable() { - bool curlAvailable = false; - #ifdef OTB_USE_CURL - curlAvailable = true; + const bool curlAvailable = true; +#else + const bool curlAvailable = false; #endif + return curlAvailable; } bool CurlHelperInterface::IsCurlMultiAvailable() { - bool curlMultiAvailable = false; - #ifdef OTB_CURL_MULTI_AVAILABLE - curlMultiAvailable = true; + const bool curlMultiAvailable = true; +#else + const bool curlMultiAvailable = false; #endif + return curlMultiAvailable; } diff --git a/Modules/ThirdParty/Curl/otb-module.cmake b/Modules/ThirdParty/Curl/otb-module.cmake index aa731608a2bf02008899f9ab073e8f7e1b788e15..e183aba37a68e7107d4135c8cdd8ad9ad8b07db5 100644 --- a/Modules/ThirdParty/Curl/otb-module.cmake +++ b/Modules/ThirdParty/Curl/otb-module.cmake @@ -8,3 +8,5 @@ otb_module(OTBCurl DESCRIPTION "${DOCUMENTATION}" ) + +otb_module_activation_option("Enable curl based functionnalities" ON) diff --git a/TODO b/TODO index 6276466e76cd77cbf2ef537a9f28741a799134ed..80819d62b6957b6194144c8fc519559e9c5121ff 100644 --- a/TODO +++ b/TODO @@ -4,6 +4,7 @@ * remove KMLVectorDataIO since it should not be used. leave libkml dependency only for KmzWriter module. * LineSegmentDetectorExample RightAngleDetectionExample depends on VectorDataRendering (mapnik) : rewrite it with the OGR based rasterization * OTB_USE_CURL +* CurlHelperStub is only for tests : move to TestKernel * OTB_USE_OPENCV * Wrapper test (Java Python) * Handle OTB_DATA_USE_SPOTPHRINPUT & OTB_DATA_USE_CNESPHRINPUT