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

Method loadAsset

valdi/test/utils/MockAssetLoader.cpp:81–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

79}
80
81Shared<snap::valdi_core::Cancelable> MockAssetLoader::loadAsset(const Value& requestPayload,
82 int32_t preferredWidth,
83 int32_t preferredHeight,
84 const Value& /*filter*/,
85 const Ref<AssetLoaderCompletion>& completion) {
86 auto url = requestPayload.toStringBox();
87 Result<Ref<Valdi::LoadedAsset>> result;
88
89 {
90 std::lock_guard<Mutex> lock(_mutex);
91
92 const auto& it = _responses.find(url);
93 if (it != _responses.end()) {
94 result = it->second();
95 } else {
96 result = Error(STRING_FORMAT("No response registered for identifier '{}'", url));
97 }
98
99 _completions.emplace_back(completion);
100 _loadAssetCount++;
101 }
102
103 if (_workerQueue != nullptr) {
104 _workerQueue->enqueue([this, completion, result]() { handleResponse(completion, result); });
105 } else {
106 handleResponse(completion, result);
107 }
108
109 return makeShared<MockAssetLoaderCancelable>(*this, completion);
110}
111
112void MockAssetLoader::cancelRequest(const Ref<AssetLoaderCompletion>& completion) {
113 std::lock_guard<Mutex> lock(_mutex);

Callers 1

loadImageMethod · 0.45

Calls 5

endMethod · 0.65
ErrorInterface · 0.50
toStringBoxMethod · 0.45
findMethod · 0.45
enqueueMethod · 0.45

Tested by

no test coverage detected