- src_coord = xbt_dynar_get_as(src, index, double);
- dst_coord = xbt_dynar_get_as(dst, index, double);
+ static xbt_dynar_t getCoordsFromNetcard(NetCard *nc)
+ {
+ xbt_dynar_t res = nullptr;
+ char *tmp_name;
+
+ if(nc->isHost()){
+ tmp_name = bprintf("peer_%s", nc->name());
+ simgrid::s4u::Host *host = simgrid::s4u::Host::by_name_or_null(tmp_name);
+ if (host == nullptr)
+ host = simgrid::s4u::Host::by_name_or_null(nc->name());
+ if (host != nullptr)
+ res = (xbt_dynar_t) host->extension(COORD_HOST_LEVEL);
+ }
+ else if(nc->isRouter() || nc->isAS()){
+ tmp_name = bprintf("router_%s", nc->name());
+ res = (xbt_dynar_t) xbt_lib_get_or_null(as_router_lib, tmp_name, COORD_ASR_LEVEL);
+ }
+ else{
+ THROW_IMPOSSIBLE;
+ }