static container_t rootContainer = nullptr; /* the root container */
static xbt_dict_t allContainers = nullptr; /* all created containers indexed by name */
-xbt_dict_t trivaNodeTypes = nullptr; /* all host types defined */
-xbt_dict_t trivaEdgeTypes = nullptr; /* all link types defined */
+std::set<std::string> trivaNodeTypes; /* all host types defined */
+std::set<std::string> trivaEdgeTypes; /* all link types defined */
long long int instr_new_paje_id ()
{
void PJ_container_alloc ()
{
allContainers = xbt_dict_new_homogeneous(nullptr);
- trivaNodeTypes = xbt_dict_new_homogeneous(xbt_free_f);
- trivaEdgeTypes = xbt_dict_new_homogeneous(xbt_free_f);
}
void PJ_container_release ()
{
xbt_dict_free (&allContainers);
- xbt_dict_free (&trivaNodeTypes);
- xbt_dict_free (&trivaEdgeTypes);
}
void PJ_container_set_root (container_t root)
snprintf (id_str, INSTR_DEFAULT_STR_SIZE, "%lld", container_id);
container_id++;
- container_t newContainer = xbt_new0(s_container_t, 1);
+ container_t newContainer = xbt_new0(s_container, 1);
newContainer->name = xbt_strdup (name); // name of the container
newContainer->id = xbt_strdup (id_str); // id (or alias) of the container
newContainer->father = father;
xbt_assert(newContainer->netpoint, "Element '%s' not found", name);
break;
case INSTR_ROUTER:
- newContainer->netpoint = simgrid::s4u::Engine::instance()->netpointByNameOrNull(name);
+ newContainer->netpoint = simgrid::s4u::Engine::getInstance()->getNetpointByNameOrNull(name);
xbt_assert(newContainer->netpoint, "Element '%s' not found", name);
break;
case INSTR_AS:
- newContainer->netpoint = simgrid::s4u::Engine::instance()->netpointByNameOrNull(name);
+ newContainer->netpoint = simgrid::s4u::Engine::getInstance()->getNetpointByNameOrNull(name);
xbt_assert(newContainer->netpoint, "Element '%s' not found", name);
break;
default:
newContainer->children = xbt_dict_new_homogeneous(nullptr);
if (newContainer->father){
xbt_dict_set(newContainer->father->children, newContainer->name, newContainer, nullptr);
- new CreateContainerEvent(newContainer);
+ LogContainerCreation(newContainer);
}
//register all kinds by name
//register NODE types for triva configuration
if (newContainer->kind == INSTR_HOST || newContainer->kind == INSTR_LINK || newContainer->kind == INSTR_ROUTER) {
- xbt_dict_set (trivaNodeTypes, newContainer->type->name, xbt_strdup("1"), nullptr);
+ trivaNodeTypes.insert(newContainer->type->name);
}
return newContainer;
}
TRACE_paje_dump_buffer(1);
//trace my destruction
- if (!TRACE_disable_destroy() && container != PJ_container_get_root()){
+ if (not TRACE_disable_destroy() && container != PJ_container_get_root()) {
//do not trace the container destruction if user requests
//or if the container is root
- new DestroyContainerEvent(container);
+ LogContainerDestruction(container);
}
//remove it from allContainers data structure
rootContainer = nullptr;
//checks
- if (!xbt_dict_is_empty(allContainers)){
+ if (not xbt_dict_is_empty(allContainers)) {
THROWF(tracing_error, 0, "some containers still present even after destroying all of them");
}
}