Пример #1
0
/* Allocates a new node structure */
node_t *
node_create(const node_id_t * node_id)
{
  node_t *node;
  gchar *name;
  guint i;

  g_assert(node_id);
  
  node = g_malloc (sizeof (node_t));
  g_assert(node);

  node->node_id = *node_id;

  name = node_id_str(node_id);
  node->name = g_string_new(name);
  node->numeric_name = g_string_new(name);
  g_free(name);

  for (i = 0 ; i <= STACK_SIZE; ++i)
      node->main_prot[i] = NULL;

  traffic_stats_init(&node->node_stats);

  ++nodes_num;

  if (INFO_ENABLED)
    {
      gchar *msg = node_id_dump(&node->node_id);
      g_my_info(_("New node: %s. Number of nodes %d"),
                msg, nodes_num);
      g_free(msg);
    }
  return node;
}				/* create_node */
Пример #2
0
Файл: gvc.c Проект: lucemia/r3
void r3_tree_build_ag_nodes(Agraph_t * g, Agnode_t * ag_parent_node, node * n, int node_cnt) {
    edge * e;
    Agnode_t *agn_child;
    Agedge_t *agn_edge;

    for ( int i = 0 ; i < n->edge_len ; i++ ) {
        e = n->edges[i];

        node_cnt++;
        agn_child = agnode(g, node_id_str(node_cnt) , 1);
        agn_edge = agedge(g, ag_parent_node, agn_child, 0, 1);
        agsafeset(agn_edge, "label", e->pattern, "");
        if (e->child && e->child->endpoint) {
            agsafeset(agn_child, "shape", "doublecircle", "");
        }
        r3_tree_build_ag_nodes(g, agn_child, e->child, node_cnt);
    }
}