Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
6e1bae981b7ff0805d9335c458b4445f5de9e976
[simgrid.git] / examples / java / cloud / migration / Daemon.java
1 /* Copyright (c) 2014-2017. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 package cloud.migration;
8
9 import org.simgrid.msg.*;
10 import org.simgrid.msg.Process;
11
12 public class Daemon extends Process {
13   private Task currentTask;
14   public Daemon(VM vm) {
15     super((Host)vm,"Daemon");
16     currentTask = new Task(this.getHost().getName()+"-daemon-0", this.getHost().getSpeed()*100, 0);
17   }
18   public void main(String[] args) throws MsgException {
19     int i = 1;
20     while(!Main.isEndOfTest()) {
21       // TODO the binding is not yet available
22     try {
23       currentTask.execute();
24     } catch (HostFailureException e) {
25       e.printStackTrace();
26     } catch (TaskCancelledException e) {
27       Msg.info("task cancelled");
28       suspend(); // Suspend the process
29     }
30     currentTask = new Task(this.getHost().getName()+"-daemon-"+(i++), this.getHost().getSpeed()*100, 0);
31   }
32 }
33
34   public double getRemaining(){
35     return this.currentTask.getFlopsAmount();
36   }
37 }