Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add xbt_graph_node_get_outedges() [Silas De Munck]
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 29 Jun 2009 21:11:32 +0000 (21:11 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 29 Jun 2009 21:11:32 +0000 (21:11 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6392 48e7efb5-ca39-0410-a469-dd3cf9ba447f

ChangeLog
include/xbt/graph.h
src/xbt/graph.c

index 0b4b561..668673e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@ SimGrid (3.3.2-svn) unstable; urgency=low
 
  XBT:
   * Add xbt_set_get_by_name_or_null() [Silas De Munck]
 
  XBT:
   * Add xbt_set_get_by_name_or_null() [Silas De Munck]
+  * Add xbt_graph_node_get_outedges() [Silas De Munck]
 
  -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 
  -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
index 27ee96d..4db15fc 100644 (file)
@@ -1,6 +1,6 @@
 /*     $Id$     */
 
 /*     $Id$     */
 
-/* Copyright (c) 2006 Darina Dimitrova, Arnaud Legrand. 
+/* Copyright (c) 2006 Darina Dimitrova, Arnaud Legrand.
    All rights reserved.                  */
 
 /* This program is free software; you can redistribute it and/or modify it
    All rights reserved.                  */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -14,7 +14,7 @@ SG_BEGIN_DECL()
 
   /** @addtogroup XBT_graph
    *  @brief A graph data type with several interesting algorithms
 
   /** @addtogroup XBT_graph
    *  @brief A graph data type with several interesting algorithms
-   * 
+   *
    * @{
    */
      typedef struct xbt_node *xbt_node_t;
    * @{
    */
      typedef struct xbt_node *xbt_node_t;
@@ -53,6 +53,7 @@ XBT_PUBLIC(int) __xbt_find_in_dynar(xbt_dynar_t dynar, void *p);
 
 XBT_PUBLIC(xbt_dynar_t) xbt_graph_get_nodes(xbt_graph_t g);
 XBT_PUBLIC(xbt_dynar_t) xbt_graph_get_edges(xbt_graph_t g);
 
 XBT_PUBLIC(xbt_dynar_t) xbt_graph_get_nodes(xbt_graph_t g);
 XBT_PUBLIC(xbt_dynar_t) xbt_graph_get_edges(xbt_graph_t g);
+XBT_PUBLIC(xbt_dynar_t) xbt_graph_node_get_outedges(xbt_node_t n);
 XBT_PUBLIC(xbt_node_t) xbt_graph_edge_get_source(xbt_edge_t e);
 XBT_PUBLIC(xbt_node_t) xbt_graph_edge_get_target(xbt_edge_t e);
 XBT_PUBLIC(xbt_graph_t) xbt_graph_read(const char *filename, void
 XBT_PUBLIC(xbt_node_t) xbt_graph_edge_get_source(xbt_edge_t e);
 XBT_PUBLIC(xbt_node_t) xbt_graph_edge_get_target(xbt_edge_t e);
 XBT_PUBLIC(xbt_graph_t) xbt_graph_read(const char *filename, void
@@ -85,8 +86,8 @@ XBT_PUBLIC(xbt_node_t *) xbt_graph_shortest_paths(xbt_graph_t g);
 
 
 /** @brief transforms the network structure of a directed acyclic graph given into a linear structure
 
 
 /** @brief transforms the network structure of a directed acyclic graph given into a linear structure
-    @return: an array containing the nodes of the graph sorted in order reverse to the path of exploration 
-            if a cycle is detected an exception is raised  
+    @return: an array containing the nodes of the graph sorted in order reverse to the path of exploration
+            if a cycle is detected an exception is raised
   */
 
 XBT_PUBLIC(xbt_node_t *) xbt_graph_topo_sort(xbt_graph_t g);
   */
 
 XBT_PUBLIC(xbt_node_t *) xbt_graph_topo_sort(xbt_graph_t g);
index 670584b..ad5a67f 100644 (file)
@@ -262,7 +262,6 @@ xbt_dynar_t xbt_graph_get_edges(xbt_graph_t g)
 /** @brief Retrieve the node at the source of the given edge */
 xbt_node_t xbt_graph_edge_get_source(xbt_edge_t e)
 {
 /** @brief Retrieve the node at the source of the given edge */
 xbt_node_t xbt_graph_edge_get_source(xbt_edge_t e)
 {
-
   return e->src;
 }
 
   return e->src;
 }
 
@@ -272,6 +271,11 @@ xbt_node_t xbt_graph_edge_get_target(xbt_edge_t e)
   return e->dst;
 }
 
   return e->dst;
 }
 
+/** @brief Retrieve the outgoing edges of the given node */
+xbt_dynar_t xbt_graph_node_get_outedges(xbt_node_t n)
+{
+  return n->out;
+}
 
 /** @brief Set the weight of the given edge */
 void xbt_graph_edge_set_length(xbt_edge_t e, double length)
 
 /** @brief Set the weight of the given edge */
 void xbt_graph_edge_set_length(xbt_edge_t e, double length)