History

Make AssetScriptingInterface::initializeCache() blocking

Simon Walton committed 7 years ago

Commit 595b4731 parent 95b21942 files · +20 −1Browse files

Showing the changes to libraries/script-engine/src/AssetScriptingInterface.cpp (1 of 2 files). Show all

Unified · Split

libraries/script-engine/src/AssetScriptingInterface.cpp+19−0
@@ -38,6 +38,25 @@ AssetScriptingInterface::AssetScriptingInterface(QObject* parent) : BaseAssetScr · 37 unmodified lines
38 38
39#define JS_VERIFY(cond, error) { if (!this->jsVerify(cond, error)) { return; } }39#define JS_VERIFY(cond, error) { if (!this->jsVerify(cond, error)) { return; } }
40 40
41bool AssetScriptingInterface::initializeCache() {
42 if (!Parent::initializeCache()) {
43 if (assetClient()) {
44 std::promise<bool> cacheStatusResult;
45 Promise assetClientPromise(makePromise(__func__));
46 assetClientPromise->moveToThread(qApp->thread()); // To ensure the finally() is processed.
47
48 assetClient()->cacheInfoRequestAsync(assetClientPromise);
49 assetClientPromise->finally([&](QString, QVariantMap result)
50 { cacheStatusResult.set_value(!result.isEmpty()); });
51 return cacheStatusResult.get_future().get();
52 } else {
53 return false;
54 }
55 } else {
56 return true;
57 }
58}
59
41void AssetScriptingInterface::uploadData(QString data, QScriptValue callback) {60void AssetScriptingInterface::uploadData(QString data, QScriptValue callback) {
42 auto handler = jsBindCallback(thisObject(), callback);61 auto handler = jsBindCallback(thisObject(), callback);
43 QByteArray dataByteArray = data.toUtf8();62 QByteArray dataByteArray = data.toUtf8();

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t