Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
6f57c01c8ce96760aa6f35911ad257560b85eff8
[simgrid.git] / include / simgrid / jedule / jedule_events.hpp
1 /* Copyright (c) 2010-2012, 2014-2018. 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 #ifndef JEDULE_EVENTS_H_
8 #define JEDULE_EVENTS_H_
9
10 #include "simgrid_config.h"
11 #include "simgrid/forward.h"
12 #include <vector>
13 #include <string>
14 #include <unordered_map>
15
16 #include "jedule_platform.hpp"
17
18 #if SIMGRID_HAVE_JEDULE
19 namespace simgrid {
20 namespace jedule{
21
22 class XBT_PUBLIC Event {
23 public:
24   Event(std::string name, double start_time, double end_time, std::string type);
25   ~Event();
26   void addCharacteristic(char* characteristic);
27   void addResources(std::vector<sg_host_t>* host_selection);
28   void addInfo(char* key, char* value);
29   void print(FILE* file);
30
31 private:
32   std::string name;
33   double start_time;
34   double end_time;
35   std::string type;
36   std::vector<jed_subset_t>* resource_subsets;
37   std::vector<char*> characteristics_list;   /* just a list of names (strings) */
38   std::unordered_map<char*, char*> info_map; /* key/value pairs */
39 };
40 }
41 }
42
43 extern "C" {
44 typedef simgrid::jedule::Event* jed_event_t;
45 }
46
47 #endif
48
49 #endif /* JEDULE_EVENTS_H_ */