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 setEdgeAttributes(IPropertyTree * edge, unsigned outputIndex, unsigned inputIndex, IAtom * kind, const char * label, bool nWay) { if (outputIndex != 0) addGraphAttributeInt(edge, "_sourceIndex", outputIndex); if (inputIndex != 0) addGraphAttributeInt(edge, "_targetIndex", inputIndex); if (label) edge->setProp("@label", label); if (kind == dependencyAtom) addGraphAttributeBool(edge, "_dependsOn", true); if (nWay) edge->setPropBool("@nWay", true); }
void addComplexGraphEdge(IPropertyTree * graph, unsigned __int64 sourceGraph, unsigned __int64 targetGraph, unsigned __int64 sourceActivity, unsigned __int64 targetActivity, unsigned outputIndex, IAtom * kind, const char * label) { 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); if (label) edge->setProp("@label", label); if (outputIndex) addGraphAttributeInt(edge, "_sourceIndex", outputIndex); if (kind == dependencyAtom) addGraphAttributeBool(edge, "_dependsOn", true); addGraphAttributeInt(edge, "_sourceActivity", sourceActivity); addGraphAttributeInt(edge, "_targetActivity", targetActivity); graph->addPropTree("edge", edge); }
void addSimpleGraphEdge(IPropertyTree * subGraph, unsigned __int64 source, unsigned __int64 target, unsigned outputIndex, unsigned inputIndex, IAtom * kind, const char * label, bool nWay) { IPropertyTree *edge = createPTree(); edge->setPropInt64("@target", target); edge->setPropInt64("@source", source); if (outputIndex != 0) addGraphAttributeInt(edge, "_sourceIndex", outputIndex); if (inputIndex != 0) addGraphAttributeInt(edge, "_targetIndex", inputIndex); if (label) edge->setProp("@label", label); if (kind == dependencyAtom) addGraphAttributeBool(edge, "_dependsOn", true); if (nWay) edge->setPropBool("@nWay", true); StringBuffer s; edge->setProp("@id", s.append(source).append('_').append(outputIndex).str()); subGraph->addPropTree("edge", edge); }
void LogicalGraphCreator::addAttributeInt(const char * name, __int64 value) { addGraphAttributeInt(activityNode, name, value); }