Public Attributes | Public Member Functions | Public Types | Friends | List of all members
mutable_graph_t Class Reference

Detailed Description

Base class used by graphs in IDA.

Inherits abstract_graph_t.

Public Attributes

uval_t gid
 graph id - unique for the database for flowcharts it is equal to the function start_ea
intseq_t belongs
 the subgraph the node belongs to INT_MAX means that the node doesn't exist sign bit means collapsed node
bytevec_t node_flags
 node flags
array_of_intseq_t org_succs
array_of_intseq_t org_preds
array_of_intseq_t succs
array_of_intseq_t preds
node_layout_t nodes
edge_infos_wrapper_t edges
- Public Attributes inherited from abstract_graph_t
qstring title
 graph title
bool rect_edges_made
 have create rectangular edges?
layout_type_t current_layout
 see Proximity view layouts
point_t circle_center
 for layout_circle
int circle_radius
 for layout_circle
 user-defined callback
void * callback_ud
 user data for callback

Public Member Functions

idaapi mutable_graph_t (uval_t id)
idaapi mutable_graph_t (const abstract_graph_t &g, uval_t id)
 DEFINE_VIRTUAL_DTOR (mutable_graph_t)
int idaapi size (void) const
int idaapi node_qty (void) const
void idaapi clear (void)
bool idaapi empty (void) const
bool idaapi exists (int node) const
int idaapi get_node_representative (int node)
int idaapi get_node_group (int node) const
void idaapi set_node_group (int node, int group)
bool idaapi is_deleted_node (int node) const
void idaapi set_deleted_node (int node)
bool idaapi is_subgraph_node (int node) const
bool idaapi is_dot_node (int node) const
bool idaapi is_group_node (int node) const
bool idaapi is_displayable_node (int node) const
bool idaapi is_simple_node (int node) const
bool idaapi is_collapsed_node (int node) const
bool idaapi is_uncollapsed_node (int node) const
bool idaapi is_visible_node (int node) const
bool idaapi groups_are_present (void) const
int idaapi get_first_subgraph_node (int group) const
int idaapi get_next_subgraph_node (int group, int current) const
void idaapi insert_visible_nodes (intvec_t &nodes, int group) const
void idaapi insert_simple_nodes (intvec_t &nodes, int group) const
bool idaapi check_new_group (const intvec_t &nodes, intvec_t &refined)
int idaapi create_group (const intvec_t &nodes)
bool idaapi delete_group (int group)
bool idaapi change_group_visibility (int group, bool expand)
bool idaapi change_visibility (const intvec_t &nodes, bool expand)
void idaapi fix_collapsed_group_edges (void)
int idaapi nsucc (int b) const
int idaapi npred (int b) const
int idaapi succ (int b, int i) const
int idaapi pred (int b, int i) const
const intseq_t &idaapi succset (int b) const
const intseq_t &idaapi predset (int b) const
void idaapi reset (void)
virtual bool idaapi redo_layout (void) GCC_PUREVIRT
virtual void idaapi resize (int n) GCC_PUREVIRT
virtual int idaapi add_node (const rect_t *r) GCC_PUREVIRT
virtual ssize_t idaapi del_node (int n) GCC_PUREVIRT
virtual bool idaapi add_edge (int i, int j, const edge_info_t *ei) GCC_PUREVIRT
virtual bool idaapi del_edge (int i, int j) GCC_PUREVIRT
virtual bool idaapi replace_edge (int i, int j, int x, int y) GCC_PUREVIRT
virtual bool idaapi refresh (void) GCC_PUREVIRT
virtual mutable_graph_t *idaapi clone (void) const GCC_PUREVIRT
const rect_t &idaapi nrect (int n) const
rect_t &idaapi nrect (int n)
virtual edge_info_t *idaapi get_edge (edge_t e) GCC_PUREVIRT
virtual bool idaapi set_nrect (int n, const rect_t &r) GCC_PUREVIRT
virtual bool idaapi set_edge (edge_t e, const edge_info_t *ei) GCC_PUREVIRT
bool idaapi create_digraph_layout (void)
void idaapi del_custom_layout (void)
bool idaapi get_custom_layout (void)
void idaapi set_custom_layout (void) const
bool idaapi get_graph_groups (void)
void idaapi set_graph_groups (void) const
virtual ea_t idaapi calc_group_ea (const intvec_t &)
point_t idaapi calc_center_of (const intvec_t &nodes) const
void idaapi move_to_same_place (const intvec_t &collapsing_nodes, point_t p)
void idaapi move_grouped_nodes (const intvec_t &groups, const mutable_graph_t *ng)
virtual bool idaapi is_user_graph ()
- Public Member Functions inherited from abstract_graph_t
void idaapi clear (void)
void idaapi dump_graph (const char *header) const
bool idaapi calc_bounds (rect_t *r)
bool idaapi calc_fitting_params (const rect_t &area, graph_location_info_t *gli, double max_zoom)
int idaapi for_all_nodes_edges (graph_visitor_t &nev, bool visit_nodes=true)
const edge_info_t *idaapi get_edge_ports (edge_t e, point_t &s, point_t &d) const
void idaapi add_node_edges (edgevec_t &dlist, int node)
const rect_t &idaapi nrect (int n) const
const edge_info_t *idaapi get_edge (edge_t e) const
bool idaapi create_tree_layout (void)
bool idaapi create_circle_layout (point_t p, int radius)
bool idaapi create_polar_tree_layout (point_t p, int radius)
bool idaapi create_radial_tree_layout (point_t p, int radius)
bool idaapi create_orthogonal_layout (void)
void set_callback (hook_cb_t *_callback, void *_ud)
ssize_t vgrcall (int code, va_list va)
ssize_t grcall (int code,...)
- Public Member Functions inherited from gdl_graph_t
virtual char *idaapi get_node_label (char *buf, int, int) const
virtual void idaapi print_graph_attributes (FILE *) const
virtual bool idaapi print_node (FILE *, int) const
virtual bool idaapi print_edge (FILE *, int, int) const
virtual void idaapi print_node_attributes (FILE *, int) const
virtual int idaapi entry (void) const
virtual int idaapi exit (void) const
virtual bgcolor_t idaapi get_node_color (int) const
virtual bgcolor_t idaapi get_edge_color (int, int) const
void idaapi gen_gdl (FILE *fp) const
void idaapi gen_gdl (const char *file) const
size_t idaapi nedge (int node, bool ispred) const
int idaapi edge (int node, int i, bool ispred) const
int idaapi front (void)
node_iterator idaapi begin (void) const
node_iterator idaapi end (void) const
bool idaapi path_exists (int m, int n) const
void idaapi gen_dot (FILE *fp) const
void idaapi gen_dot (const char *file) const

