Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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");
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
    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);
    }