コード例 #1
0
ファイル: ReceiveReply.cs プロジェクト: brainlara/wf2owfn
        public PetriNet Compile(PetriNet phylum)
        {
            String prefix = phylum.ActivityCount + ".internal.";
            // Places
            Place p1 = phylum.NewPlace(prefix + "initialized");
            Place p2 = phylum.NewPlace(prefix + "closed");
            // Place exists?
            Place message = phylum.Find("out." + phylum.ActivityCount + ".message");

            if (message == null)
            {
                message = phylum.NewPlace("out." + phylum.ActivityCount + ".message", PetriNet.CommunicationType.Input);
            }
            // Transitions
            Transition receive = phylum.NewTransition(prefix + "receivereply");

            // Arcs
            phylum.NewArc(p1, receive);
            phylum.NewArc(receive, p2);
            phylum.NewArc(message, receive);

            return(phylum);
        }
コード例 #2
0
ファイル: Send.cs プロジェクト: brainlara/wf2owfn
        public PetriNet Compile(PetriNet phylum)
        {
            String prefix = phylum.ActivityCount + ".internal.";
            // Places
            Place p1 = phylum.NewPlace(prefix + "initialized");
            Place p2 = phylum.NewPlace(prefix + "closed");
            // Place exists?
            Place message = phylum.Find("out." + contract + "." + operation);

            if (message == null)
            {
                message = phylum.NewPlace("out." + contract + "." + operation, PetriNet.CommunicationType.Output);
            }
            // Transitions
            Transition send = phylum.NewTransition(prefix + "send");

            // Arcs
            phylum.NewArc(p1, send);
            phylum.NewArc(send, p2);
            phylum.NewArc(send, message);

            return(phylum);
        }