Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
4211ce152b35f76f6cca1f065f3c434edaebf60c
[simgrid.git] / src / bindings / java / surf_swig.hpp
1 /* Copyright (c) 2014. 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 #include <cstdio>
8 #include <iostream>
9 #include "src/surf/cpu_interface.hpp"
10 #include "src/surf/network_interface.hpp"
11 #include "src/surf/maxmin_private.hpp"
12
13 typedef xbt_dynar_t NetworkLinkDynar;
14 typedef ActionList *ActionArrayPtr;
15
16 double getClock();
17
18 void clean();
19
20 CpuModel *getCpuModel();
21 void setCpuModel(CpuModel *cpuModel);
22
23 void setCpu(char *name, Cpu *cpu);
24
25 NetworkLinkDynar getRoute(char *srcName, char *dstName);
26
27 class Plugin {
28 public:
29  virtual ~Plugin() {
30    std::cout << "Plugin::~Plugin()" << std:: endl;
31  }
32
33  void activateCpuCreatedCallback();
34  virtual void cpuCreatedCallback(Cpu *cpu) {}
35
36  void activateCpuDestructedCallback();
37  virtual void cpuDestructedCallback(Cpu *cpu) {}
38
39  void activateCpuStateChangedCallback();
40  virtual void cpuStateChangedCallback(Cpu *cpu, e_surf_resource_state_t, e_surf_resource_state_t) {}
41
42  void activateCpuActionStateChangedCallback();
43  virtual void cpuActionStateChangedCallback(CpuAction *action, e_surf_action_state_t, e_surf_action_state_t) {}
44
45
46  void activateNetworkLinkCreatedCallback();
47  virtual void networkLinkCreatedCallback(NetworkLink *link) {}
48
49  void activateNetworkLinkDestructedCallback();
50  virtual void networkLinkDestructedCallback(NetworkLink *link) {}
51
52  void activateNetworkLinkStateChangedCallback();
53  virtual void networkLinkStateChangedCallback(NetworkLink *link, e_surf_resource_state_t, e_surf_resource_state_t) {}
54
55  void activateNetworkActionStateChangedCallback();
56  virtual void networkActionStateChangedCallback(NetworkAction *action, e_surf_action_state_t old, e_surf_action_state_t cur) {}
57
58  void activateNetworkCommunicateCallback();
59  virtual void networkCommunicateCallback(NetworkAction *action, RoutingEdge *src, RoutingEdge *dst, double size, double rate) {}
60 };