Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qgeopositioninfosourcedispatcher_wasm.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 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
#
include
"qgeopositioninfosourcedispatcher_wasm_p.h"
6
#
include
"qgeopositioninfosource_wasm_p.h"
7
8
9
QT_BEGIN_NAMESPACE
10
11
Q_GLOBAL_STATIC(QGeoPositionInfoDispatcherWasm, g_dispatcherWasm)
12
13
QGeoPositionInfoDispatcherWasm::QGeoPositionInfoDispatcherWasm()
14
{
15
}
16
17
QGeoPositionInfoDispatcherWasm
::~
QGeoPositionInfoDispatcherWasm
()
18
{
19
m_instanceRegistry.clear();
20
}
21
22
quint32
QGeoPositionInfoDispatcherWasm
::
incrementIdOfRegisterSourceInfo
()
23
{
24
static
quint32 counter = 0;
25
counter++;
26
return
counter;
27
}
28
29
int
QGeoPositionInfoDispatcherWasm
::
registerInfoSourceInstance
(
QGeoPositionInfoSourceWasm
* source)
30
{
31
std
::lock_guard<
std
::mutex> lock(registryMutex);
32
quint32 id = incrementIdOfRegisterSourceInfo();
33
m_instanceRegistry[id] = source;
34
return
id;
35
}
36
37
void
QGeoPositionInfoDispatcherWasm
::
unregisterInfoSourceInstance
(
int
instanceId)
38
{
39
std
::lock_guard<
std
::mutex> lock(registryMutex);
40
m_instanceRegistry.erase(instanceId);
41
}
42
43
QGeoPositionInfoSourceWasm
*
QGeoPositionInfoDispatcherWasm
::
lookUpInfoSource
(
int
instanceId)
44
{
45
std
::lock_guard<
std
::mutex> lock(registryMutex);
46
auto
it = m_instanceRegistry.find(instanceId);
47
if
(it != m_instanceRegistry.end())
48
return
it->second;
49
50
return
nullptr
;
51
}
52
53
QGeoPositionInfoDispatcherWasm
*
QGeoPositionInfoDispatcherWasm
::
instance
()
54
{
55
return
g_dispatcherWasm();
56
}
57
58
void
QGeoPositionInfoDispatcherWasm
::
geolocationSuccess
(
int
instanceId, val position)
59
{
60
if
(
auto
source =
lookUpInfoSource
(
instanceId
)
)
61
source
->
geolocationSuccess
(
position
)
;
62
}
63
64
void
QGeoPositionInfoDispatcherWasm
::
geolocationError
(
int
instanceId, val error)
65
{
66
if
(
auto
source =
lookUpInfoSource
(
instanceId
)
)
67
source
->
geolocationError
(
error
)
;
68
}
69
70
void
QGeoPositionInfoDispatcherWasm
::
log
(val value)
71
{
72
val::global(
"console"
).call<
void
>(
"log"
, value);
73
}
74
75
EMSCRIPTEN_BINDINGS
(
qt_geolocation
)
76
{
77
function(
"qtGeolocationPositionSuccess"
, optional_override([](
int
id, val pos) {
78
QGeoPositionInfoDispatcherWasm::instance()->geolocationSuccess(id, pos);
79
}));
80
81
function
(
"qtGeolocationPositionError"
, optional_override([](
int
id, val err) {
82
QGeoPositionInfoDispatcherWasm
::
instance
(
)
->geolocationError(id, err);
83
}));
84
85
}
86
87
QT_END_NAMESPACE
QGeoPositionInfoDispatcherWasm
Definition
qgeopositioninfosourcedispatcher_wasm_p.h:24
QGeoPositionInfoDispatcherWasm::registerInfoSourceInstance
int registerInfoSourceInstance(QGeoPositionInfoSourceWasm *source)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:29
QGeoPositionInfoDispatcherWasm::lookUpInfoSource
QGeoPositionInfoSourceWasm * lookUpInfoSource(int instanceId)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:43
QGeoPositionInfoDispatcherWasm::geolocationSuccess
void geolocationSuccess(int instanceId, val position)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:58
QGeoPositionInfoDispatcherWasm::log
void log(val value)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:70
QGeoPositionInfoDispatcherWasm::incrementIdOfRegisterSourceInfo
quint32 incrementIdOfRegisterSourceInfo()
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:22
QGeoPositionInfoDispatcherWasm::~QGeoPositionInfoDispatcherWasm
~QGeoPositionInfoDispatcherWasm()
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:17
QGeoPositionInfoDispatcherWasm::instance
static QGeoPositionInfoDispatcherWasm * instance()
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:53
QGeoPositionInfoDispatcherWasm::unregisterInfoSourceInstance
void unregisterInfoSourceInstance(int instanceId)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:37
QGeoPositionInfoDispatcherWasm::geolocationError
void geolocationError(int instanceId, val error)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:64
QGeoPositionInfoSourceWasm
Definition
qgeopositioninfosource_wasm_p.h:37
QGeoPositionInfoSourceWasm::geolocationError
void geolocationError(GeolocationPositionError error)
Definition
qgeopositioninfosource_wasm.cpp:178
QGeoPositionInfoSourceWasm::geolocationSuccess
void geolocationSuccess(GeolocationPosition position)
Definition
qgeopositioninfosource_wasm.cpp:147
function
QJSValue function
Definition
qjsengine.cpp:9
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
EMSCRIPTEN_BINDINGS
EMSCRIPTEN_BINDINGS(qt_geolocation)
Definition
qgeopositioninfosourcedispatcher_wasm.cpp:75
qtpositioning
src
plugins
position
wasm
qgeopositioninfosourcedispatcher_wasm.cpp
Generated on
for Qt by
1.18.0