Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The java examples to illustrate the usage of the mailbox concept.
[simgrid.git] / examples / java / alias0 / Forwarder.java
1 /*\r
2  * $Id: Forwarder.java 5059 2007-11-19 20:01:59Z mquinson $\r
3  *\r
4  * Copyright 2006,2007 Martin Quinson, Malek Cherier         \r
5  * All rights reserved. \r
6  *\r
7  * This program is free software; you can redistribute it and/or modify it\r
8  * under the terms of the license (GNU LGPL) which comes with this package. \r
9  */\r
10 \r
11 import simgrid.msg.*;\r
12 \r
13 public class Forwarder extends simgrid.msg.Process {\r
14     \r
15         public void main(String[] args) throws JniException, NativeException \r
16         {\r
17                 Msg.info("hello!");\r
18         \r
19                 int aliasCount = args.length;\r
20                 Task taskReceived;\r
21                 Task finalizeTask;\r
22                 BasicTask basicTask;\r
23                 \r
24                 int taskCount = 0;\r
25                 \r
26                 while(true) \r
27                 {\r
28                         taskReceived = Task.receive();\r
29                                 \r
30         \r
31                         if(taskReceived instanceof FinalizeTask) \r
32                         {\r
33                                 Msg.info("All tasks have been dispatched. Let's tell everybody the computation is over.");\r
34         \r
35                                 for (int i = 0; i < aliasCount; i++) \r
36                                 {\r
37                                         finalizeTask = new FinalizeTask();\r
38                                         finalizeTask.send(args[i]);\r
39                                 }\r
40                                 \r
41                                 break;\r
42                         }\r
43                         \r
44                         basicTask = (BasicTask)taskReceived;\r
45         \r
46                         Msg.info("Received \"" + taskReceived.getName() + "\" ");\r
47                         \r
48                         Msg.info("Sending \"" + taskReceived.getName() + "\" to \"" + args[taskCount % aliasCount] + "\"");\r
49                         \r
50                         basicTask.send(args[taskCount % aliasCount]);\r
51         \r
52                         taskCount++;\r
53                 }\r
54         \r
55         \r
56                 Msg.info("I'm done. See you!");\r
57         }\r
58 }\r
59 \r