Browser APIs
client.h
You can use browser APIs in genericjs code via the client
namespace.
cheerp/clientlib.h
clientlib.h
declares browser APIs and can be included with:
#include <cheerp/clientlib.h>
cheerp/client.h
client.h
contains helpers like the SAFE_INLINE
macro and utilities under the cheerp
namespace.
#include <cheerp/client.h>
Promises and cheerp/coroutine.h
Promises can be awaited using coroutines.
For example:
#include <cheerp/coroutine.h>#include <cheerp/client.h>
using namespace client;
[[cheerp::genericjs]][[cheerp::jsexport]]Promise<String*>* randomUUID() { Response* response = co_await *fetch("https://httpbin.org/uuid"); Object* json = (co_await *response->Body::json())->cast(); co_return (*json)["uuid"]->cast();}
Any coroutine can be wrapped into a Promise using the following snippet:
Promise<Object*>* wrapper() { co_return co_await coroutine();}
Complex types
client.h
also provides complex types like _Any
, _Union
, and _Function
.
OpenGL ES
OpenGL ES is also supported with a different header.