Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Tight exception declaration
[simgrid.git] / examples / java / basic / Slave.java
index 33eea2d..6d8eb6c 100644 (file)
@@ -1,8 +1,5 @@
 /*
- * $Id$
- *
- * Copyright 2006,2007 Martin Quinson, Malek Cherier         
- * All rights reserved. 
+ * Copyright 2006,2007,2010. 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. 
 import simgrid.msg.*;
 
 public class Slave extends simgrid.msg.Process {
-   public void main(String[] args) throws JniException, NativeException {
-      Msg.info("Hello !");
+   public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
+      if (args.length < 1) {
+        Msg.info("Slave needs 1 argument (its number)");
+        System.exit(1);
+      }
+
+      int num = Integer.valueOf(args[0]).intValue();
+      Msg.info("Receiving on 'slave_"+num+"'");
       
       while(true) { 
-        Task t = Task.get(0);  
+        Task task = Task.receive("slave_"+num);        
         
-        if (t instanceof FinalizeTask) {
+        if (task instanceof FinalizeTask) {
            break;
         }
-        BasicTask task = (BasicTask)t;
-        Msg.info("Received \"" + task.getName() + "\" ");
-                
-        Msg.info("Processing \"" + task.getName() +  "\" ");    
+        Msg.info("Received \"" + task.getName() +  "\". Processing it.");
+        try {
         task.execute();
+        } catch (TaskCancelledException e) {
+                
+        }
         Msg.info("\"" + task.getName() + "\" done ");
        }