namespace simgrid {
namespace surf {
-void AsGeneric::parseRoute(sg_platf_route_cbarg_t /*route*/){
- THROW_IMPOSSIBLE;
-}
-
-void AsGeneric::parseASroute(sg_platf_route_cbarg_t /*route*/){
- THROW_IMPOSSIBLE;
-}
-
-void AsGeneric::getRouteAndLatency(NetCard */*src*/, NetCard */*dst*/, sg_platf_route_cbarg_t /*into*/, double */*latency*/){
- THROW_IMPOSSIBLE;
-}
-
-AsGeneric::AsGeneric() {
- p_bypassRoutes = xbt_dict_new_homogeneous((void (*)(void *)) routing_route_free);
-}
-
-AsGeneric::~AsGeneric() {
- xbt_dict_free(&p_bypassRoutes);
-}
-
-int AsGeneric::parsePU(NetCard *elm)
+AsGeneric::AsGeneric(const char*name)
+ : AsNone(name)
{
- XBT_DEBUG("Load process unit \"%s\"", elm->getName());
- xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
- return xbt_dynar_length(p_indexNetworkElm)-1;
+ bypassRoutes_ = xbt_dict_new_homogeneous((void (*)(void *)) routing_route_free);
}
-int AsGeneric::parseAS(NetCard *elm)
+AsGeneric::~AsGeneric()
{
- XBT_DEBUG("Load Autonomous system \"%s\"", elm->getName());
- xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
- return xbt_dynar_length(p_indexNetworkElm)-1;
+ xbt_dict_free(&bypassRoutes_);
}
void AsGeneric::parseBypassroute(sg_platf_route_cbarg_t e_route)
XBT_DEBUG("Load bypassASroute from \"%s\" to \"%s\"", src, dst);
else
XBT_DEBUG("Load bypassRoute from \"%s\" to \"%s\"", src, dst);
- xbt_dict_t dict_bypassRoutes = p_bypassRoutes;
+ xbt_dict_t dict_bypassRoutes = bypassRoutes_;
char *route_name;
route_name = bprintf("%s#%s", src, dst);
void AsGeneric::getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)
{
int src, dst;
- int table_size = xbt_dynar_length(p_indexNetworkElm);
+ int table_size = xbt_dynar_length(vertices_);
for (src = 0; src < table_size; src++) {
NetCard *my_src =
- xbt_dynar_get_as(p_indexNetworkElm, src, NetCard*);
+ xbt_dynar_get_as(vertices_, src, NetCard*);
for (dst = 0; dst < table_size; dst++) {
if (src == dst)
continue;
NetCard *my_dst =
- xbt_dynar_get_as(p_indexNetworkElm, dst, NetCard*);
+ xbt_dynar_get_as(vertices_, dst, NetCard*);
sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
return NULL;
sg_platf_route_cbarg_t e_route_bypass = NULL;
- xbt_dict_t dict_bypassRoutes = p_bypassRoutes;
+ xbt_dict_t dict_bypassRoutes = bypassRoutes_;
if(dst->getRcComponent() == this && src->getRcComponent() == this ){
char *route_name = bprintf("%s#%s", src->getName(), dst->getName());
if (src == NULL || dst == NULL)
xbt_die("Ask for route \"from\"(%s) or \"to\"(%s) no found at AS \"%s\"",
src ? src->getName() : "(null)",
- dst ? dst->getName() : "(null)", p_name);
+ dst ? dst->getName() : "(null)", name_);
src_as = src->getRcComponent();
dst_as = dst->getRcComponent();
current = src_as;
while (current != NULL) {
xbt_dynar_push(path_src, ¤t);
- current = current->p_routingFather;
+ current = current->father_;
}
path_dst = xbt_dynar_new(sizeof(As*), NULL);
current = dst_as;
while (current != NULL) {
xbt_dynar_push(path_dst, ¤t);
- current = current->p_routingFather;
+ current = current->father_;
}
/* (3) find the common father */
if (i <= max_index_src && max <= max_index_dst) {
char *route_name = bprintf("%s#%s",
(*(As **)
- (xbt_dynar_get_ptr(path_src, i)))->p_name,
+ (xbt_dynar_get_ptr(path_src, i)))->name_,
(*(As **)
- (xbt_dynar_get_ptr(path_dst, max)))->p_name);
+ (xbt_dynar_get_ptr(path_dst, max)))->name_);
e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
xbt_free(route_name);
}
if (max <= max_index_src && i <= max_index_dst) {
char *route_name = bprintf("%s#%s",
(*(As **)
- (xbt_dynar_get_ptr(path_src, max)))->p_name,
+ (xbt_dynar_get_ptr(path_src, max)))->name_,
(*(As **)
- (xbt_dynar_get_ptr(path_dst, i)))->p_name);
+ (xbt_dynar_get_ptr(path_dst, i)))->name_);
e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
xbt_free(route_name);
}
if (max <= max_index_src && max <= max_index_dst) {
char *route_name = bprintf("%s#%s",
(*(As **)
- (xbt_dynar_get_ptr(path_src, max)))->p_name,
+ (xbt_dynar_get_ptr(path_src, max)))->name_,
(*(As **)
- (xbt_dynar_get_ptr(path_dst, max)))->p_name);
+ (xbt_dynar_get_ptr(path_dst, max)))->name_);
e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
xbt_free(route_name);
}
xbt_die("Ask for route \"from\"(%s) or \"to\"(%s) no found at AS \"%s\"",
src ? src->getName() : "(null)",
dst ? dst->getName() : "(null)",
- p_name);
+ name_);
As *src_as = src->getRcComponent();
As *dst_as = dst->getRcComponent();
if (src_as != dst_as)
xbt_die("The src(%s in %s) and dst(%s in %s) are in differents AS",
- src->getName(), src_as->p_name,
- dst->getName(), dst_as->p_name);
+ src->getName(), src_as->name_,
+ dst->getName(), dst_as->name_);
if (this != dst_as)
xbt_die
("The routing component of src'%s' and dst'%s' is not the same as the network elements belong (%s?=%s?=%s)",
src->getName(),
dst->getName(),
- src_as->p_name,
- dst_as->p_name,
- p_name);
+ src_as->name_,
+ dst_as->name_,
+ name_);
}
}