MCPcopy Create free account
hub / github.com/AGenUI/AGenUI / updateDataModel

Method updateDataModel

core/src/surface/agenui_surface.cpp:230–254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

228}
229
230void Surface::updateDataModel(const nlohmann::json& dataModelData) {
231 if (_dataModel == nullptr) {
232 return;
233 }
234 AGENUI_PERFORMANCE_LOG("surface_updateDataModel_begin", "%s", _surfaceId.c_str());
235 BatchScope batchScope(_virtualDom->batchGuard());
236
237 if (!dataModelData.contains("path") && !dataModelData.contains("value")) {
238 _dataModel->updateData("/", dataModelData.dump());
239 return;
240 }
241
242 std::string path = dataModelData.contains("path") ? dataModelData["path"].get<std::string>() : "/";
243
244 if (!dataModelData.contains("value")) {
245 return;
246 }
247
248 const auto& value = dataModelData["value"];
249 std::string valueStr;
250 valueStr = value.dump();
251 _dataModel->updateData(path, valueStr);
252
253 AGENUI_PERFORMANCE_LOG("surface_updateDataModel_end", "%s", _surfaceId.c_str());
254}
255
256void Surface::appendDataModel(const nlohmann::json& dataModelData) {
257 if (_dataModel == nullptr) {

Callers 1

processNormalEventMethod · 0.45

Calls 5

c_strMethod · 0.80
containsMethod · 0.80
updateDataMethod · 0.80
dumpMethod · 0.80
batchGuardMethod · 0.45

Tested by

no test coverage detected