Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / src / instr / instr_paje_values.hpp
1 /* Copyright (c) 2010-2022. 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 INSTR_PAJE_VALUES_HPP
7 #define INSTR_PAJE_VALUES_HPP
8
9 #include "src/instr/instr_private.hpp"
10 #include <string>
11
12 namespace simgrid {
13 namespace instr {
14
15 class EntityValue {
16   long long int id_ = new_paje_id();
17   std::string name_;
18   std::string color_;
19   Type* parent_;
20
21   static xbt::signal<void(const EntityValue&)> on_creation;
22
23 public:
24   static void on_creation_cb(const std::function<void(const EntityValue&)>& cb) { on_creation.connect(cb); }
25   explicit EntityValue(const std::string& name, const std::string& color, Type* parent);
26
27   long long int get_id() const { return id_; }
28   std::string get_name() const { return name_; }
29   const char* get_cname() const { return name_.c_str(); }
30   std::string get_color() const { return color_; }
31   Type* get_parent() const { return parent_; }
32 };
33 } // namespace instr
34 } // namespace simgrid
35
36 #endif