Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
3e96e666468be6dbe86ec5e3787df0d29339f1f4
[simgrid.git] / include / simgrid / jedule / jedule_events.hpp
1 /* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #ifndef JEDULE_EVENTS_H_
7 #define JEDULE_EVENTS_H_
8
9 #include <simgrid/jedule/jedule_platform.hpp>
10
11 #include <simgrid/forward.h>
12
13 #include <vector>
14 #include <string>
15 #include <unordered_map>
16
17 namespace simgrid {
18 namespace jedule{
19
20 class XBT_PUBLIC Event {
21 public:
22   Event(const std::string& name, double start_time, double end_time, const std::string& type);
23   Event(const Event&) = delete;
24   Event& operator=(const Event&) = delete;
25   ~Event();
26   void add_characteristic(char* characteristic);
27   void add_resources(std::vector<sg_host_t>* host_selection);
28   void add_info(char* key, char* value);
29   void print(FILE* file);
30
31   // deprecated
32   XBT_ATTRIB_DEPRECATED_v323("Please use Event::add_characteristic()") void addCharacteristic(char* characteristic)
33   {
34     add_characteristic(characteristic);
35   }
36   XBT_ATTRIB_DEPRECATED_v323("Please use Event::add_resources()") void addResources(
37       std::vector<sg_host_t>* host_selection)
38   {
39     add_resources(host_selection);
40   }
41   XBT_ATTRIB_DEPRECATED_v323("Please use Event::add_info()") void addInfo(char* key, char* value)
42   {
43     add_info(key, value);
44   }
45
46 private:
47   std::string name_;
48   double start_time_;
49   double end_time_;
50   std::string type_;
51   std::vector<jed_subset_t>* resource_subsets_;
52   std::vector<char*> characteristics_list_;   /* just a list of names */
53   std::unordered_map<char*, char*> info_map_; /* key/value pairs */
54 };
55 }
56 }
57
58 typedef simgrid::jedule::Event* jed_event_t;
59
60 #endif /* JEDULE_EVENTS_H_ */