void CEnvGen::addUpdateAttributesFromString(IPropertyTree *updateTree, const char *attrs) { StringArray saAttrs; saAttrs.appendList(attrs, ATTR_SEP); //printf("attribute: %s\n",attrs); IPropertyTree *pAttrs = updateTree->addPropTree("Attributes", createPTree("Attributes")); for ( unsigned i = 0; i < saAttrs.ordinality() ; i++) { IPropertyTree *pAttr = pAttrs->addPropTree("Attribute", createPTree("Attribute")); StringArray keyValues; keyValues.appendList(saAttrs[i], "="); pAttr->addProp("@name", keyValues[0]); StringBuffer sbValue; sbValue.clear().appendf("%s", keyValues[1]); sbValue.replaceString("[equal]", "="); StringArray newOldValues; if (strcmp(keyValues[1], "")) { newOldValues.appendList(sbValue.str(), ATTR_V_SEP); pAttr->addProp("@value", newOldValues[0]); if (newOldValues.ordinality() > 1) pAttr->addProp("@oldValue", newOldValues[1]); } else pAttr->addProp("@value", ""); } }
void LogicalGraphCreator::beginSubGraph(const char * label, bool nested) { savedGraphId.append(subGraphId); if (!nested) saveSubGraphs(); if ((subGraphs.ordinality() == 0) && rootSubGraph) { subGraphs.append(*LINK(rootSubGraph)); subGraphId = rootGraphId; return; } subGraphId = ++seq; IPropertyTree * node = createPTree("node"); node = curSubGraph()->addPropTree("node", node); node->setPropInt64("@id", subGraphId); IPropertyTree * graphAttr = node->addPropTree("att", createPTree("att")); IPropertyTree * subGraph = graphAttr->addPropTree("graph", createPTree("graph")); subGraphs.append(*LINK(subGraph)); if (!rootSubGraph) { rootSubGraph.set(subGraph); rootGraphId = subGraphId; } }
void ResourceManager::addWebServiceInfo(IPropertyTree *wsinfo) { //convert legacy web service info to the new resource format if (wsinfo) { if (wsinfo->hasProp("SOAP")) ensureManifestInfo()->addProp("WS-PARAMS", wsinfo->queryProp("SOAP")); if (wsinfo->hasProp("HELP")) { const char *content = wsinfo->queryProp("HELP"); addCompress("HELP", strlen(content)+1, content); } if (wsinfo->hasProp("INFO")) { const char *content = wsinfo->queryProp("INFO"); addCompress("INFO", strlen(content)+1, content); } if (wsinfo->hasProp("OTX")) { const char *content = wsinfo->queryProp("OTX"); addCompress("HYPER-LINK", strlen(content)+1, content); } if (wsinfo->hasProp("HTML")) { const char *content = wsinfo->queryProp("HTML"); Owned<IPropertyTree> manifestEntry = createPTree("Resource"); manifestEntry->setProp("@name", "Custom Form"); addCompress("XSLT", strlen(content)+1, content, manifestEntry); IPropertyTree *view = ensurePTree(ensureManifestInfo(), "Views/XSLT/FORM"); view->setProp("@resource", "Custom Form"); } if (wsinfo->hasProp("HTMLD")) { const char *content = wsinfo->queryProp("HTMLD"); Owned<IPropertyTree> manifestEntry = createPTree("Resource"); manifestEntry->setProp("@name", "Custom HTML"); addCompress("HTML", strlen(content)+1, content, manifestEntry); IPropertyTree *view = ensurePTree(ensureManifestInfo(), "Views/HTML/FORM"); view->setProp("@resource", "Custom HTML"); } if (wsinfo->hasProp("RESULT")) { const char *content = wsinfo->queryProp("RESULT"); Owned<IPropertyTree> manifestEntry = createPTree("Resource"); manifestEntry->setProp("@name", "Results"); addCompress("XSLT", strlen(content)+1, content, manifestEntry); IPropertyTree *view = ensurePTree(ensureManifestInfo(), "Views/XSLT/RESULTS"); view->setProp("@resource", "Results"); } if (wsinfo->hasProp("ERROR")) { const char *content = wsinfo->queryProp("ERROR"); Owned<IPropertyTree> manifestEntry = createPTree("Resource"); manifestEntry->setProp("@name", "Error"); addCompress("XSLT", strlen(content)+1, content, manifestEntry); IPropertyTree *view = ensurePTree(ensureManifestInfo(), "Views/XSLT/ERROR"); view->setProp("@resource", "Error"); } } }
ForEachChild(i, record) { IHqlExpression * cur = record->queryChild(i); switch (cur->getOperator()) { case no_record: //MORE: If this is a public symbol it should be expanded, otherwise it will be elsewhere. expandRecordSymbolsMeta(metaTree, cur); break; case no_field: { IPropertyTree * field = metaTree->addPropTree("Field", createPTree("Field")); field->setProp("@name", cur->queryName()->str()); StringBuffer ecltype; cur->queryType()->getECLType(ecltype); field->setProp("@type", ecltype); break; } case no_ifblock: { IPropertyTree * block = metaTree->addPropTree("IfBlock", createPTree("IfBlock")); expandRecordSymbolsMeta(block, cur->queryChild(1)); break; } case no_attr: case no_attr_link: case no_attr_expr: { IPropertyTree * attr = metaTree->addPropTree("Attr", createPTree("Attr")); attr->setProp("@name", cur->queryName()->str()); break; } } }
void doCreate(const char *partname, const char *xml, unsigned updateFlags, StringArray &filesNotFound) { createPart(partname, xml); if (pmExisting) { if (!checkFlag(PKGADD_MAP_REPLACE)) throw MakeStringException(PKG_NAME_EXISTS, "PackageMap %s already exists, either delete it or specify overwrite", pmid.str()); } cloneDfsInfo(updateFlags, filesNotFound); if (pmExisting) packageMaps->removeTree(pmExisting); Owned<IPropertyTree> pmTree = createPTree("PackageMap", ipt_ordered); pmTree->setProp("@id", pmid); pmTree->setPropBool("@multipart", true); pmTree->addPropTree("Part", pmPart.getClear()); packageMaps->addPropTree("PackageMap", pmTree.getClear()); VStringBuffer xpath("PackageMap[@id='%s'][@querySet='%s']", pmid.str(), target.get()); Owned<IPropertyTree> pkgSet = getPkgSetRegistry(process, false); IPropertyTree *psEntry = pkgSet->queryPropTree(xpath); if (!psEntry) { psEntry = pkgSet->addPropTree("PackageMap", createPTree("PackageMap")); psEntry->setProp("@id", pmid); psEntry->setProp("@querySet", target); } makePackageActive(pkgSet, psEntry, target, checkFlag(PKGADD_MAP_ACTIVATE)); }
bool CWsDfuXRefEx::onDFUXRefList(IEspContext &context, IEspDFUXRefListRequest &req, IEspDFUXRefListResponse &resp) { try { if (!context.validateFeatureAccess(FEATURE_URL, SecAccess_Read, false)) throw MakeStringException(ECLWATCH_DFU_XREF_ACCESS_DENIED, "Failed to access Xref. Permission denied."); StringBuffer username; context.getUserID(username); DBGLOG("CWsDfuXRefEx::onDFUXRefList User=%s",username.str()); //Firstly we need to get a list of the available Thor Cluster.... IArrayOf<IEspTpCluster> clusters; CTpWrapper _topology; _topology.getClusterProcessList(eqThorCluster,clusters,false,true); ///_topology.getClusterList(eqRoxieCluster,clusters,false,true); Owned<IPropertyTree> pXRefNodeTree = createPTree("XRefNodes"); //DBGLOG("CWsDfuXRefEx::onDFUXRefList1\n"); for (unsigned x=0;x<=clusters.ordinality();x++) { IPropertyTree* XRefTreeNode = pXRefNodeTree->addPropTree("XRefNode", createPTree(ipt_caseInsensitive)); IEspTpCluster* cluster = x<clusters.ordinality()?&clusters.item(x):NULL; const char *clustername = cluster?cluster->getName():"SuperFiles"; XRefTreeNode->setProp("Name",clustername); //create the node if it doesn;t exist Owned<IXRefNode> xRefNode = XRefNodeManager->getXRefNode(clustername); if (xRefNode == 0) { XRefTreeNode->setProp("Modified",""); XRefTreeNode->setProp("Status","Not Run"); } else { StringBuffer buf; XRefTreeNode->setProp("Modified",xRefNode->getLastModified(buf).str()); buf.clear(); XRefTreeNode->setProp("Status",xRefNode->getStatus(buf).str()); } } StringBuffer buf; resp.setDFUXRefListResult(toXML(pXRefNodeTree, buf).str()); } catch(IException* e) { FORWARDEXCEPTION(context, e, ECLWATCH_INTERNAL_ERROR); } return true; }
virtual void done() { StringBuffer scopedName; OwnedRoxieString outputName(helper->getOutputName()); queryThorFileManager().addScope(container.queryJob(), outputName, scopedName); Owned<IWorkUnit> wu = &container.queryJob().queryWorkUnit().lock(); Owned<IWUResult> r = wu->updateResultBySequence(helper->getSequence()); r->setResultStatus(ResultStatusCalculated); r->setResultLogicalName(scopedName.str()); r.clear(); wu.clear(); IPropertyTree &patchProps = patchDesc->queryProperties(); if (0 != (helper->getFlags() & KDPexpires)) setExpiryTime(patchProps, helper->getExpiryDays()); IPropertyTree &originalProps = originalDesc->queryProperties();; if (originalProps.queryProp("ECL")) patchProps.setProp("ECL", originalProps.queryProp("ECL")); if (originalProps.getPropBool("@local")) patchProps.setPropBool("@local", true); container.queryTempHandler()->registerFile(outputName, container.queryOwner().queryGraphId(), 0, false, WUFileStandard, &clusters); Owned<IDistributedFile> patchFile; // set part sizes etc queryThorFileManager().publish(container.queryJob(), outputName, false, *patchDesc, &patchFile, 0, false); try { // set file size if (patchFile) { __int64 fs = patchFile->getFileSize(true,false); if (fs!=-1) patchFile->queryAttributes().setPropInt64("@size",fs); } } catch (IException *e) { EXCLOG(e,"keydiff setting file size"); e->Release(); } // Add a new 'Patch' description to the secondary key. DistributedFilePropertyLock lock(newIndexFile); IPropertyTree &fileProps = lock.queryAttributes(); StringBuffer path("Patch[@name=\""); path.append(scopedName.str()).append("\"]"); IPropertyTree *patch = fileProps.queryPropTree(path.str()); if (!patch) patch = fileProps.addPropTree("Patch", createPTree()); patch->setProp("@name", scopedName.str()); unsigned checkSum; if (patchFile->getFileCheckSum(checkSum)) patch->setPropInt64("@checkSum", checkSum); IPropertyTree *index = patch->setPropTree("Index", createPTree()); index->setProp("@name", originalIndexFile->queryLogicalName()); if (originalIndexFile->getFileCheckSum(checkSum)) index->setPropInt64("@checkSum", checkSum); originalIndexFile->setAccessed(); newIndexFile->setAccessed(); }
void CEspBinding::getNavigationData(IEspContext &context, IPropertyTree & data) { IEspWsdlSections *wsdl = dynamic_cast<IEspWsdlSections *>(this); if (wsdl) { StringBuffer serviceName, params; wsdl->getServiceName(serviceName); if (!getUrlParams(context.queryRequestParameters(), params)) { if (context.getClientVersion()>0) params.appendf("%cver_=%g", params.length()?'&':'?', context.getClientVersion()); } StringBuffer encodedparams; if (params.length()) encodeUtf8XML(params.str(), encodedparams, 0); if (params.length()) params.setCharAt(0,'&'); //the entire params string will follow the initial param: "?form" VStringBuffer folderpath("Folder[@name='%s']", serviceName.str()); IPropertyTree *folder = data.queryPropTree(folderpath.str()); if(!folder) { folder=createPTree("Folder"); folder->addProp("@name", serviceName.str()); folder->addProp("@info", serviceName.str()); folder->addProp("@urlParams", encodedparams); if (showSchemaLinks()) folder->addProp("@showSchemaLinks", "true"); folder->addPropBool("@isDynamicBinding", isDynamicBinding()); folder->addPropBool("@isBound", isBound()); data.addPropTree("Folder", folder); } MethodInfoArray methods; wsdl->getQualifiedNames(context, methods); ForEachItemIn(idx, methods) { CMethodInfo &method = methods.item(idx); IPropertyTree *link=createPTree("Link"); link->addProp("@name", method.m_label.str()); link->addProp("@info", method.m_label.str()); StringBuffer path; path.appendf("../%s/%s?form%s", serviceName.str(), method.m_label.str(),params.str()); link->addProp("@path", path.str()); folder->addPropTree("Link", link); } }
IPropertyTree *getPkgSetRegistry(const char *process, bool readonly) { Owned<IRemoteConnection> globalLock = querySDS().connect("/PackageSets/", myProcessSession(), RTM_LOCK_WRITE|RTM_CREATE_QUERY, SDS_LOCK_TIMEOUT); if (!globalLock) throw MakeStringException(PKG_DALI_LOOKUP_ERROR, "Unable to connect to PackageSet information in dali /PackageSets"); IPropertyTree *pkgSets = globalLock->queryRoot(); if (!pkgSets) throw MakeStringException(PKG_DALI_LOOKUP_ERROR, "Unable to open PackageSet information in dali /PackageSets"); if (!process || !*process) process = "*"; StringBuffer id; buildPkgSetId(id, process); //Only lock the branch for the target we're interested in. VStringBuffer xpath("/PackageSets/PackageSet[@id='%s']", id.str()); Owned<IRemoteConnection> conn = querySDS().connect(xpath.str(), myProcessSession(), readonly ? RTM_LOCK_READ : RTM_LOCK_WRITE, SDS_LOCK_TIMEOUT); if (!conn) { if (readonly) return NULL; Owned<IPropertyTree> pkgSet = createPTree(); pkgSet->setProp("@id", id.str()); pkgSet->setProp("@process", process); pkgSets->addPropTree("PackageSet", pkgSet.getClear()); globalLock->commit(); conn.setown(querySDS().connect(xpath.str(), myProcessSession(), RTM_LOCK_WRITE, SDS_LOCK_TIMEOUT)); } return (conn) ? conn->getRoot() : NULL; }
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 SWBackupNode::addOtherSelector(IPropertyTree *compTree, IPropertyTree *params) { StringBuffer xpath; assert(compTree); const char* selector = params->queryProp("@selector"); if (selector && !stricmp("NodeGroup", selector)) { IPropertyTree *nodeGroup = createPTree(selector); IPropertyTree* pAttrs = params->queryPropTree("Attributes"); updateNode(nodeGroup, pAttrs, NULL); if (!nodeGroup->hasProp("@interval")) { xpath.clear().appendf("xs:element/xs:complexType/xs:sequence/xs:element[@name=\"NodeGroup\"]/xs:complexType/xs:attribute[@name=\"interval\"]/@default"); const char *interval = m_pSchema->queryProp(xpath.str()); if ( interval && *interval ) { nodeGroup->addProp("@interval", interval); } else { throw MakeStringException(CfgEnvErrorCode::MissingRequiredParam, "Missing required paramter \"interval\" and there is no default value."); } } compTree->addPropTree(selector, nodeGroup); } }
unsigned SWBackupNode::add(IPropertyTree *params) { unsigned rc = SWProcess::add(params); IPropertyTree * envTree = m_envHelper->getEnvTree(); const char* key = params->queryProp("@key"); StringBuffer xpath; xpath.clear().appendf(XML_TAG_SOFTWARE "/%s[@name=\"%s\"]", m_processName.str(), key); IPropertyTree * compTree = envTree->queryPropTree(xpath.str()); assert(compTree); const char* selector = params->queryProp("@selector"); if (selector && !stricmp("NodeGroup", selector)) { IPropertyTree *nodeGroup = createPTree(selector); IPropertyTree* pAttrs = params->queryPropTree("Attributes"); updateNode(nodeGroup, pAttrs, NULL); if (!nodeGroup->hasProp("@interval")) { xpath.clear().appendf("xs:element/xs:complexType/xs:sequence/xs:element[@name=\"NodeGroup\"]/xs:complexType/xs:attribute[@name=\"interval\"]/@default"); const char *interval = m_pSchema->queryProp(xpath.str()); if ( interval && *interval ) { nodeGroup->addProp("@interval", interval); } else { throw MakeStringException(CfgEnvErrorCode::MissingRequiredParam, "Missing required paramter \"interval\" and there is no default value."); } } compTree->addPropTree(selector, nodeGroup); } return rc; }
void CEsdlSvcEngine::init(const IPropertyTree *cfg, const char *process, const char *service) { EsdlServiceImpl::init(cfg, process, service); m_service_ctx.setown( createPTree("Context", false) ); ensurePTree(m_service_ctx, "Row"); }
void buildUserMetadata(Owned<IPropertyTree> & metadata) { size32_t nameLen; char * nameBuff; size32_t valueLen; char * valueBuff; unsigned idx = 0; while(helper->getIndexMeta(nameLen, nameBuff, valueLen, valueBuff, idx++)) { StringBuffer name(nameLen, nameBuff); StringBuffer value(valueLen, valueBuff); if(*nameBuff == '_' && strcmp(name, "_nodeSize") != 0) { OwnedRoxieString fname(helper->getFileName()); throw MakeActivityException(this, 0, "Invalid name %s in user metadata for index %s (names beginning with underscore are reserved)", name.str(), fname.get()); } if(!validateXMLTag(name.str())) { OwnedRoxieString fname(helper->getFileName()); throw MakeActivityException(this, 0, "Invalid name %s in user metadata for index %s (not legal XML element name)", name.str(), fname.get()); } if(!metadata) metadata.setown(createPTree("metadata")); metadata->setProp(name.str(), value.str()); } }
void LogicalGraphCreator::beginActivity(const char * label, unique_id_t id) { activityNode.set(curSubGraph()->addPropTree("node", createPTree())); if (label) activityNode->setProp("@label", label); activityNode->setPropInt64("@id", id); }
static void appendReplyMessage(StringBuffer &reply, const char *href,const char *format,...) { va_list args; va_start(args, format); StringBuffer msg; msg.valist_appendf(format, args); va_end(args); StringBuffer fmsg; const char *s=msg.str(); loop { char c=*(s++); if (!c||(c=='\n')) { Owned<IPropertyTree> tree = createPTree("Message"); tree->addProp("Value",fmsg.str()); if (href) { tree->addProp("href",href); href = NULL; } toXML(tree,reply); if (!c) break; fmsg.clear(); } else fmsg.append(c); } }
IPropertyTree *CEspBinding::ensureNavLink(IPropertyTree &folder, const char *name, const char *path, const char *tooltip, const char *menuname, const char *navPath, unsigned relPosition, bool force) { StringBuffer xpath; xpath.appendf("Link[@name=\"%s\"]", name); bool addNew = true; IPropertyTree *ret = folder.queryPropTree(xpath.str()); if (ret) { bool forced = ret->getPropBool("@force"); if (forced || !force) return ret; addNew = false; } if (addNew) ret=createPTree("Link"); ret->setProp("@name", name); ret->setProp("@tooltip", tooltip); ret->setProp("@path", path); ret->setProp("@menu", menuname); ret->setProp("@navPath", navPath); ret->setPropInt("@relPosition", relPosition); ret->setPropBool("@force", force); if (addNew) folder.addPropTree("Link", ret); return ret; }
void ResourceManager::addManifest(const char *filename) { StringBuffer path; Owned<IPropertyTree> t = createPTree(); t->setProp("@originalFilename", makeAbsolutePath(filename, path).str()); ensureManifestInfo()->addPropTree("Include", t.getClear()); addManifestFile(filename); }
IPropertyTree *CEspBinding::addNavException(IPropertyTree &folder, const char *message/*=NULL*/, int code/*=0*/, const char *source/*=NULL*/) { IPropertyTree *ret = folder.addPropTree("Exception", createPTree()); ret->addProp("@message", message ? message : "Unknown exception"); ret->setPropInt("@code", code); ret->setProp("@source", source); return ret; }
extern DEFTYPE_API StringBuffer & getRecordMetaAsString(StringBuffer & out, IDefRecordMeta const * meta) { Owned<IPropertyTree> tree = createPTree("RecordMeta"); tree->setPropInt("@numKeyedFields", meta->numKeyedFields()); addElementToPTree(tree, meta->queryRecord()); toXML(tree, out); return out; }
static unsigned fn2(unsigned n, unsigned m, unsigned seed, unsigned depth, StringBuffer &parentname) { if (!Rconn) return 0; if ((n+m+seed)%25==0) { Rconn->commit(); Rconn->Release(); Rconn = querySDS().connect("/DAREGRESS",myProcessSession(), 0, 1000000); if (!Rconn) { ERROR("Failed to connect to /DAREGRESS"); return 0; } } IPropertyTree *parent = parentname.length()?Rconn->queryRoot()->queryPropTree(parentname.str()):Rconn->queryRoot(); if (!parent) { ERROR1("Failed to connect to %s",parentname.str()); Rconn->Release(); Rconn = NULL; return 0; } __int64 val = parent->getPropInt64("val",0); parent->setPropInt64("val",n+val); val = parent->getPropInt64("@val",0); parent->setPropInt64("@val",m+val); val = parent->getPropInt64(NULL,0); parent->setPropInt64(NULL,seed+val); if (!seed) return m+n; if (n==m) return seed; if (depth>10) return seed+n+m; if (seed%7==n%7) return n; if (seed%7==m%7) return m; char name[64]; unsigned v = seed; name[0] = 's'; name[1] = 'u'; name[2] = 'b'; unsigned i = 3; while (v) { name[i++] = ('A'+v%26 ); v /= 26; } name[i] = 0; unsigned l = parentname.length(); if (parentname.length()) parentname.append('/'); parentname.append(name); IPropertyTree *child = parent->queryPropTree(name); if (!child) child = parent->addPropTree(name, createPTree(name)); unsigned ret = fn2(fn2(n,seed,seed*17+11,depth+1,parentname),fn2(seed,m,seed*11+17,depth+1,parentname),seed*19+7,depth+1,parentname); parentname.setLength(l); return ret; }
CPackageNode::CPackageNode(IPropertyTree *p) { if (p) node.set(p); else node.setown(createPTree("HpccPackages")); StringBuffer xml; toXML(node, xml, 0, XML_SortTags); hash = rtlHash64Data(xml.length(), xml.str(), 9994410); }
IXRefNode * CXRefNodeManager::CreateXRefNode(const char* NodeName) { Owned<IRemoteConnection> conn = querySDS().connect("/DFU/XREF",myProcessSession(),RTM_CREATE_QUERY|RTM_LOCK_WRITE ,INFINITE); IPropertyTree* xref_ptree = conn->queryRoot(); IPropertyTree* cluster_ptree = xref_ptree->addPropTree("Cluster", createPTree()); cluster_ptree->setProp("@name",NodeName); conn->commit(); conn->changeMode(RTM_NONE); return new CXRefNode(NodeName,conn); }
IPropertyTree * addIntraGraphEdge(IPropertyTree * subGraph, unsigned __int64 source, unsigned __int64 target, unsigned outputIndex) { IPropertyTree *edge = createPTree(); edge->setPropInt64("@target", target); edge->setPropInt64("@source", source); StringBuffer s; edge->setProp("@id", s.append(source).append('_').append(outputIndex).str()); return subGraph->addPropTree("edge", edge); }
void LogicalGraphCreator::createLogicalGraph(HqlExprArray & exprs) { graph.setown(createPTree("graph")); // beginSubGraph(NULL, false); ForEachItemIn(i, exprs) createRootGraphActivity(&exprs.item(i)); // endSubGraph(); wu->createGraph("Logical", NULL, GraphTypeEcl, graph.getClear(), 0); }
IPropertyTree *readOldIni() { IPropertyTree *ret = createPTree("DFUSERVER", ipt_caseInsensitive); ret->setProp("@name","mydfuserver"); ret->addPropTree("SSH",createPTree("SSH", ipt_caseInsensitive)); Owned<IProperties> props = createProperties("dfuserver.ini", true); if (props) { XF(*ret,"@name",*props,"name"); XF(*ret,"@daliservers",*props,"daliservers"); XF(*ret,"@enableSNMP",*props,"enableSNMP"); XF(*ret,"@enableSysLog",*props,"enableSysLog"); XF(*ret,"@queue",*props,"queue"); XF(*ret,"@monitorqueue",*props,"monitorqueue"); XF(*ret,"@monitorinterval",*props,"monitorinterval"); XF(*ret,"@transferBufferSize",*props,"transferBufferSize"); XF(*ret,"@replicatequeue",*props,"replicatequeue"); XF(*ret,"@log_dir",*props,"log_dir"); } return ret; }
IPropertyTree * addInterGraphEdge(IPropertyTree * graph, unsigned __int64 sourceGraph, unsigned __int64 targetGraph, unsigned __int64 sourceActivity, unsigned __int64 targetActivity, unsigned outputIndex) { StringBuffer idText; IPropertyTree *edge = createPTree(); edge->setProp("@id", idText.clear().append(sourceGraph).append('_').append(targetGraph).append("_").append(outputIndex).str()); edge->setPropInt64("@target", sourceGraph); edge->setPropInt64("@source", targetGraph); addGraphAttributeInt(edge, "_sourceActivity", sourceActivity); addGraphAttributeInt(edge, "_targetActivity", targetActivity); return graph->addPropTree("edge", edge); }
void LogicalGraphCreator::createLogicalGraph(HqlExprArray & exprs) { graph.setown(createPTree("graph")); // beginSubGraph(NULL, false); ForEachItemIn(i, exprs) createRootGraphActivity(&exprs.item(i)); // endSubGraph(); Owned<IWUGraph> wug = wu->updateGraph("Logical"); wug->setXGMMLTree(graph.getClear()); wug->setType(GraphTypeEcl); }
void CEspBinding::getNavigationData(IEspContext &context, IPropertyTree & data) { IEspWsdlSections *wsdl = dynamic_cast<IEspWsdlSections *>(this); if (wsdl) { StringBuffer serviceName, params; wsdl->getServiceName(serviceName); if (!getUrlParams(context.queryRequestParameters(), params)) { if (context.getClientVersion()>0) params.appendf("&ver_=%g", context.getClientVersion()); } if (params.length()) params.setCharAt(0,'&'); IPropertyTree *folder=createPTree("Folder"); folder->addProp("@name", serviceName.str()); folder->addProp("@info", serviceName.str()); folder->addProp("@urlParams", params.str()); if (showSchemaLinks()) folder->addProp("@showSchemaLinks", "true"); MethodInfoArray methods; wsdl->getQualifiedNames(context, methods); ForEachItemIn(idx, methods) { CMethodInfo &method = methods.item(idx); IPropertyTree *link=createPTree("Link"); link->addProp("@name", method.m_label.str()); link->addProp("@info", method.m_label.str()); StringBuffer path; path.appendf("../%s/%s?form%s", serviceName.str(), method.m_label.str(),params.str()); link->addProp("@path", path.str()); folder->addPropTree("Link", link); } data.addPropTree("Folder", folder); }
void buildLayoutMetadata(Owned<IPropertyTree> & metadata) { if(!metadata) metadata.setown(createPTree("metadata")); metadata->setProp("_record_ECL", helper->queryRecordECL()); void * layoutMetaBuff; size32_t layoutMetaSize; if(helper->getIndexLayout(layoutMetaSize, layoutMetaBuff)) { metadata->setPropBin("_record_layout", layoutMetaSize, layoutMetaBuff); rtlFree(layoutMetaBuff); } }