Public Types

typedef qvector< rect_tnode_layout_t


ssize_t idaapi graph_dispatcher (void *, int code, va_list va)

Additional Inherited Members

- Protected Member Functions inherited from abstract_graph_t
void idaapi get_connected_components (intseq_t &entries) const
 Returns one entry point for each connected component.
int idaapi calc_longest_pathes (const node_set_t &entries, intseq_t &tops, int row_height) const
 Find longest paths from the entries. More...
void idaapi move_nodes_down (intseq_t &tops, const node_ordering_t &post, int first_reverser_node, int row_height) const
 Move entry nodes down as much as possible.
void idaapi create_graph_row_info (const intseq_t &tops, graph_row_info_t &gri, int graph_height) const
 Create graph row info from 'tops'.
void idaapi calc_row_heights (graph_row_info_t &gri) const
 Calculate height of each row.
void idaapi minimize_crossings (graph_row_info_t &gri) const
 Minimize crossings.
void idaapi set_x_coords (const graph_row_info_t &gri, const node_set_t &selfrefs, int first_added_node)
 Calculate x coords of all nodes.
void idaapi gather_edge_segments (const graph_row_info_t &gri, edge_segs_vec_t &ges) const
 Gather information about all edge segments.
void idaapi make_rect_edges (graph_row_info_t &gri, const edge_segs_vec_t &ges, int first_reverser_node)
 Make all edges rectangular.
void idaapi assign_edge_ports (const graph_row_info_t &gri, const node_set_t &selfrefs)
 Assign ports to edges.
void idaapi recalc_edge_widths (const edgeset_t &back_edges, const edge_infos_t &self_edges)
 Recalculate width of all edges.
void idaapi clear_layout_info (void)
 Clear layout information in the graph.
void idaapi depth_first (node_ordering_t *pre, node_ordering_t *post, edge_typer_t *et) const
void idaapi create_spanning_tree (edge_typer_t *et, node_set_t *entries, edgeset_t *back_edges, node_ordering_t *pre, node_ordering_t *post) const
void idaapi tree_layout (edge_typer_t &et, const node_set_t &entries)
bool idaapi path_back (const array_of_node_set_t &domin, int m, int n) const
 Is there a path from M to N which terminates with a back edge to N?
bool idaapi path_back (edge_typer_t &et, int m, int n) const
int idaapi visit_nodes (int node, graph_node_visitor_t &gv) const
 Visit nodes starting from 'node', depth first.
int idaapi visit_paths (int node, graph_path_visitor_t &gv) const
 Visit all possible paths starting from 'node'. More...

The documentation for this class was generated from the following file: