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
qohosqabilityinstancesmanager.h
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
4#ifndef QOHOSQABILITYINSTANCESMANAGER_H
5#define QOHOSQABILITYINSTANCESMANAGER_H
6
7#include <QtCore/private/qnapi_p.h>
8#include <QtCore/qobject.h>
9#include <cstdint>
10#include <functional>
11#include <map>
12#include <memory>
13#include <optional>
14#include <qohosplugincore.h>
15#include <string>
16
18
19namespace QtOhos {
20
22{
23public:
29
35
37 JsState &jsState, const std::string &logContextStr, CloseAbilityRequestSource requestSource,
38 std::function<QNapi::Value(JsState &, CloseAbilityRequestResolution)> promiseValueFactory) = 0;
39
41 JsState &jsState, QNapi::Object wantParamsObj,
42 QOhosConsumer<JsState &, QOhosAbilityOnContinueResult> resultConsumer) = 0;
43
44protected:
46};
47
49{
50public:
52
53 static bool isQtInternalWantFromThisProcess(QNapi::Object want);
54
55 static void setLaunchParamOnAbilityObject(JsState &jsState, QNapi::Object ability, QNapi::Object launchParam);
56
57 virtual std::shared_ptr<QAbilityEngine> abilityEngine() = 0;
58
59 virtual bool isWantFromThisApp(QNapi::Object appQAbility, QNapi::Object want) const = 0;
60
61 virtual std::optional<std::string> tryGetQAbilityInstanceIdFromWant(QNapi::Object appQAbility, QNapi::Object want) const = 0;
62 virtual std::string getQAbilityInstanceIdOrPendingAutoStartedId(QNapi::Object qAbility) const = 0;
63
64 virtual std::optional<std::string> pendingAutoStartedInstanceId() const = 0;
65
67
68 virtual void startNewInstance(
69 QNapi::Object baseQAbility, QObjectThreadSafeRef qwindow,
70 QNapi::Object optStartOptions,
71 std::function<void(JsState &, std::shared_ptr<QAbilityPeer>)> startupNotifyFunc) = 0;
72
73 virtual void handleStartedUiInstance(JsState &jsState, QNapi::Object qAbility, QNapi::Object windowStage) = 0;
74
75 virtual std::shared_ptr<QUiAbilityPeerBackend> getAbilityPeerBackend(std::shared_ptr<QUiAbilityPeer> uiAbilityPeer) = 0;
76
77protected:
79};
80
82 std::shared_ptr<QAbilityEngine> abilityEngine,
83 std::function<void(JsState &, std::shared_ptr<QAbilityPeer>)> autoStartedInstanceStartupNotifyFunc);
84
85}
86
87QT_END_NAMESPACE
88
89#endif // QOHOSQABILITYINSTANCESMANAGER_H
static QOhosEventDispatcherStopper * instance()
QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QFontDatabasePrivate::ExtendedScript script) const override
Returns a list of alternative fonts for the specified family and style and script using the styleHint...
QFont defaultFont() const override
Returns the default system font.
void populateFontDatabase() override
This function is called once at startup by Qt's internal font database.
static QOhosPlatformIntegration * instance()
static QXComponentId createForNativeNodeMainWindow(const std::string &qAbilityInstanceId)
JsState & jsState() const
virtual void visitEachQAbilityPeer(const std::function< void(std::shared_ptr< QAbilityPeer >)> &visitor)=0
virtual QNapi::Promise handleCloseRequestFromSystem(JsState &jsState, const std::string &logContextStr, CloseAbilityRequestSource requestSource, std::function< QNapi::Value(JsState &, CloseAbilityRequestResolution)> promiseValueFactory)=0
virtual void handleOnContinueRequestFromSystem(JsState &jsState, QNapi::Object wantParamsObj, QOhosConsumer< JsState &, QOhosAbilityOnContinueResult > resultConsumer)=0
static std::shared_ptr< QUiAbilityPeer > tryCastFromQAbilityPeerOrNull(std::shared_ptr< QAbilityPeer > qAbilityPeer)
bool isCurrentDeviceSupported()
void init(QMap< Type, QVariant > devinfo)
std::optional< RecognizedDeviceType > tryGetRecognizedDeviceType()
Combined button and popup list for selecting options.
std::shared_ptr< void > makeWatchdog()
bool acquireAndCleanPendingAutoStartedInstanceWindowFlag()
std::string const char * mapBoolToTrueFalseStr(bool value)
bool blockEventLoopsWhenSuspended()
void removeMatchingJsQAbilityPeer(QNapi::Object qAbility)
QOhosConsumer< std::function< void()> > makeSingleThreadExecutor(const SingleThreadExecutorConfig &config={})
void updateApplicationState(int state)
QNapi::Object readChildProcessSetupData(Napi::Env env)
bool isOhosNoUiChildMode()
void initJsThreadState(napi_env env, std::map< std::string, QNapi::Reference< QNapi::Function > > &&jsModulesFactories, std::shared_ptr< AppFunctions > appFunctions, QtRunMode qtRunMode)
QOhosPermissionsHelper * getQOhosPermissionsHelperImpl()
bool isGlBackingStoreDefaultEnabled()
void quitApplicationFromJsThread()
std::shared_ptr< QAbilityInstancesManager > makeQAbilityInstancesManager(std::shared_ptr< QAbilityEngine > abilityEngine, std::function< void(JsState &, std::shared_ptr< QAbilityPeer >)> autoStartedInstanceStartupNotifyFunc)
bool isVsyncOnSoftwareBackingStoreEnabled()
bool isNativeNodeApiMouseEventsEnabled()
bool isNativeNodeApiKeyEventsEnabled()
bool isDebugUseBasicStyleAndThemeEnabled()
bool isDebugDrawQtRasterBackingStoreFlushedRegionEnabled()
enums::ohos::app::ability::AbilityConstant::OnContinueResult QOhosAbilityOnContinueResult
void sendChildProcessSetupData(int childPid, QJsonObject setupData)
static bool s_hotStartEnabled
static bool s_autoStartedAbilityInstanceWaitingForQtWindow
QT_END_NAMESPACE static EXTERN_C_START napi_value Init(napi_env env, napi_value exports)
std::function< void()> s_qtAppThreadIdleStateWaitFunc
std::optional< std::uint64_t > lastRequestedInJsThread
static std::string s_appSharedLibName
static QList< QByteArray > s_applicationParams
static std::unique_ptr< std::vector< std::string > > s_appArgs
int(* Main)(int, char **)
static int s_appExitCode
static std::string s_appSharedLibsDirPath
std::optional< std::uint64_t > activeInQtThread
static std::string s_exitCodeFilePath
QOhosConsumer< std::vector< std::string > > s_qtAppThreadMainFuncLauncher
QT_BEGIN_NAMESPACE constexpr const char * ohosThemeName
virtual void startNewInstance(QNapi::Object baseQAbility, QObjectThreadSafeRef qwindow, QNapi::Object optStartOptions, std::function< void(JsState &, std::shared_ptr< QAbilityPeer >)> startupNotifyFunc)=0
virtual std::optional< std::string > tryGetQAbilityInstanceIdFromWant(QNapi::Object appQAbility, QNapi::Object want) const =0
virtual std::optional< std::string > pendingAutoStartedInstanceId() const =0
static bool isQtInternalWantFromThisProcess(QNapi::Object want)
static void setLaunchParamOnAbilityObject(JsState &jsState, QNapi::Object ability, QNapi::Object launchParam)
virtual bool isWantFromThisApp(QNapi::Object appQAbility, QNapi::Object want) const =0
virtual void handleStartedUiInstance(JsState &jsState, QNapi::Object qAbility, QNapi::Object windowStage)=0
virtual std::shared_ptr< QUiAbilityPeerBackend > getAbilityPeerBackend(std::shared_ptr< QUiAbilityPeer > uiAbilityPeer)=0
virtual void registerPendingAutoStartedInstance()=0
virtual std::string getQAbilityInstanceIdOrPendingAutoStartedId(QNapi::Object qAbility) const =0
virtual std::shared_ptr< QAbilityEngine > abilityEngine()=0
std::optional< std::size_t > threadPreferredStackSize