1 ///@file 2 // 3 // Copyright (C) 2013 Thomas Geymayer <tomgey@gmail.com> 4 // 5 // This library is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU Library General Public 7 // License as published by the Free Software Foundation; either 8 // version 2 of the License, or (at your option) any later version. 9 // 10 // This library is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 // Library General Public License for more details. 14 // 15 // You should have received a copy of the GNU Library General Public 16 // License along with this library; if not, write to the Free Software 17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 19 #ifndef SG_HTTP_MEMORYREQUEST_HXX_ 20 #define SG_HTTP_MEMORYREQUEST_HXX_ 21 22 #include "HTTPRequest.hxx" 23 #include <fstream> 24 25 namespace simgear 26 { 27 namespace HTTP 28 { 29 30 /** 31 * HTTP request keeping response in memory. 32 */ 33 class MemoryRequest: 34 public Request 35 { 36 public: 37 38 /** 39 * 40 * @param url Adress to download from 41 */ 42 MemoryRequest(const std::string& url); 43 44 /** 45 * Body contents of server response. 46 */ 47 const std::string& responseBody() const; 48 49 protected: 50 std::string _response; 51 52 virtual void responseHeadersComplete(); 53 virtual void gotBodyData(const char* s, int n); 54 }; 55 56 typedef SGSharedPtr<MemoryRequest> MemoryRequestRef; 57 58 } // namespace HTTP 59 } // namespace simgear 60 61 #endif /* SG_HTTP_MEMORYREQUEST_HXX_ */ 62