| 254 | } |
| 255 | |
| 256 | void Surface::appendDataModel(const nlohmann::json& dataModelData) { |
| 257 | if (_dataModel == nullptr) { |
| 258 | return; |
| 259 | } |
| 260 | AGENUI_PERFORMANCE_LOG("surface_appendDataModel_begin", "%s", _surfaceId.c_str()); |
| 261 | BatchScope batchScope(_virtualDom->batchGuard()); |
| 262 | |
| 263 | std::string path = dataModelData.contains("path") ? dataModelData["path"].get<std::string>() : "/"; |
| 264 | |
| 265 | if (!dataModelData.contains("value")) { |
| 266 | return; |
| 267 | } |
| 268 | |
| 269 | const auto& value = dataModelData["value"]; |
| 270 | std::string valueStr; |
| 271 | if (value.is_string()) { |
| 272 | valueStr = value.get<std::string>(); |
| 273 | } else { |
| 274 | valueStr = value.dump(); |
| 275 | } |
| 276 | |
| 277 | _dataModel->appendData(path, valueStr); |
| 278 | |
| 279 | AGENUI_PERFORMANCE_LOG("surface_appendDataModel_end", "%s", _surfaceId.c_str()); |
| 280 | } |
| 281 | |
| 282 | void Surface::onNodeUpdate(const std::string& componentId, const std::string& nodeJson) { |
| 283 | if (!_surfaceManager) return; |
no test coverage detected