static container_t rootContainer = nullptr; /* the root container */
static std::map<std::string, container_t> allContainers; /* all created containers indexed by name */
-long long int instr_new_paje_id ()
+namespace simgrid {
+namespace instr {
+
+long long int new_paje_id()
{
static long long int type_id = 0;
return type_id++;
}
-namespace simgrid {
-namespace instr {
-
Container* Container::get_root()
{
return rootContainer;
NetZoneContainer::NetZoneContainer(const std::string& name, unsigned int level, NetZoneContainer* father)
: Container::Container(name, "", father)
{
- netpoint_ = s4u::Engine::get_instance()->netpoint_by_name_or_null(get_name());
- xbt_assert(netpoint_, "Element '%s' not found", get_cname());
+ xbt_assert(s4u::Engine::get_instance()->netpoint_by_name_or_null(get_name()), "Element '%s' not found", get_cname());
if (father_) {
std::string type_name = std::string("L") + std::to_string(level);
type_ = father_->type_->by_name_or_create<ContainerType>(type_name);
: Container::Container(name, "ROUTER", father)
{
xbt_assert(father, "Only the Root container has no father");
-
- netpoint_ = s4u::Engine::get_instance()->netpoint_by_name_or_null(get_name());
- xbt_assert(netpoint_, "Element '%s' not found", get_cname());
+ xbt_assert(s4u::Engine::get_instance()->netpoint_by_name_or_null(get_name()), "Element '%s' not found", get_cname());
}
HostContainer::HostContainer(s4u::Host const& host, NetZoneContainer* father)
: Container::Container(host.get_name(), "HOST", father)
{
xbt_assert(father, "Only the Root container has no father");
-
- netpoint_ = host.get_netpoint();
- xbt_assert(netpoint_, "Element '%s' not found", host.get_cname());
+ xbt_assert(host.get_netpoint(), "Element '%s' not found", host.get_cname());
}
Container::Container(const std::string& name, const std::string& type_name, Container* father)
// remove me from the allContainers data structure
allContainers.erase(name_);
+ // obligation to dump previous events because they might reference the container that is about to be destroyed
+ last_timestamp_to_dump = SIMIX_get_clock();
+ dump_buffer(true);
+
on_destruction(*this);
}
{
return static_cast<VariableType*>(type_->by_name(name)->set_calling_container(this));
}
+
+EntityValue::EntityValue(const std::string& name, const std::string& color, Type* father)
+ : name_(name), color_(color), father_(father)
+{
+ id_ = simgrid::instr::new_paje_id();
+ on_creation(*this);
+}
+
} // namespace instr
} // namespace simgrid