MCPcopy Create free account
hub / github.com/Snapchat/Valdi / AssetLoadObserverImpl

Class AssetLoadObserverImpl

valdi/test/integration/Runtime_tests.cpp:4890–4916  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4888 ASSERT_EQ(STRING_LITERAL("BridgeModule"), relativeBridgeModuleResult.value().resourcePath);
4889}
4890
4891class AssetLoadObserverImpl : public snap::valdi_core::AssetLoadObserver {
4892public:
4893 AssetLoadObserverImpl() {}
4894
4895 void onLoad(const Shared<snap::valdi_core::Asset>& asset,
4896 const Valdi::Value& loadedAsset,
4897 const std::optional<Valdi::StringBox>& error) override {
4898 auto loadedAssetRef = loadedAsset.getTypedRef<Valdi::LoadedAsset>();
4899 if (loadedAssetRef != nullptr) {
4900 _result = loadedAssetRef;
4901 } else {
4902 _result = Error(error.value());
4903 }
4904 }
4905
4906 static Result<Ref<Valdi::LoadedAsset>> loadSync(RuntimeWrapper& runtimeWrapper, const Ref<Asset>& asset) {
4907 auto observer = makeShared<AssetLoadObserverImpl>();
4908 asset->addLoadObserver(observer, snap::valdi_core::AssetOutputType::Dummy, 0, 0, Value());
4909
4910 runtimeWrapper.mainQueue->runUntilTrue([&]() { return !observer->_result.empty(); });
4911
4912 return observer->_result;
4913 }
4914
4915private:
4916 Result<Ref<Valdi::LoadedAsset>> _result;
4917};
4918
4919Ref<Asset> getSrcAssetFromNode(ViewNode& viewNode) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected