void getPkgInfo(const IPropertyTree *packageMaps, const char *target, const char *process, StringBuffer &info) { Owned<IPropertyTree> tree = createPTree("PackageMaps"); Owned<IPropertyTree> pkgSetRegistry = getPkgSetRegistry(process, true); if (!pkgSetRegistry) { toXML(tree, info); return; } StringBuffer xpath("PackageMap[@active='1']"); if (target && *target) xpath.appendf("[@querySet='%s']", target); Owned<IPropertyTreeIterator> iter = pkgSetRegistry->getElements(xpath.str()); ForEach(*iter) { IPropertyTree &item = iter->query(); const char *id = item.queryProp("@id"); if (id) { StringBuffer xpath; xpath.append("PackageMap[@id='").append(id).append("']"); IPropertyTree *mapTree = packageMaps->queryPropTree(xpath); if (mapTree) mergePTree(tree, mapTree); } } toXML(tree, info); }
void CWsPackageProcessEx::getPkgInfoById(const char *packageMapId, IPropertyTree* tree) { if (!packageMapId || !*packageMapId) return; Owned<IPropertyTree> packageMaps = packageMapAndSet.getPackageMaps(); if (!packageMaps) throw MakeStringException(PKG_DALI_LOOKUP_ERROR, "Unable to retrieve information about package maps from dali server"); StringBuffer xpath; xpath.append("PackageMap[@id='").append(packageMapId).append("']"); IPropertyTree *mapTree = packageMaps->queryPropTree(xpath); if (mapTree) mergePTree(tree, mapTree); }
void ResourceManager::addNamed(const char * type, unsigned len, const void * data, IPropertyTree *manifestEntry, unsigned id, bool addToManifest, bool compressed) { if (id==(unsigned)-1) id = nextmfid++; if (addToManifest) { if (finalized) throwError1(HQLERR_ResourceAddAfterFinalManifest, type); Owned<IPropertyTree> entry=createPTree("Resource"); entry->setProp("@type", type); entry->setPropInt("@id", id); if (compressed) entry->setPropBool("@compressed", true); if (manifestEntry) mergePTree(entry, manifestEntry); ensureManifestInfo()->addPropTree("Resource", entry.getClear()); } resources.append(*new ResourceItem(type, id, len, data)); }