void XmlWalker::_checkSetAttributes(pugi::xml_node node) { pugi::xml_attribute attr = node.first_attribute(); while (attr) { if (!strcmp(attr.name(), "path")) { _path = connectPath(_xmlFolder->c_str(), attr.value()); if (!_path.empty()) _path += "/"; } else if (!strcmp(attr.name(), "load")) { _load = attr.as_bool(); } else if (!strcmp(attr.name(), "scale_factor")) { _scaleFactor = attr.as_float(1.0f); } else if (!strcmp(attr.name(), "hit_test")) { _alphaHitTest = attr.as_bool(false); } attr = attr.next_attribute(); } }
void PipelineManager::createPathEvent(Jzon::Node* params, Jzon::Object &outputNode) { std::vector<int> filtersIds; int id, orgFilterId, dstFilterId; int orgWriterId = -1; int dstReaderId = -1; Path* path; if(!params) { outputNode.Add("error", "Error creating path. Invalid JSON format..."); return; } if (!params->Has("id") || !params->Has("orgFilterId") || !params->Has("dstFilterId") || !params->Has("orgWriterId") || !params->Has("dstReaderId")) { outputNode.Add("error", "Error creating path. Invalid JSON format..."); return; } id = params->Get("id").ToInt(); orgFilterId = params->Get("orgFilterId").ToInt(); dstFilterId = params->Get("dstFilterId").ToInt(); orgWriterId = params->Get("orgWriterId").ToInt(); dstReaderId = params->Get("dstReaderId").ToInt(); if (!params->Has("midFiltersIds") || !params->Get("midFiltersIds").IsArray()){ outputNode.Add("error", "Invalid midfilters array"); return; } Jzon::Array& jsonFiltersIds = params->Get("midFiltersIds").AsArray(); for (Jzon::Array::iterator it = jsonFiltersIds.begin(); it != jsonFiltersIds.end(); ++it) { filtersIds.push_back((*it).ToInt()); } path = createPath(orgFilterId, dstFilterId, orgWriterId, dstReaderId, filtersIds); if (!path) { outputNode.Add("error", "Error creating path. Check introduced filter IDs..."); return; } if (!connectPath(path)) { outputNode.Add("error", "Error connecting path. Better pray Jesus..."); return; } if (!addPath(id, path)) { outputNode.Add("error", "Error registering path. Path ID already exists..."); return; } outputNode.Add("error", Jzon::null); }