10#include "microhttpd.h"
19 const char* kBasePath =
"/cmd";
20 return 0 == strncmp(url, kBasePath, strlen(kBasePath));
24 const char* url,
const char* method,
25 const char* upload_data,
size_t* upload_data_size) {
29 if (!request->hasPicture() ||
commands.size() > 3) {
34 if (0 == strcmp(method, MHD_HTTP_METHOD_GET)) {
36 return SendData(connection,
data.get(),
"application/json");
40 if (
commands.size() == 2 && 0 == strcmp(method, MHD_HTTP_METHOD_DELETE)) {
42 sscanf(
commands[1].c_str(),
"%d", &n);
43 request->fDebugCanvas->deleteDrawCommandAt(n);
48 if (
commands.size() == 3 && 0 == strcmp(method, MHD_HTTP_METHOD_POST)) {
50 sscanf(
commands[1].c_str(),
"%d", &n);
51 sscanf(
commands[2].c_str(),
"%d", &toggle);
52 request->fDebugCanvas->toggleCommand(n,
SkToBool(toggle));
void SkStrSplit(const char *str, const char *delimiters, SkStrSplitMode splitMode, TArray< SkString > *out)
static constexpr bool SkToBool(const T &x)
int handle(Request *request, MHD_Connection *connection, const char *url, const char *method, const char *upload_data, size_t *upload_data_size) override
bool canHandle(const char *method, const char *url) override
int SendData(MHD_Connection *connection, const SkData *data, const char *type, bool setContentDisposition, const char *dispositionString)
int SendOK(MHD_Connection *connection)
std::shared_ptr< const fml::Mapping > data