Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwasmglobal_p.h
Go to the documentation of this file.
1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QWASMGLOBAL_P_H
6#define QWASMGLOBAL_P_H
7
8#include <emscripten/proxying.h>
9#include <emscripten/threading.h>
10
11//
12// W A R N I N G
13// -------------
14//
15// This file is not part of the Qt API. It exists purely as an
16// implementation detail. This header file may change from version to
17// version without notice, or even be removed.
18//
19// We mean it.
20//
21
22QT_BEGIN_NAMESPACE
23
24namespace qwasmglobal {
25
26#if QT_CONFIG(thread)
27 template<class T>
29 {
30 T result;
32 [task, result = &result]() { *result = task(); });
33 return result;
34 }
35
36 template<>
37 inline void proxyCall<void>(std::function<void()> task, emscripten::ProxyingQueue *queue)
38 {
40 }
41
42 template<class T>
44 {
46 }
47
48 template<class T>
50 {
53 }
54
55#else
56 template<class T>
57 T runTaskOnMainThread(std::function<T()> task)
58 {
59 return task();
60 }
61#endif // QT_CONFIG(thread)
62
63 Q_CORE_EXPORT void runAsync(std::function<void(void)> fn);
64 Q_CORE_EXPORT void runOnMainThread(std::function<void(void)> fn);
65 Q_CORE_EXPORT void runOnMainThreadAsync(std::function<void(void)> fn);
66}
67
68QT_END_NAMESPACE
69
70#endif // QWASMGLOBAL_P_H
void setTimeout(std::chrono::milliseconds timeout)
QWasmTimer(QWasmSuspendResumeControl *suspendResume, std::function< void()> handler)
QWasmTimer(QWasmTimer const &)=delete
QWasmTimer & operator=(QWasmTimer const &)=delete
qint64 size() const override
For open random-access devices, this function returns the size of the device.
Definition qstdweb.cpp:734
bool seek(qint64 pos) override
For random-access devices, this function sets the current position to pos, returning true on success,...
Definition qstdweb.cpp:739
Uint8ArrayIODevice(Uint8Array array)
Definition qstdweb.cpp:718
bool isSequential() const override
Returns true if this device is sequential; otherwise returns false.
Definition qstdweb.cpp:729
qint64 writeData(const char *data, qint64 size) override
Writes up to maxSize bytes from data to the device.
Definition qstdweb.cpp:756
bool open(QIODevice::OpenMode mode) override
Definition qstdweb.cpp:724
qint64 readData(char *data, qint64 maxSize) override
Reads up to maxSize bytes from the device into data, and returns the number of bytes read or -1 if an...
Definition qstdweb.cpp:746
bool canBlockCallingThread()
Definition qstdweb.cpp:666
emscripten::val window()
Definition qstdweb_p.h:429
double uint53_t
Definition qstdweb.cpp:46
bool haveAsyncify()
Definition qstdweb.cpp:660
bool haveJspi()
Definition qstdweb.cpp:654
const char makeContextfulPromiseFunctionName[]
static void usePotentialyUnusedSymbols()
Definition qstdweb.cpp:31
decltype(auto) bindForever(F wrappedCallback)
Definition qstdweb_p.h:350
std::function< void(emscripten::val)> thenFunc
Definition qstdweb_p.h:236
std::function< void()> finallyFunc
Definition qstdweb_p.h:238
std::function< void(emscripten::val)> catchFunc
Definition qstdweb_p.h:237