taisei/src/vfs/sync_emscripten.c
2024-05-17 14:11:48 +02:00

41 lines
1 KiB
C

/*
* This software is licensed under the terms of the MIT License.
* See COPYING for further information.
* ---
* Copyright (c) 2011-2024, Lukas Weber <laochailan@web.de>.
* Copyright (c) 2012-2024, Andrei Alexeyev <akari@taisei-project.org>.
*/
#include "public.h"
#include "log.h"
#include <emscripten.h>
void EMSCRIPTEN_KEEPALIVE vfs_sync_callback(bool is_load, char *error, CallChain *next);
void vfs_sync_callback(bool is_load, char *error, CallChain *next) {
if(error) {
if(is_load) {
log_error("Couldn't load persistent storage from IndexedDB: %s", error);
} else {
log_error("Couldn't save persistent storage to IndexedDB: %s", error);
}
} else {
if(is_load) {
log_info("Loaded persistent storage from IndexedDB");
} else {
log_info("Saved persistent storage to IndexedDB");
}
}
run_call_chain(next, error);
free(next);
}
void vfs_sync(VFSSyncMode mode, CallChain next) {
CallChain *cc = memdup(&next, sizeof(next));
EM_ASM({
SyncFS($0, $1);
}, (mode == VFS_SYNC_LOAD), cc);
}