X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c96b8ddfe1c923257f43ee40334ceb820226694c..f602ee5e834cf7bf6d1e1be849daae79a54e7274:/src/surf/surf_routing.cpp
diff --git a/src/surf/surf_routing.cpp b/src/surf/surf_routing.cpp
index e12af64f42..d4cd3d5273 100644
--- a/src/surf/surf_routing.cpp
+++ b/src/surf/surf_routing.cpp
@@ -34,9 +34,6 @@ namespace routing {
* @ingroup SURF_build_api
* @brief A library containing all known hosts
*/
-xbt_dict_t host_list = nullptr;
-
-int COORD_HOST_LEVEL = -1; //Coordinates level
int MSG_FILE_LEVEL = -1; //Msg file level
@@ -63,8 +60,7 @@ simgrid::kernel::routing::NetCard *sg_netcard_by_name_or_null(const char *name)
}
/* Global vars */
-simgrid::kernel::routing::RoutingPlatf *routing_platf = nullptr;
-
+simgrid::kernel::routing::RoutingPlatf* routing_platf = new simgrid::kernel::routing::RoutingPlatf();
void sg_platf_new_trace(sg_platf_trace_cbarg_t trace)
{
@@ -99,44 +95,20 @@ namespace routing {
*/
void RoutingPlatf::getRouteAndLatency(NetCard *src, NetCard *dst, std::vector * route, double *latency)
{
- XBT_DEBUG("getRouteAndLatency from %s to %s", src->name(), dst->name());
+ XBT_DEBUG("getRouteAndLatency from %s to %s", src->name().c_str(), dst->name().c_str());
AsImpl::getRouteRecursive(src, dst, route, latency);
}
-static xbt_dynar_t _recursiveGetOneLinkRoutes(AsImpl *as)
+std::vector* RoutingPlatf::getOneLinkRoutes()
{
- xbt_dynar_t ret = xbt_dynar_new(sizeof(Onelink*), xbt_free_f);
-
- //adding my one link routes
- xbt_dynar_t onelink_mine = as->getOneLinkRoutes();
- if (onelink_mine)
- xbt_dynar_merge(&ret,&onelink_mine);
-
- //recursing
- char *key;
- xbt_dict_cursor_t cursor = nullptr;
- AsImpl *rc_child;
- xbt_dict_foreach(as->children(), cursor, key, rc_child) {
- xbt_dynar_t onelink_child = _recursiveGetOneLinkRoutes(rc_child);
- if (onelink_child)
- xbt_dynar_merge(&ret,&onelink_child);
- }
- return ret;
-}
-
-xbt_dynar_t RoutingPlatf::getOneLinkRoutes(){
- return _recursiveGetOneLinkRoutes(root_);
+ std::vector* res = new std::vector();
+ root_->getOneLinkRoutes(res);
+ return res;
}
}}}
-/** @brief create the root AS */
-void routing_model_create(Link *loopback)
-{
- routing_platf = new simgrid::kernel::routing::RoutingPlatf(loopback);
-}
-
/* ************************************************************************** */
/* ************************* GENERIC PARSE FUNCTIONS ************************ */
@@ -145,13 +117,13 @@ static void check_disk_attachment()
xbt_lib_cursor_t cursor;
char *key;
void **data;
- simgrid::kernel::routing::NetCard *host_elm;
xbt_lib_foreach(storage_lib, cursor, key, data) {
- if(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL) != nullptr) {
- simgrid::surf::Storage *storage = static_cast(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
- host_elm = sg_netcard_by_name_or_null(storage->attach_);
- if(!host_elm)
- surf_parse_error("Unable to attach storage %s: host %s doesn't exist.", storage->getName(), storage->attach_);
+ if (xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL) != nullptr) {
+ simgrid::surf::Storage* storage =
+ static_cast(xbt_lib_get_or_null(storage_lib, key, SURF_STORAGE_LEVEL));
+ simgrid::kernel::routing::NetCard* host_elm = sg_netcard_by_name_or_null(storage->attach_);
+ if (!host_elm)
+ surf_parse_error("Unable to attach storage %s: host %s doesn't exist.", storage->getName(), storage->attach_);
}
}
}
@@ -168,10 +140,7 @@ void routing_exit() {
delete routing_platf;
}
-simgrid::kernel::routing::RoutingPlatf::RoutingPlatf(simgrid::surf::Link *loopback)
-: loopback_(loopback)
-{
-}
+simgrid::kernel::routing::RoutingPlatf::RoutingPlatf() = default;
simgrid::kernel::routing::RoutingPlatf::~RoutingPlatf()
{
delete root_;