* @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
}
/* 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)
{
*/
void RoutingPlatf::getRouteAndLatency(NetCard *src, NetCard *dst, std::vector<Link*> * 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<Onelink*>* 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<Onelink*>* res = new std::vector<Onelink*>();
+ 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 ************************ */
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<simgrid::surf::Storage*>(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->p_attach);
- if(!host_elm)
- surf_parse_error("Unable to attach storage %s: host %s doesn't exist.", storage->getName(), storage->p_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<simgrid::surf::Storage*>(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_);
}
}
}
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_;