Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move Java examples to examples/java/.
[simgrid.git] / examples / java / master_slave_kill / Master.java
diff --git a/examples/java/master_slave_kill/Master.java b/examples/java/master_slave_kill/Master.java
new file mode 100644 (file)
index 0000000..783e9a1
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Master of a basic master/slave example in Java
+ *
+ * Copyright 2006-2012 The SimGrid Team. All rights reserved. 
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. 
+ */
+
+package master_slave_kill;
+import org.simgrid.msg.HostNotFoundException;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.Task;
+
+import master_slave_kill.FinalizeTask;
+
+public class Master extends Process {
+       public Master(String hostname, String name) throws HostNotFoundException {
+               super(hostname, name);
+       }
+       public void main(String[] args) throws MsgException {
+               Msg.info("Master Hello!");
+               Process process2 = null;
+               //Create a slave on host "alice"
+               try {
+                       Msg.info("Create process on host 'alice'");
+                   process2 = new Slave("alice","slave");
+                   process2.start();
+               } catch (MsgException e){
+                   System.out.println("Process2!");
+               }
+               
+               //Wait for slave "alice"
+               while(true)
+               {  
+                               Task task = Task.receive("mail1");
+                               if (task instanceof FinalizeTask) {
+                                       Msg.info("Received mail1!");
+                                       break;  
+                               }
+               }
+               process2.kill();
+
+               Msg.info("Process2 is now killed, should exit now");
+       }
+}