diff --git a/libs/pnml-relast-engine-fatjar-0.1.jar b/libs/pnml-relast-engine-fatjar-0.1.jar index d3af3f2fe8490694a105ed70a5e35335b92b5293..f200008a372c40e146b12978ce679039abf18f97 100644 Binary files a/libs/pnml-relast-engine-fatjar-0.1.jar and b/libs/pnml-relast-engine-fatjar-0.1.jar differ diff --git a/src/main/java/de/tudresden/inf/st/sample/Main.java b/src/main/java/de/tudresden/inf/st/sample/Main.java index 1b91b2f05f85878f471ca4209a51d4066cde344c..f995423ea7ee18f82b9d0646b1577cf513cc6c81 100644 --- a/src/main/java/de/tudresden/inf/st/sample/Main.java +++ b/src/main/java/de/tudresden/inf/st/sample/Main.java @@ -1,6 +1,6 @@ package de.tudresden.inf.st.sample; -import com.fasterxml.jackson.databind.ObjectMapper; +/*import com.fasterxml.jackson.databind.ObjectMapper; import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; import de.tudresden.inf.st.pnml.engine.execution.TransitionCallbackService; import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; @@ -26,7 +26,7 @@ import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; +import java.util.Map;*/ /** * <Generated> @@ -34,14 +34,14 @@ import java.util.Map; public class Main { // actual ros / mqtt host url is inserted based on configuration - private static final String ROS_HOST = "localhost"; + /* private static final String ROS_HOST = "localhost"; private static final String ROS_MASTER_URI = "http://localhost:11311"; private static final String MQTT_HOST = "localhost"; private static final NodeConfiguration nodeConfiguration = NodeConfiguration.newPublic(ROS_HOST); private static final NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault(); - public static void main(java.lang.String[] args) throws IOException, ParserConfigurationException, SAXException { + public static void main(java.lang.String[] args) throws IOException, ParserConfigurationException, SAXException {*/ /* * <Generated> @@ -49,7 +49,7 @@ public class Main { */ // actual petri net paths are generated - List<String> petriNetPaths = new ArrayList<>(); + /* List<String> petriNetPaths = new ArrayList<>(); petriNetPaths.add("src/main/resources/nets/publisher-net.pnml"); petriNetPaths.add("src/main/resources/nets/subscriber-net.pnml"); List<PetriNet> petriNets = new ArrayList<>(); @@ -69,14 +69,14 @@ public class Main { callbackStorages.put(petriNet.getId(), storage); PetriNetInitializer.initInputSignalConnections(petriNet, MQTT_HOST, "mqtt"); PetriNetInitializer.initOutputSignalConnections(petriNet, MQTT_HOST, "mqtt"); - } + }*/ /* * <Generated> * Callback and token integration */ - Map<String, List<AbstractNetCallback>> callbackMap1 = CallbackMapper.initCallbacksForNode1(petriNets.get(0)); + /* Map<String, List<AbstractNetCallback>> callbackMap1 = CallbackMapper.initCallbacksForNode1(petriNets.get(0)); for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap1.entrySet()) { for(AbstractNetCallback anc : entry.getValue()){ @@ -90,20 +90,20 @@ public class Main { for(AbstractNetCallback anc : entry.getValue()){ transitionCallbackService.registerCallback(petriNets.get(1), entry.getKey(), anc); } - } + }*/ /* * <Generated> * Start of the Dineros NodescallbackMap1 */ - nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + /* nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); // generated DiNeRosNode node1 = new Node1("node1", petriNets.get(0), markings.get(petriNets.get(0).getId()), callbackStorages.get(petriNets.get(0).getId())); DiNeRosNode node2 = new Node2("node2", petriNets.get(1), - markings.get(petriNets.get(1).getId()), callbackStorages.get(petriNets.get(1).getId())); + markings.get(petriNets.get(1).getId()), callbackStorages.get(petriNets.get(1).getId()));*/ /* DiNeRosNode diNeRosNode = new DiNeRosDefaultNode("TestNode", petriNets.get(0), @@ -111,7 +111,7 @@ public class Main { diNeRosNode.getDinerosServiceServers().put("locB", new DiNeRosDefaultServer()); */ - node2.getDinerosSubscribers().put("locB", new Node2Subscriber1()); + /* node2.getDinerosSubscribers().put("locB", new Node2Subscriber1()); new Thread(() -> nodeMainExecutor.execute(node1, nodeConfiguration)) {{ start(); @@ -120,5 +120,5 @@ public class Main { new Thread(() -> nodeMainExecutor.execute(node2, nodeConfiguration)) {{ start(); }}; - } + }*/ } diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java b/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java index 96804024fc4b51c98d915e71786432e5b818aa8b..35767fb6814d6d9f9e3e0a73774ed5993ecd0540 100644 --- a/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java +++ b/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java @@ -2,8 +2,6 @@ package de.tudresden.inf.st.sample.callback; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonToken; import de.tudresden.inf.st.sample.balloon.Token; import java.io.IOException; @@ -13,9 +11,9 @@ import java.util.List; // only the token class is generated, this is a static class // this class gets extended by the user for concrete callbacks // this class hides (de-)serialisation of the tokens -public abstract class AbstractNetCallback extends TransitionCallback { +public abstract class AbstractNetCallback { - public AbstractNetCallback(String id, int priority, List<String> params) { + /* public AbstractNetCallback(String id, int priority, List<String> params) { super(id, priority, params); } @@ -59,5 +57,5 @@ public abstract class AbstractNetCallback extends TransitionCallback { } return resultBalloonTokens; - } + }*/ } diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java b/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java index 4f96aae1de5d00f25d49760cf5830d7413533780..fddc7e4cbe4aff0a4dd6e89445b1413e73d5d155 100644 --- a/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java +++ b/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java @@ -1,9 +1,5 @@ package de.tudresden.inf.st.sample.callback; -import de.tudresden.inf.st.pnml.engine.execution.DefaultTransitionCallback; -import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import de.tudresden.inf.st.pnml.jastadd.model.Transition; import java.util.ArrayList; import java.util.HashMap; @@ -16,7 +12,7 @@ import java.util.Map; public class CallbackMapper { // methods generated for each petri net - public static final Map<String, List<AbstractNetCallback>> initCallbacksForNode1(PetriNet petriNet){ + /* public static final Map<String, List<AbstractNetCallback>> initCallbacksForNode1(PetriNet petriNet){ Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>(); @@ -53,5 +49,5 @@ public class CallbackMapper { } return callbackMap; - } + }*/ } diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java b/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java deleted file mode 100644 index 9bcd27ed1e58f9fbc5e243e2071b0d08a75c0c0e..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.tudresden.inf.st.sample.callback; - -import de.tudresden.inf.st.sample.balloon.Token; - -import java.util.List; - -public class SampleNetCallback extends AbstractNetCallback{ - - public SampleNetCallback(String id, int priority, List<String> params) { - super(id, priority, params); - } - - @Override - public void processTokenCallback(List<Token> tokens) { - System.out.println("Executing callback: " + getId()); - tokens.subList(1, tokens.size()).clear(); - } -} diff --git a/src/main/java/de/tudresden/inf/st/sample/communication/AbstractDinerosServer.java b/src/main/java/de/tudresden/inf/st/sample/communication/AbstractDinerosServer.java deleted file mode 100644 index f62980758f63624cc93a6d1c25f118a15e5689a3..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/communication/AbstractDinerosServer.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.tudresden.inf.st.sample.communication; - -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNodeUtil; -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosServer; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; - -public abstract class AbstractDinerosServer implements DiNeRosServer { - - @Override - public final boolean execute(BalloonMarking balloonMarking, BalloonCallbackStorage balloonCallbackStorage, PetriNet petriNet, String s) { - - boolean success = false; - - // this mechanism enforces the user to leave a server instance with a clean state (see server def) - while (DiNeRosNodeUtil.hasEnabledTransition(petriNet, s, balloonMarking)) { - success = serve(balloonMarking, balloonCallbackStorage, petriNet, s); - } - - return success; - } - - public abstract boolean serve(BalloonMarking balloonMarking, BalloonCallbackStorage balloonCallbackStorage, PetriNet petriNet, String subnet); -} diff --git a/src/main/java/de/tudresden/inf/st/sample/communication/AbstractDinerosSubscriber.java b/src/main/java/de/tudresden/inf/st/sample/communication/AbstractDinerosSubscriber.java deleted file mode 100644 index fef2e51ed54351c78fb5c976b3613fdcc979ea6c..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/communication/AbstractDinerosSubscriber.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.tudresden.inf.st.sample.communication; - -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNodeUtil; -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosSubscriber; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; - -public abstract class AbstractDinerosSubscriber implements DiNeRosSubscriber { - - public final boolean execute(BalloonMarking balloonMarking, BalloonCallbackStorage balloonCallbackStorage, PetriNet petriNet, String subnet) { - - boolean success = false; - - // this mechanism enforces the user to leave a server instance with a clean state (see server def) - while (DiNeRosNodeUtil.hasEnabledTransition(petriNet, subnet, balloonMarking)) { - success = subscribe(balloonMarking, balloonCallbackStorage, petriNet, subnet); - } - - return success; - } - - public abstract boolean subscribe(BalloonMarking balloonMarking, BalloonCallbackStorage balloonCallbackStorage, PetriNet petriNet, String subnet); -} diff --git a/src/main/java/de/tudresden/inf/st/sample/communication/Node2Server1.java b/src/main/java/de/tudresden/inf/st/sample/communication/Node2Server1.java deleted file mode 100644 index 1f05909a782efabae60f9a4edcbc828ccf480b74..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/communication/Node2Server1.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.tudresden.inf.st.sample.communication; - -import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; - -public class Node2Server1 extends AbstractDinerosServer{ - - @Override - public boolean serve(BalloonMarking balloonMarking, BalloonCallbackStorage balloonCallbackStorage, PetriNet petriNet, String subnet) { - return false; - } -} \ No newline at end of file diff --git a/src/main/java/de/tudresden/inf/st/sample/communication/Node2Subscriber1.java b/src/main/java/de/tudresden/inf/st/sample/communication/Node2Subscriber1.java deleted file mode 100644 index 247e1500c40d439d64ccefbdf40451365569d718..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/communication/Node2Subscriber1.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.tudresden.inf.st.sample.communication; - -import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; - -public class Node2Subscriber1 extends AbstractDinerosSubscriber { - - @Override - public boolean subscribe(BalloonMarking balloonMarking, BalloonCallbackStorage balloonCallbackStorage, PetriNet petriNet, String subnet) { - - // TODO: Implementation by user - - System.out.println("Firing transition t2"); - balloonMarking.fireTransition(petriNet.getTransitionById("t2"), balloonCallbackStorage, true); - - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - System.out.println("Firing transition t3"); - balloonMarking.fireTransition(petriNet.getTransitionById("t3"), balloonCallbackStorage, true); - - return true; - } -} diff --git a/src/main/java/de/tudresden/inf/st/sample/nodes/Node1.java b/src/main/java/de/tudresden/inf/st/sample/nodes/Node1.java deleted file mode 100644 index 8362675df3ae0c48f6eeb3e93bfb7e3106129005..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/nodes/Node1.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.tudresden.inf.st.sample.nodes; - -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; - -/** - * <Generated> - */ -public class Node1 extends DiNeRosNode { - - public Node1(String nodeName, PetriNet petriNet) { - super(nodeName, petriNet); - } - - public Node1(String nodeName, PetriNet petriNet, BalloonMarking marking, BalloonCallbackStorage callbackStorage) { - super(nodeName, petriNet, marking, callbackStorage); - } - - @Override - protected void nodeLoop() { - - - // TODO: Implementation by user - - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - System.out.println("Firing publisher transition"); - firePublisherTransition(petriNet.getTransitionById("channelTransition-publisher-0").asInputSignalTransition()); - - stop(); - } - -} \ No newline at end of file diff --git a/src/main/java/de/tudresden/inf/st/sample/nodes/Node2.java b/src/main/java/de/tudresden/inf/st/sample/nodes/Node2.java deleted file mode 100644 index 5d29123ac9cc15d410f7b7ca4734668abbf6205a..0000000000000000000000000000000000000000 --- a/src/main/java/de/tudresden/inf/st/sample/nodes/Node2.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.tudresden.inf.st.sample.nodes; - -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; -import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import org.ros.concurrent.CancellableLoop; - -/** - * <Generated> - */ -public class Node2 extends DiNeRosNode { - - public Node2(String nodeName, PetriNet petriNet) { - super(nodeName, petriNet); - } - - public Node2(String nodeName, PetriNet petriNet, BalloonMarking marking, BalloonCallbackStorage callbackStorage) { - super(nodeName, petriNet, marking, callbackStorage); - } - - @Override - protected void nodeLoop() { - - // TODO: Implementation by user - - } -} diff --git a/src/main/resources/nets/client-net.pnml b/src/main/resources/nets/client-net.pnml new file mode 100644 index 0000000000000000000000000000000000000000..421c11db87348f47b76e77eebd61db65fb8a1aeb --- /dev/null +++ b/src/main/resources/nets/client-net.pnml @@ -0,0 +1,47 @@ +<pnml + xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="PTNET-0" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <page id="top"> + <page id="sourcePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="req1"> + <name> + <text>req1</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>n1</node> + <subnet>s1</subnet> + </toolspecific> + <initialMarking> + <text>0</text> + </initialMarking> + </place> + <place id="res1"> + <name> + <text>res1</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>n1</node> + <subnet>s1</subnet> + </toolspecific> + <initialMarking> + <text>0</text> + </initialMarking> + </place> + </page> + </page> + <name> + <text>ServiceNet</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> + <ports> + <port limit="-1" name="sampleService" placeType="creq">req1</port> + <port limit="-1" name="sampleService" placeType="cres">res1</port> + <port limit="16" name="sampleService" placeType="sreq">serverIn</port> + <port limit="16" name="sampleService" placeType="sres">serverOut</port> + </ports> + </toolspecific> + </net> +</pnml> diff --git a/src/main/resources/nets/publisher-net.pnml b/src/main/resources/nets/publisher-net.pnml index 96dd206a91f563ae8e70b9e0d2493253bddd502f..c358e0cb73e38d49f54ab093470ad30a60bd1b9e 100644 --- a/src/main/resources/nets/publisher-net.pnml +++ b/src/main/resources/nets/publisher-net.pnml @@ -1,58 +1,33 @@ -<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> - <net id="pub-net-1" type="http://www.pnml.org/version-2009/grammar/ptnet"> +<pnml + xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="PTNET-0" type="http://www.pnml.org/version-2009/grammar/ptnet"> <page id="top"> - <page id="channelPage"> - <place id="channelInPlace"> + <page id="sourcePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="pub1"> <name> - <text>channelInPlace</text> + <text>pub1</text> </name> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <balloonMarking> - <tokens> - <token> { "field" : "Test", "fieldList" : [ "TestListElement" ] } </token> - </tokens> - </balloonMarking> - <location>loc2</location> - <subnet>locA</subnet> + <node>n1</node> + <subnet>s1</subnet> </toolspecific> <initialMarking> - <text>1</text> + <text>0</text> </initialMarking> </place> - <transition id="channelTransition-publisher-0"> - <name> - <text>channelTransition-publisher-0</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1"> - - <location>loc2</location> - <type>limitedChannelOutType</type> - <subnet>locA</subnet> - <topic>sampleTopic</topic> - <inputlimit>10</inputlimit> - <outputlimit>10</outputlimit> - <inputsignalbindings/> - </toolspecific> - </transition> - <arc id="a1" source="channelInPlace" target="channelTransition-publisher-0"> - </arc> - </page> - <page id="sourcePage"> - <referencePlace id="rp1" ref="channelInPlace"> - <name> - <text>rp1</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - - - <location>loc2</location> - <subnet>locA</subnet> - </toolspecific> - </referencePlace> </page> </page> <name> - <text>topicTest1</text> + <text>TopicNet</text> </name> + <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> + <ports> + <port name="sampleTopic" placeType="pub">pub1</port> + <port name="sampleTopic" placeType="sub">sub1</port> + </ports> + </toolspecific> </net> </pnml> diff --git a/src/main/resources/nets/server-net.pnml b/src/main/resources/nets/server-net.pnml new file mode 100644 index 0000000000000000000000000000000000000000..c37a6389c81ad4ecd109dcbd75e8b4e9d07465e7 --- /dev/null +++ b/src/main/resources/nets/server-net.pnml @@ -0,0 +1,48 @@ +<pnml + xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="PTNET-0" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <page id="top"> + <page id="targetPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>sampleService</serviceName> + </toolspecific> + <place id="serverIn"> + <name> + <text>serverIn</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>n2</node> + <subnet>s2</subnet> + </toolspecific> + <initialMarking> + <text>0</text> + </initialMarking> + </place> + <place id="serverOut"> + <name> + <text>serverOut</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>n2</node> + <subnet>s2</subnet> + </toolspecific> + <initialMarking> + <text>0</text> + </initialMarking> + </place> + </page> + </page> + <name> + <text>ServiceNet</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> + <ports> + <port limit="-1" name="sampleService" placeType="creq">req1</port> + <port limit="-1" name="sampleService" placeType="cres">res1</port> + <port limit="16" name="sampleService" placeType="sreq">serverIn</port> + <port limit="16" name="sampleService" placeType="sres">serverOut</port> + </ports> + </toolspecific> + </net> +</pnml> diff --git a/src/main/resources/nets/subscriber-net.pnml b/src/main/resources/nets/subscriber-net.pnml index f463ea0a1ad38ed1be507183bfa1201a5439fae6..7035978904a1dc608fe369346e3c6b98dfe8e356 100644 --- a/src/main/resources/nets/subscriber-net.pnml +++ b/src/main/resources/nets/subscriber-net.pnml @@ -1,94 +1,33 @@ -<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> - <net id="sub-net-1" type="http://www.pnml.org/version-2009/grammar/ptnet"> +<pnml + xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="PTNET-0" type="http://www.pnml.org/version-2009/grammar/ptnet"> <page id="top"> <page id="targetPage"> - <place id="outRefPlace"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="sub1"> <name> - <text>outRefPlace</text> + <text>sub1</text> </name> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <location>loc3</location> - <subnet>locB</subnet> + <node>n3</node> + <subnet>s3</subnet> </toolspecific> <initialMarking> <text>0</text> </initialMarking> </place> - - <place id="p2"> - <name> - <text>p2</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <location>loc3</location> - <subnet>locB</subnet> - </toolspecific> - <initialMarking> - <text>0</text> - </initialMarking> - </place> - - <transition id="t2"> - <name> - <text>t2</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <location>loc3</location> - <subnet>locB</subnet> - </toolspecific> - </transition> - - <transition id="t3"> - <name> - <text>t3</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <location>loc3</location> - <subnet>locB</subnet> - </toolspecific> - </transition> - - <arc id="a3" source="outRefPlace" target="t2"> - </arc> - <arc id="a4" source="t2" target="p2"> - </arc> - <arc id="a5" source="p2" target="t3"> - </arc> - - </page> - <page id="channelPage"> - <transition id="channelTransition-subscriber-0"> - <name> - <text>channelTransition-subscriber-0</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1"> - - <location>loc3</location> - <type>limitedChannelInType</type> - <subnet>locB</subnet> - <topic>sampleTopic</topic> - <inputlimit>10</inputlimit> - <outputlimit>10</outputlimit> - <inputsignalbindings/> - </toolspecific> - </transition> - <referencePlace id="rp2" ref="outRefPlace"> - <name> - <text>rp2</text> - </name> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - - - <location>loc3</location> - <subnet>locB</subnet> - </toolspecific> - </referencePlace> - <arc id="a2" source="channelTransition-subscriber-0" target="rp2"> - </arc> </page> </page> <name> - <text>topicTest1</text> + <text>TopicNet</text> </name> + <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> + <ports> + <port name="sampleTopic" placeType="pub">pub1</port> + <port name="sampleTopic" placeType="sub">sub1</port> + </ports> + </toolspecific> </net> </pnml>