static void Main(string[] args) { complModelNamedGraph graph = new complModelNamedGraph(); graph.ReuseOptimization = false; LGSPActions actions = new testActions(graph); LGSPGraphProcessingEnvironment procEnv = new LGSPGraphProcessingEnvironment(graph, actions); /* Node_Process p1 = Node_Process.CreateNode(graph); * p1.name = "Siegfried"; * p1.val = 67; * * LGSPNode p2 = graph.AddNode(NodeType_Process.typeVar); * p2.SetAttribute("name", "Dieter"); * if((int) p2.GetAttribute("val") == 0) * p2.SetAttribute("val", 9); * * // INode_Process p1_attr = (INode_Process) p1.attributes; * // p1_attr.name = "Siegfried"; * // p1_attr.val = 67; * * Edge_connection con = (Edge_connection) graph.AddEdge(EdgeType_connection.typeVar, p1, p2); * con.bandwidth = 1000 + p1.val + p1.name.Length;*/ D231_4121 n1 = graph.CreateNodeD231_4121(); n1.a2 = 2; n1.a4 = 4; n1.a5 = 5; n1.b23 = 23; n1.b41 = 41; n1.b42 = 42; n1.d231_4121 = 231; n1["a4"] = 2 * (int)n1["a2"]; // dummy for testing indexer B21 n2 = graph.CreateNodeB21(); n2.a2 = 10002; n2.b21 = 10021; D2211_2222_31 n3 = graph.CreateNodeD2211_2222_31(); n3.a2 = 20002; n3.a3 = 20003; n3.a4 = 20004; n3.b22 = 20022; n3.b41 = 20041; n3.c221 = 20221; n3.c222_411 = 20222; n3.d2211_2222_31 = 22221; graph.CreateEdgeEdge(n1, n2); graph.CreateEdgeEdge(n2, n3); Action_testRule.Instance.Apply(procEnv); using (VCGDumper dumper = new VCGDumper("test.vcg")) GraphDumper.Dump(graph, dumper); }
public void RegisterYComp(YCompClient ycompClient) { if (this.ycompStream != null) { throw new Exception("there is already a ycomp stream registered"); } this.ycompStream = ycompClient.ycompStream; foreach (NodeRealizer nr in registeredNodeRealizers.Keys) { ycompStream.Write("addNodeRealizer \"" + nr.Name + "\" \"" + VCGDumper.GetColor(nr.BorderColor) + "\" \"" + VCGDumper.GetColor(nr.Color) + "\" \"" + VCGDumper.GetColor(nr.TextColor) + "\" \"" + VCGDumper.GetNodeShape(nr.Shape) + "\"\n"); } foreach (EdgeRealizer er in registeredEdgeRealizers.Keys) { ycompStream.Write("addEdgeRealizer \"" + er.Name + "\" \"" + VCGDumper.GetColor(er.Color) + "\" \"" + VCGDumper.GetColor(er.TextColor) + "\" \"" + er.LineWidth + "\" \"" + VCGDumper.GetLineStyle(er.LineStyle) + "\"\n"); } }
String GetEdgeRealizer(GrColor edgeColor, GrColor textColor, int lineWidth, GrLineStyle lineStyle) { EdgeRealizer newEr = new EdgeRealizer("er" + nextEdgeRealizerID, edgeColor, textColor, lineWidth, lineStyle); EdgeRealizer er; if (!edgeRealizers.TryGetValue(newEr, out er)) { ycompStream.Write("addEdgeRealizer \"" + newEr.Name + "\" \"" + VCGDumper.GetColor(newEr.Color) + "\" \"" + VCGDumper.GetColor(newEr.TextColor) + "\" \"" + lineWidth + "\" \"continuous\"\n"); edgeRealizers.Add(newEr, newEr); nextEdgeRealizerID++; er = newEr; } return(er.Name); }
String GetNodeRealizer(GrColor nodeColor, GrColor borderColor, GrColor textColor, GrNodeShape shape) { NodeRealizer newNr = new NodeRealizer("nr" + nextNodeRealizerID, nodeColor, borderColor, textColor, shape); NodeRealizer nr; if (!nodeRealizers.TryGetValue(newNr, out nr)) { ycompStream.Write("addNodeRealizer \"" + newNr.Name + "\" \"" + VCGDumper.GetColor(borderColor) + "\" \"" + VCGDumper.GetColor(nodeColor) + "\" \"" + VCGDumper.GetColor(textColor) + "\" \"" + VCGDumper.GetNodeShape(shape) + "\"\n"); nodeRealizers.Add(newNr, newNr); nextNodeRealizerID++; nr = newNr; } return(nr.Name); }
private void Run() { graph = new StdNamedGraph(); int numNodes = 10; int numEdges = 20; List <Node> nodes = new List <Node>(numNodes); for (int i = 0; i < numNodes; i++) { nodes.Add(Node.CreateNode(graph)); } Random rnd = new Random(4); for (int i = 0; i < numEdges; i++) { Edge.CreateEdge(graph, nodes[rnd.Next(numNodes)], nodes[rnd.Next(numNodes)]); } using (VCGDumper dumper = new VCGDumper("test.vcg")) GraphDumper.Dump(graph, dumper); int visitorID = graph.AllocateVisitedFlag(); DFSWalker dfs = new DFSWalker(graph, PreWalker, PostWalker, visitorID); dfs.DoDFS(nodes[0]); Console.WriteLine("Visited nodes DFS: pre=" + countedNodesPre + " post=" + countedNodesPost); graph.ResetVisitedFlag(visitorID); countedNodesPre = 0; BFSWalker bfs = new BFSWalker(graph, PreWalker, visitorID); bfs.Mode = WalkerMode.Incident; bfs.DoBFS(nodes[0]); Console.WriteLine("Visited nodes BFS: " + countedNodesPre); graph.FreeVisitedFlag(visitorID); }
private EdgeRealizer GetEdgeRealizer(GrColor edgeColor, GrColor textColor, int lineWidth, GrLineStyle lineStyle) { EdgeRealizer newEr = new EdgeRealizer("er" + nextEdgeRealizerID, edgeColor, textColor, lineWidth, lineStyle); EdgeRealizer er; if (!registeredEdgeRealizers.TryGetValue(newEr, out er)) { if (ycompStream != null) { ycompStream.Write("addEdgeRealizer \"" + newEr.Name + "\" \"" + VCGDumper.GetColor(newEr.Color) + "\" \"" + VCGDumper.GetColor(newEr.TextColor) + "\" \"" + lineWidth + "\" \"" + VCGDumper.GetLineStyle(newEr.LineStyle) + "\"\n"); } registeredEdgeRealizers.Add(newEr, newEr); ++nextEdgeRealizerID; er = newEr; } return(er); }
private NodeRealizer GetNodeRealizer(GrColor nodeColor, GrColor borderColor, GrColor textColor, GrNodeShape shape) { NodeRealizer newNr = new NodeRealizer("nr" + nextNodeRealizerID, nodeColor, borderColor, textColor, shape); NodeRealizer nr; if (!registeredNodeRealizers.TryGetValue(newNr, out nr)) { if (ycompStream != null) { ycompStream.Write("addNodeRealizer \"" + newNr.Name + "\" \"" + VCGDumper.GetColor(borderColor) + "\" \"" + VCGDumper.GetColor(nodeColor) + "\" \"" + VCGDumper.GetColor(textColor) + "\" \"" + VCGDumper.GetNodeShape(shape) + "\"\n"); } registeredNodeRealizers.Add(newNr, newNr); ++nextNodeRealizerID; nr = newNr; } return(nr); }
static void Main(string[] args) { LGSPNamedGraph graph; LGSPActions actions; LGSPBackend.Instance.CreateNamedFromSpec("Mutex.grg", null, 0, out graph, out actions); LGSPGraphProcessingEnvironment procEnv = new LGSPGraphProcessingEnvironment(graph, actions); NodeType processType = graph.GetNodeType("Process"); EdgeType nextType = graph.GetEdgeType("next"); INode p1 = graph.AddNode(processType); INode p2 = graph.AddNode(processType); graph.AddEdge(nextType, p1, p2); graph.AddEdge(nextType, p2, p1); procEnv.ApplyGraphRewriteSequence("newRule[3] && mountRule && requestRule[5] " + "&& (takeRule && releaseRule && giveRule)*"); using (VCGDumper dumper = new VCGDumper("HelloMutex.vcg")) GraphDumper.Dump(graph, dumper); }