MCPcopy Create free account
hub / github.com/apache/trafficserver / get_shared_data

Function get_shared_data

plugins/experimental/wasm/lib/src/exports.cc:227–246  ·  view source on GitHub ↗

SharedData

Source from the content-addressed store, hash-verified

225
226// SharedData
227Word get_shared_data(Word key_ptr, Word key_size, Word value_ptr_ptr, Word value_size_ptr,
228 Word cas_ptr) {
229 auto *context = contextOrEffectiveContext();
230 auto key = context->wasmVm()->getMemory(key_ptr, key_size);
231 if (!key) {
232 return WasmResult::InvalidMemoryAccess;
233 }
234 std::pair<std::string, uint32_t> data;
235 WasmResult result = context->getSharedData(key.value(), &data);
236 if (result != WasmResult::Ok) {
237 return result;
238 }
239 if (!context->wasm()->copyToPointerSize(data.first, value_ptr_ptr, value_size_ptr)) {
240 return WasmResult::InvalidMemoryAccess;
241 }
242 if (!context->wasmVm()->setMemory(cas_ptr, sizeof(uint32_t), &data.second)) {
243 return WasmResult::InvalidMemoryAccess;
244 }
245 return WasmResult::Ok;
246}
247
248Word set_shared_data(Word key_ptr, Word key_size, Word value_ptr, Word value_size, Word cas) {
249 auto *context = contextOrEffectiveContext();

Callers 1

proxy_get_shared_dataFunction · 0.85

Calls 8

wasmVmMethod · 0.80
copyToPointerSizeMethod · 0.80
getMemoryMethod · 0.45
getSharedDataMethod · 0.45
valueMethod · 0.45
wasmMethod · 0.45
setMemoryMethod · 0.45

Tested by

no test coverage detected