You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ha...@apache.org on 2013/01/17 01:03:03 UTC

svn commit: r1434509 - /ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java

Author: hadrian
Date: Thu Jan 17 00:03:02 2013
New Revision: 1434509

URL: http://svn.apache.org/viewvc?rev=1434509&view=rev
Log:
Fix ^Ms and German character in previous commit

Modified:
    ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java

Modified: ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java?rev=1434509&r1=1434508&r2=1434509&view=diff
==============================================================================
--- ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java (original)
+++ ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java Thu Jan 17 00:03:02 2013
@@ -1,209 +1,209 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.ode.jacob.examples.helloworld;
-
-import org.apache.ode.jacob.Channel;
-import org.apache.ode.jacob.JacobRunnable;
-import org.apache.ode.jacob.ReceiveProcess;
-import org.apache.ode.jacob.Synch;
-import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.Val;
-import org.apache.ode.jacob.examples.sequence.Sequence;
-import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
-import org.apache.ode.jacob.vpu.JacobVPU;
-
-/**
- * Simple Hello World example to showcase different
- * features and approaches of the Jacob API.
- * 
- * Inspired by http://scienceblogs.com/goodmath/2007/04/16/back-to-calculus-a-better-intr-1/
- * 
- */
-@SuppressWarnings("serial")
-public class HelloWorld extends JacobRunnable {
-
-	public interface Callback<T, R extends Channel> extends Channel {
-		public void invoke(T value, R callback);
-	}
-
-	static class ReliablePrinterProcess extends JacobRunnable {
-		private Callback<String, Synch> _in;
-		public ReliablePrinterProcess(Callback<String, Synch> in) {
-			_in = in;
-		}
-
-		public void run() {
-			object(true, new ReceiveProcess<Callback<String, Synch>>(_in, new Callback<String, Synch>(){
-				@Override
-				public void invoke(String value, Synch callback) {
-					System.out.println(value);
-					callback.ret();
-				}
-			}) {
-				private static final long serialVersionUID = 1L;
-			});
-		}
-	}
-
-	static class ReliableStringEmitterProcess extends JacobRunnable {
-		private String str;
-		private Callback<String, Synch> to;
-		
-		public ReliableStringEmitterProcess(String str, Callback<String, Synch> to) {
-			this.str = str;
-			this.to = to;
-		}
-
-		public void run() {
-			Synch callback = newChannel(Synch.class, "callback channel to ACK " + str);
-			object(new ReceiveProcess<Synch>(callback, new Synch() {
-				
-				@Override
-				public void ret() {
-					System.out.println(str + " ACKed");
-				}
-			}) {
-	             private static final long serialVersionUID = 1L;
-			});
-			to.invoke(str, callback);
-		}
-	}
-
-	
-	static class PrinterProcess extends JacobRunnable {
-		private Val _in;
-		public PrinterProcess(Val in) {
-			_in = in;
-		}
-
-		public void run() {
-			object(true, new ReceiveProcess<Val>(_in, new Val(){
-				public void val(Object o) {
-					System.out.println(o);
-				}
-			}) {
-				private static final long serialVersionUID = 1L;
-			});
-		}
-	}
-
-	static class StringEmitterProcess extends JacobRunnable {
-		private String str;
-		private Val to;
-		
-		public StringEmitterProcess(String str, Val to) {
-			this.str = str;
-			this.to = to;
-		}
-
-		public void run() {
-			to.val(str);
-		}
-	}
-
-	static class ForwarderProcess extends JacobRunnable {
-		private Val in;
-		private Val out;
-		public ForwarderProcess(Val in, Val out) {
-			this.in = in;
-			this.out = out;
-		}
-
-		public void run() {
-			object(true, new ReceiveProcess<Val>(in, new Val(){
-				public void val(Object o) {
-					out.val(o);
-				}
-			}) {
-				private static final long serialVersionUID = 1L;
-			});
-		}
-	}
-
-	private void simpleHelloWorld() {
-        // new(out)
-        final Val out = newChannel(Val.class, "simpleHelloWorld-out");
-        // new(x)
-        final Val x = newChannel(Val.class, "simpleHelloWorld-x");
-        // *(?out(str).!sysout(str))
-        instance(new PrinterProcess(out));
-        // *(?x(str).!out(str))
-        instance(new ForwarderProcess(x, out));
-
-        // !out(hello) | !out(world)
-        instance(new StringEmitterProcess("Hello", x));
-        instance(new StringEmitterProcess("World", x));
-	}
-	
-	private void reliableHelloWorld() {
-        // reliable version of the code above
-        // (new(callback).!out(hello).?callback) | (new(callback).!out(world).?callback)
-        
-        // new(rout)
-        Callback<String, Synch> rout = newChannel(Callback.class, "reliableHelloWorld-rout");
-        // *(?rout(str).!sysout(str))
-        instance(new ReliablePrinterProcess(rout));
-        // (new(callback).!out(hello).?callback)
-        instance(new ReliableStringEmitterProcess("Hello", rout));
-        // (new(callback).!out(world).?callback)
-        instance(new ReliableStringEmitterProcess("World", rout));
-	}
-	
-	
-	private void sequencedHelloWorld() {
-        // send hello world as a sequence
-        // !out(hello).!out(world)
-
-	    // new(out)
-        final Val out = newChannel(Val.class, "sequencedHelloWorld-out");
-
-        final String[] greeting = {"Hello", "World"};
-        instance(new Sequence(greeting.length, null) {
-            @Override
-            protected JacobRunnable doStep(final int step, final SynchChannel done) {
-                return new JacobRunnable() {
-                    @Override
-                    public void run() {
-                        instance(new StringEmitterProcess(greeting[step], out));
-                        done.ret();
-                    }
-                };
-            }
-        });
-	}
-	
-	@Override
-	public void run() {
-		simpleHelloWorld();
-		reliableHelloWorld();
-		sequencedHelloWorld();
-	}
-
-	public static void main(String args[]) {
-		JacobVPU vpu = new JacobVPU();
-		vpu.setContext(new ExecutionQueueImpl(null));
-		vpu.inject(new HelloWorld());
-		while (vpu.execute()) {
-			System.out.println(vpu.isComplete() ? "Ø" : ".");
-			//vpu.dumpState();
-		}
-		vpu.dumpState();
-	}
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.jacob.examples.helloworld;
+
+import org.apache.ode.jacob.Channel;
+import org.apache.ode.jacob.JacobRunnable;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
+import org.apache.ode.jacob.SynchChannel;
+import org.apache.ode.jacob.Val;
+import org.apache.ode.jacob.examples.sequence.Sequence;
+import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
+import org.apache.ode.jacob.vpu.JacobVPU;
+
+/**
+ * Simple Hello World example to showcase different
+ * features and approaches of the Jacob API.
+ * 
+ * Inspired by http://scienceblogs.com/goodmath/2007/04/16/back-to-calculus-a-better-intr-1/
+ * 
+ */
+@SuppressWarnings("serial")
+public class HelloWorld extends JacobRunnable {
+
+    public interface Callback<T, R extends Channel> extends Channel {
+        public void invoke(T value, R callback);
+    }
+
+    static class ReliablePrinterProcess extends JacobRunnable {
+        private Callback<String, Synch> _in;
+        public ReliablePrinterProcess(Callback<String, Synch> in) {
+            _in = in;
+        }
+
+        public void run() {
+            object(true, new ReceiveProcess<Callback<String, Synch>>(_in, new Callback<String, Synch>(){
+                @Override
+                public void invoke(String value, Synch callback) {
+                    System.out.println(value);
+                    callback.ret();
+                }
+            }) {
+                private static final long serialVersionUID = 1L;
+            });
+        }
+    }
+
+    static class ReliableStringEmitterProcess extends JacobRunnable {
+        private String str;
+        private Callback<String, Synch> to;
+        
+        public ReliableStringEmitterProcess(String str, Callback<String, Synch> to) {
+            this.str = str;
+            this.to = to;
+        }
+
+        public void run() {
+            Synch callback = newChannel(Synch.class, "callback channel to ACK " + str);
+            object(new ReceiveProcess<Synch>(callback, new Synch() {
+                
+                @Override
+                public void ret() {
+                    System.out.println(str + " ACKed");
+                }
+            }) {
+                 private static final long serialVersionUID = 1L;
+            });
+            to.invoke(str, callback);
+        }
+    }
+
+    
+    static class PrinterProcess extends JacobRunnable {
+        private Val _in;
+        public PrinterProcess(Val in) {
+            _in = in;
+        }
+
+        public void run() {
+            object(true, new ReceiveProcess<Val>(_in, new Val(){
+                public void val(Object o) {
+                    System.out.println(o);
+                }
+            }) {
+                private static final long serialVersionUID = 1L;
+            });
+        }
+    }
+
+    static class StringEmitterProcess extends JacobRunnable {
+        private String str;
+        private Val to;
+        
+        public StringEmitterProcess(String str, Val to) {
+            this.str = str;
+            this.to = to;
+        }
+
+        public void run() {
+            to.val(str);
+        }
+    }
+
+    static class ForwarderProcess extends JacobRunnable {
+        private Val in;
+        private Val out;
+        public ForwarderProcess(Val in, Val out) {
+            this.in = in;
+            this.out = out;
+        }
+
+        public void run() {
+            object(true, new ReceiveProcess<Val>(in, new Val(){
+                public void val(Object o) {
+                    out.val(o);
+                }
+            }) {
+                private static final long serialVersionUID = 1L;
+            });
+        }
+    }
+
+    private void simpleHelloWorld() {
+        // new(out)
+        final Val out = newChannel(Val.class, "simpleHelloWorld-out");
+        // new(x)
+        final Val x = newChannel(Val.class, "simpleHelloWorld-x");
+        // *(?out(str).!sysout(str))
+        instance(new PrinterProcess(out));
+        // *(?x(str).!out(str))
+        instance(new ForwarderProcess(x, out));
+
+        // !out(hello) | !out(world)
+        instance(new StringEmitterProcess("Hello", x));
+        instance(new StringEmitterProcess("World", x));
+    }
+    
+    private void reliableHelloWorld() {
+        // reliable version of the code above
+        // (new(callback).!out(hello).?callback) | (new(callback).!out(world).?callback)
+        
+        // new(rout)
+        Callback<String, Synch> rout = newChannel(Callback.class, "reliableHelloWorld-rout");
+        // *(?rout(str).!sysout(str))
+        instance(new ReliablePrinterProcess(rout));
+        // (new(callback).!out(hello).?callback)
+        instance(new ReliableStringEmitterProcess("Hello", rout));
+        // (new(callback).!out(world).?callback)
+        instance(new ReliableStringEmitterProcess("World", rout));
+    }
+    
+    
+    private void sequencedHelloWorld() {
+        // send hello world as a sequence
+        // !out(hello).!out(world)
+
+        // new(out)
+        final Val out = newChannel(Val.class, "sequencedHelloWorld-out");
+
+        final String[] greeting = {"Hello", "World"};
+        instance(new Sequence(greeting.length, null) {
+            @Override
+            protected JacobRunnable doStep(final int step, final SynchChannel done) {
+                return new JacobRunnable() {
+                    @Override
+                    public void run() {
+                        instance(new StringEmitterProcess(greeting[step], out));
+                        done.ret();
+                    }
+                };
+            }
+        });
+    }
+    
+    @Override
+    public void run() {
+        simpleHelloWorld();
+        reliableHelloWorld();
+        sequencedHelloWorld();
+    }
+
+    public static void main(String args[]) {
+        JacobVPU vpu = new JacobVPU();
+        vpu.setContext(new ExecutionQueueImpl(null));
+        vpu.inject(new HelloWorld());
+        while (vpu.execute()) {
+            System.out.println(vpu.isComplete() ? "<0>" : ".");
+            //vpu.dumpState();
+        }
+        vpu.dumpState();
+    }
+
+}