mirror of
https://github.com/libretro/libretro-chailove.git
synced 2025-02-26 03:05:41 +00:00
Add Http()
This commit is contained in:
parent
65cb2cfb09
commit
4333b732d6
@ -154,6 +154,11 @@ ifeq ($(HAVE_CHAISCRIPT),)
|
||||
FLAGS += -DCHAISCRIPT_NO_THREADS -DCHAISCRIPT_NO_THREADS_WARNING -DCHAISCRIPT_NO_DYNLOAD
|
||||
endif
|
||||
|
||||
# ChaiScript Extras Http
|
||||
ifeq ($(HAVE_CHAISCRIPT),)
|
||||
FLAGS += -I$(CORE_DIR)/vendor/ChaiScript_Extras_Http/include
|
||||
endif
|
||||
|
||||
# SDL
|
||||
ifeq ($(platform), win)
|
||||
SOURCES_C += $(wildcard ./vendor/sdl-libretro/src/*.c ./vendor/sdl-libretro/src/audio/*.c ./vendor/sdl-libretro/src/cdrom/dummy/*.c ./vendor/sdl-libretro/src/cdrom/*.c ./vendor/sdl-libretro/src/cpuinfo/*.c ./vendor/sdl-libretro/src/events/*.c ./vendor/sdl-libretro/src/file/*.c ./vendor/sdl-libretro/src/stdlib/*.c ./vendor/sdl-libretro/src/thread/*.c ./vendor/sdl-libretro/src/timer/*.c ./vendor/sdl-libretro/src/video/*.c ./vendor/sdl-libretro/src/joystick/*.c ./vendor/sdl-libretro/src/video/libretro/*.c ./vendor/sdl-libretro/src/joystick/libretro/*.c ./vendor/sdl-libretro/src/timer/libretro/*.c ./vendor/sdl-libretro/src/audio/libretro/*.c ./vendor/sdl-libretro/src/thread/win32/SDL_sysmutex.c ./vendor/sdl-libretro/src/thread/win32/SDL_syssem.c ./vendor/sdl-libretro/src/thread/win32/SDL_systhread.c ./vendor/sdl-libretro/src/thread/generic/SDL_syscond.c ./vendor/sdl-libretro/src/loadso/dummy/*.c)
|
||||
|
59
src/docs/Http.h
Normal file
59
src/docs/Http.h
Normal file
@ -0,0 +1,59 @@
|
||||
#ifndef SRC_CHAILOVEDOCS_HTTP_H_
|
||||
#define SRC_CHAILOVEDOCS_HTTP_H_
|
||||
|
||||
/**
|
||||
* Allows downloading of files over HTTP (no https).
|
||||
*
|
||||
* @code
|
||||
* var request = Http("http://example.com/index.html")
|
||||
* while (request.process() == "pending") {
|
||||
* print("Please Wait...")
|
||||
* }
|
||||
* if (request.getStatus() == "failed") {
|
||||
* print("Failed: " + request.getReasonPhrase())
|
||||
* }
|
||||
* global response = request.getResponseString()
|
||||
* print(response)
|
||||
* @endcode
|
||||
*/
|
||||
class Http {
|
||||
public:
|
||||
/**
|
||||
* Create a Http() object, to request the given URL.
|
||||
*/
|
||||
Http(const std::string& url);
|
||||
|
||||
/**
|
||||
* Retrieve the status code.
|
||||
*/
|
||||
int getStatusCode();
|
||||
~Http();
|
||||
std::string process();
|
||||
|
||||
/**
|
||||
* Retrieve the status code.
|
||||
*/
|
||||
std::string getStatus();
|
||||
|
||||
/**
|
||||
* Retrieve the content type.
|
||||
*/
|
||||
std::string getContentType();
|
||||
|
||||
/**
|
||||
* Reason why the request failed.
|
||||
*/
|
||||
std::string getReasonPhrase();
|
||||
|
||||
/**
|
||||
* Retrieve a string representation of the requested data.
|
||||
*/
|
||||
std::string getResponseString();
|
||||
|
||||
/**
|
||||
* Retrieve the size of the response data.
|
||||
*/
|
||||
int getResponseSize();
|
||||
}
|
||||
|
||||
#endif
|
@ -5,6 +5,8 @@
|
||||
#ifdef __HAVE_CHAISCRIPT__
|
||||
#include "chaiscript/extras/math.hpp"
|
||||
using namespace chaiscript;
|
||||
#define HTTP_IMPLEMENTATION
|
||||
#include "chaiscript/extras/http.hpp"
|
||||
#endif
|
||||
|
||||
using ::ChaiLove;
|
||||
@ -79,6 +81,9 @@ script::script(const std::string& file) {
|
||||
chaiscript::bootstrap::standard_library::list_type<std::list<chaiscript::Boxed_Value> >("List", *listModule);
|
||||
chai.add(listModule);
|
||||
|
||||
auto httplib = chaiscript::extras::http::bootstrap();
|
||||
chai.add(httplib);
|
||||
|
||||
// Add the "love" namespace.
|
||||
chai.register_namespace([](chaiscript::Namespace& love) {
|
||||
ChaiLove* app = ChaiLove::getInstance();
|
||||
|
9
test/unittests/http.chai
Normal file
9
test/unittests/http.chai
Normal file
@ -0,0 +1,9 @@
|
||||
var request = Http("http://example.com/index.html")
|
||||
while (request.process() == "pending") {
|
||||
print("Please Wait...")
|
||||
}
|
||||
if (request.getStatus() == "failed") {
|
||||
print("Failed: " + request.getReasonPhrase())
|
||||
}
|
||||
global response = request.getResponseString()
|
||||
assert_greater(response.find("Example Domain"), 10, "Http()")
|
@ -15,6 +15,7 @@ def load() {
|
||||
love.filesystem.load("data")
|
||||
love.filesystem.load("filesystem")
|
||||
love.filesystem.load("font")
|
||||
love.filesystem.load("http")
|
||||
love.filesystem.load("graphics")
|
||||
love.filesystem.load("image")
|
||||
love.filesystem.load("list")
|
||||
|
Loading…
x
Reference in New Issue
Block a user