Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge pull request #113 from adfaure/master
[simgrid.git] / include / simgrid / jedule / jedule_events.hpp
1 /* Copyright (c) 2010-2012, 2014-2015. 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 HAVE_JEDULE
19 namespace simgrid {
20 namespace jedule{
21
22 XBT_PUBLIC_CLASS Event{
23   private:
24     ~Event()=default;
25   public:
26     Event(std::string name, double start_time, double end_time, std::string type)
27       : name(name), start_time(start_time), end_time(end_time), type(type){}
28     void deleteEvent();
29     void addCharacteristic(char *characteristic);
30     void addResources(std::vector<sg_host_t> *host_selection);
31     void addInfo(char *key, char *value);
32     void print(FILE *file);
33
34   private:
35     std::string name;
36     double start_time;
37     double end_time;
38     std::string type;
39     std::vector<jed_res_subset_t> resource_subsets;
40     std::vector<char*> characteristics_list; /* just a list of names (strings) */
41     std::unordered_map<char*, char*> info_map;     /* key/value pairs */
42 };
43 }
44 }
45
46 SG_BEGIN_DECL()
47
48 typedef simgrid::jedule::Event * jed_event_t;
49
50 SG_END_DECL()
51
52 #endif
53
54 #endif /* JEDULE_EVENTS_H_ */