//declare type
char link_typename[INSTR_DEFAULT_STR_SIZE];
- snprintf(link_typename, INSTR_DEFAULT_STR_SIZE, "%s-%s%s-%s%s", father->type_->name_, src->type_->name_,
- src->type_->id_, dst->type_->name_, dst->type_->id_);
+ snprintf(link_typename, INSTR_DEFAULT_STR_SIZE, "%s-%s%s-%s%s", father->type_->getCname(), src->type_->getCname(),
+ src->type_->getId(), dst->type_->getCname(), dst->type_->getId());
simgrid::instr::Type* link_type = father->type_->getChildOrNull(link_typename);
if (link_type == nullptr)
- link_type = simgrid::instr::Type::linkNew(link_typename, father->type_, src->type_, dst->type_);
+ link_type = father->type_->addLinkType(link_typename, src->type_, dst->type_);
//register EDGE types for triva configuration
- trivaEdgeTypes.insert(link_type->name_);
+ trivaEdgeTypes.insert(link_type->getName());
//create the link
static long long counter = 0;
static_cast<simgrid::kernel::routing::NetZoneImpl*>(netzone)->getGraph(graph, nodes, edges);
xbt_dict_foreach(edges,cursor,edge_name,edge) {
- linkContainers(
- PJ_container_get(static_cast<const char*>(edge->src->data)),
- PJ_container_get(static_cast<const char*>(edge->dst->data)), filter);
+ linkContainers(simgrid::instr::Container::byName(static_cast<const char*>(edge->src->data)),
+ simgrid::instr::Container::byName(static_cast<const char*>(edge->dst->data)), filter);
}
xbt_dict_free (&nodes);
xbt_dict_free (&edges);
*/
static void sg_instr_AS_begin(simgrid::s4u::NetZone& netzone)
{
- const char* id = netzone.getCname();
+ std::string id = netzone.getName();
if (PJ_container_get_root() == nullptr){
container_t root = new simgrid::instr::Container(id, simgrid::instr::INSTR_AS, nullptr);
if (mpi == nullptr){
mpi = simgrid::instr::Type::containerNew("MPI", root->type_);
if (not TRACE_smpi_is_grouped())
- simgrid::instr::Type::stateNew("MPI_STATE", mpi);
- simgrid::instr::Type::linkNew("MPI_LINK", PJ_type_get_root(), mpi, mpi);
+ mpi->addStateType("MPI_STATE");
+ PJ_type_get_root()->addLinkType("MPI_LINK", mpi, mpi);
}
}
if ((TRACE_categorized() || TRACE_uncategorized() || TRACE_platform()) && (not TRACE_disable_link())) {
simgrid::instr::Type* bandwidth = container->type_->getChildOrNull("bandwidth");
if (bandwidth == nullptr)
- bandwidth = simgrid::instr::Type::variableNew("bandwidth", nullptr, container->type_);
+ bandwidth = container->type_->addVariableType("bandwidth", "");
simgrid::instr::Type* latency = container->type_->getChildOrNull("latency");
if (latency == nullptr)
- latency = simgrid::instr::Type::variableNew("latency", nullptr, container->type_);
+ latency = container->type_->addVariableType("latency", "");
new simgrid::instr::SetVariableEvent(0, container, bandwidth, bandwidth_value);
new simgrid::instr::SetVariableEvent(0, container, latency, latency_value);
}
if (TRACE_uncategorized()) {
simgrid::instr::Type* bandwidth_used = container->type_->getChildOrNull("bandwidth_used");
if (bandwidth_used == nullptr)
- simgrid::instr::Type::variableNew("bandwidth_used", "0.5 0.5 0.5", container->type_);
+ container->type_->addVariableType("bandwidth_used", "0.5 0.5 0.5");
}
}
if ((TRACE_categorized() || TRACE_uncategorized() || TRACE_platform()) && (not TRACE_disable_speed())) {
simgrid::instr::Type* speed = container->type_->getChildOrNull("power");
if (speed == nullptr){
- speed = simgrid::instr::Type::variableNew("power", nullptr, container->type_);
+ speed = container->type_->addVariableType("power", "");
}
double current_speed_state = host.getSpeed();
if (TRACE_uncategorized()){
simgrid::instr::Type* speed_used = container->type_->getChildOrNull("power_used");
if (speed_used == nullptr){
- simgrid::instr::Type::variableNew("power_used", "0.5 0.5 0.5", container->type_);
+ container->type_->addVariableType("power_used", "0.5 0.5 0.5");
}
}
simgrid::instr::Type* mpi = container->type_->getChildOrNull("MPI");
if (mpi == nullptr){
mpi = simgrid::instr::Type::containerNew("MPI", container->type_);
- simgrid::instr::Type::stateNew("MPI_STATE", mpi);
+ mpi->addStateType("MPI_STATE");
}
}
simgrid::instr::Type* msg_process = container->type_->getChildOrNull("MSG_PROCESS");
if (msg_process == nullptr){
msg_process = simgrid::instr::Type::containerNew("MSG_PROCESS", container->type_);
- simgrid::instr::Type* state = simgrid::instr::Type::stateNew("MSG_PROCESS_STATE", msg_process);
+ simgrid::instr::Type* state = msg_process->addStateType("MSG_PROCESS_STATE");
simgrid::instr::Value::byNameOrCreate("suspend", "1 0 1", state);
simgrid::instr::Value::byNameOrCreate("sleep", "1 1 0", state);
simgrid::instr::Value::byNameOrCreate("receive", "1 0 0", state);
simgrid::instr::Value::byNameOrCreate("send", "0 0 1", state);
simgrid::instr::Value::byNameOrCreate("task_execute", "0 1 1", state);
- simgrid::instr::Type::linkNew("MSG_PROCESS_LINK", PJ_type_get_root(), msg_process, msg_process);
- simgrid::instr::Type::linkNew("MSG_PROCESS_TASK_LINK", PJ_type_get_root(), msg_process, msg_process);
+ PJ_type_get_root()->addLinkType("MSG_PROCESS_LINK", msg_process, msg_process);
+ PJ_type_get_root()->addLinkType("MSG_PROCESS_TASK_LINK", msg_process, msg_process);
}
}
simgrid::instr::Type* msg_vm = container->type_->getChildOrNull("MSG_VM");
if (msg_vm == nullptr){
msg_vm = simgrid::instr::Type::containerNew("MSG_VM", container->type_);
- simgrid::instr::Type* state = simgrid::instr::Type::stateNew("MSG_VM_STATE", msg_vm);
+ simgrid::instr::Type* state = msg_vm->addStateType("MSG_VM_STATE");
simgrid::instr::Value::byNameOrCreate("suspend", "1 0 1", state);
simgrid::instr::Value::byNameOrCreate("sleep", "1 1 0", state);
simgrid::instr::Value::byNameOrCreate("receive", "1 0 0", state);
simgrid::instr::Value::byNameOrCreate("send", "0 0 1", state);
simgrid::instr::Value::byNameOrCreate("task_execute", "0 1 1", state);
- simgrid::instr::Type::linkNew("MSG_VM_LINK", PJ_type_get_root(), msg_vm, msg_vm);
- simgrid::instr::Type::linkNew("MSG_VM_PROCESS_LINK", PJ_type_get_root(), msg_vm, msg_vm);
+ PJ_type_get_root()->addLinkType("MSG_VM_LINK", msg_vm, msg_vm);
+ PJ_type_get_root()->addLinkType("MSG_VM_PROCESS_LINK", msg_vm, msg_vm);
}
}
}
XBT_DEBUG ("Graph extraction finished.");
delete filter;
platform_created = 1;
- TRACE_paje_dump_buffer(1);
+ TRACE_paje_dump_buffer(true);
}
void instr_routing_define_callbacks ()
{
- //always need the call backs to ASes (we need only the root AS),
- //to create the rootContainer and the rootType properly
+ // always need the callbacks to ASes (we need only the root AS), to create the rootContainer and the rootType properly
if (not TRACE_is_enabled())
return;
if (TRACE_needs_platform()) {
*/
static void recursiveNewVariableType(const char* new_typename, const char* color, simgrid::instr::Type* root)
{
- if (not strcmp(root->name_, "HOST")) {
- char tnstr[INSTR_DEFAULT_STR_SIZE];
- snprintf (tnstr, INSTR_DEFAULT_STR_SIZE, "p%s", new_typename);
- simgrid::instr::Type::variableNew(tnstr, color, root);
- }
- if (not strcmp(root->name_, "MSG_VM")) {
- char tnstr[INSTR_DEFAULT_STR_SIZE];
- snprintf (tnstr, INSTR_DEFAULT_STR_SIZE, "p%s", new_typename);
- simgrid::instr::Type::variableNew(tnstr, color, root);
- }
- if (not strcmp(root->name_, "LINK")) {
- char tnstr[INSTR_DEFAULT_STR_SIZE];
- snprintf (tnstr, INSTR_DEFAULT_STR_SIZE, "b%s", new_typename);
- simgrid::instr::Type::variableNew(tnstr, color, root);
- }
- xbt_dict_cursor_t cursor = nullptr;
- simgrid::instr::Type* child_type;
- char *name;
- xbt_dict_foreach (root->children_, cursor, name, child_type) {
- recursiveNewVariableType (new_typename, color, child_type);
+ if (root->getName() == "HOST" || root->getName() == "MSG_VM")
+ root->addVariableType(std::string("p") + new_typename, color == nullptr ? "" : color);
+
+ if (root->getName() == "LINK")
+ root->addVariableType(std::string("b") + new_typename, color == nullptr ? "" : color);
+
+ for (auto elm : root->children_) {
+ recursiveNewVariableType(new_typename, color == nullptr ? "" : color, elm.second);
}
}
static void recursiveNewUserVariableType(const char* father_type, const char* new_typename, const char* color,
simgrid::instr::Type* root)
{
- if (not strcmp(root->name_, father_type)) {
- simgrid::instr::Type::variableNew(new_typename, color, root);
- }
- xbt_dict_cursor_t cursor = nullptr;
- simgrid::instr::Type* child_type;
- char *name;
- xbt_dict_foreach (root->children_, cursor, name, child_type) {
- recursiveNewUserVariableType (father_type, new_typename, color, child_type);
+ if (root->getName() == father_type) {
+ root->addVariableType(new_typename, color == nullptr ? "" : color);
}
+ for (auto elm : root->children_)
+ recursiveNewUserVariableType(father_type, new_typename, color, elm.second);
}
void instr_new_user_variable_type (const char *father_type, const char *new_typename, const char *color)
static void recursiveNewUserStateType(const char* father_type, const char* new_typename, simgrid::instr::Type* root)
{
- if (not strcmp(root->name_, father_type)) {
- simgrid::instr::Type::stateNew(new_typename, root);
- }
- xbt_dict_cursor_t cursor = nullptr;
- simgrid::instr::Type* child_type;
- char *name;
- xbt_dict_foreach (root->children_, cursor, name, child_type) {
- recursiveNewUserStateType (father_type, new_typename, child_type);
+ if (root->getName() == father_type) {
+ root->addStateType(new_typename);
}
+ for (auto elm : root->children_)
+ recursiveNewUserStateType(father_type, new_typename, elm.second);
}
void instr_new_user_state_type (const char *father_type, const char *new_typename)
static void recursiveNewValueForUserStateType(const char* type_name, const char* val, const char* color,
simgrid::instr::Type* root)
{
- if (not strcmp(root->name_, type_name)) {
+ if (root->getName() == type_name)
simgrid::instr::Value::byNameOrCreate(val, color, root);
- }
- xbt_dict_cursor_t cursor = nullptr;
- simgrid::instr::Type* child_type;
- char *name;
- xbt_dict_foreach (root->children_, cursor, name, child_type) {
- recursiveNewValueForUserStateType(type_name, val, color, child_type);
- }
+
+ for (auto elm : root->children_)
+ recursiveNewValueForUserStateType(type_name, val, color, elm.second);
}
void instr_new_value_for_user_state_type (const char *type_name, const char *value, const char *color)