libabigail

The abstraction of a diff between two arrays. More...
#include <abgcomparison.h>
Classes  
struct  priv 
Public Member Functions  
virtual void  chain_into_hierarchy () 
Populate the vector of children node of the diff base type subobject of this instance of array_diff. More...  
const diff_sptr &  element_type_diff () const 
Getter for the diff between the two types of array elements. More...  
void  element_type_diff (diff_sptr) 
Setter for the diff between the two array element types. More...  
const array_type_def_sptr  first_array () const 
Getter for the first array of the diff. More...  
virtual const string &  get_pretty_representation () const 
virtual bool  has_changes () const 
Return true iff the current diff node carries a change. More...  
virtual enum change_kind  has_local_changes () const 
virtual void  report (ostream &, const string &indent="") const 
Report the diff in a serialized form. More...  
const array_type_def_sptr  second_array () const 
Getter for the second array of the diff. More...  
Public Member Functions inherited from diff  
diff_category  add_to_category (diff_category c) 
Adds the current diff tree node to an additional set of categories. Note that the categories include thoses inherited from the children nodes of this diff node. More...  
void  add_to_local_and_inherited_categories (diff_category c) 
Adds the current diff tree node to the categories resulting from the local and inherited changes of the current diff node. More...  
diff_category  add_to_local_category (diff_category c) 
Adds the current diff tree node to the categories resulting from the local changes of the current diff node. More...  
void  append_child_node (diff_sptr) 
Add a new child node to the vector of children nodes for the current diff node. More...  
const vector< diff * > &  children_nodes () const 
Getter for the children nodes of the current diff node. More...  
const diff_context_sptr  context () const 
Getter of the context of the current diff. More...  
void  context (diff_context_sptr c) 
Setter of the context of the current diff. More...  
bool  currently_reporting () const 
Tests if we are currently in the middle of emitting a report for this diff. More...  
void  currently_reporting (bool f) const 
Sets a flag saying if we are currently in the middle of emitting a report for this diff. More...  
type_or_decl_base_sptr  first_subject () const 
Getter of the first subject of the diff. More...  
diff *  get_canonical_diff () const 
Getter for the canonical diff of the current instance of diff. More...  
diff_category  get_category () const 
Getter for the category of the current diff tree node. More...  
diff_category  get_class_of_equiv_category () const 
Getter of the category of the class of equivalence of the current diff tree node. More...  
diff_category  get_local_category () const 
Getter for the local category of the current diff tree node. More...  
bool  has_descendant_allowed_by_specific_negated_suppression () const 
Test if the current diff node has a descendant node which is specifically allowed by a negated suppression specification. More...  
bool  has_local_changes_to_be_reported () const 
Test if this diff tree node should be reported when considering the categories that were *NOT* inherited from its children nodes. More...  
bool  has_parent_allowed_by_specific_negated_suppression () const 
Test if the current diff node has a parent node which is specifically allowed by a negated suppression specification. More...  
bool  is_allowed_by_specific_negated_suppression () const 
Test if this diff node is allowed (prevented from being suppressed) by at least one negated suppression specification. More...  
bool  is_filtered_out () const 
Test if this diff tree node is to be filtered out for reporting purposes. More...  
bool  is_filtered_out_without_looking_at_allowed_changes () const 
Test if this diff tree node is to be filtered out for reporting purposes, but without considering the categories that can /force/ the node to be unfiltered. More...  
bool  is_filtered_out_wrt_non_inherited_categories () const 
Test if this diff tree node is to be filtered out for reporting purposes, but by considering only the categories that were *NOT* inherited from its children nodes. More...  
bool  is_suppressed () const 
Test if the current diff node has been suppressed by a userprovided suppression specification. More...  
bool  is_suppressed (bool &is_private_type) const 
Test if the current diff node has been suppressed by a userprovided suppression specification or by an autogenerated "private type" suppression specification. More...  
bool  is_traversing () const 
Tell if a given node is being traversed or not. More...  
const diff *  parent_node () const 
Getter for the parent node of the current diff node. More...  
diff_category  remove_from_category (diff_category c) 
Remove the current diff tree node from an a existing sef of categories. The categories include those inherited from the children nodes of the current diff node. More...  
diff_category  remove_from_local_category (diff_category c) 
Remove the current diff tree node from the categories resulting from the local changes. More...  
bool  reported_once () const 
Tests if a report has already been emitted for the current diff. More...  
void  reported_once (bool f) const 
Sets a flag saying if a report has already been emitted for the current diff. More...  
type_or_decl_base_sptr  second_subject () const 
Getter of the second subject of the diff. More...  
void  set_category (diff_category c) 
Set the category of the current diff node. This category includes the categories inherited from the children nodes of the current diff node. More...  
void  set_local_category (diff_category c) 
Set the local category of the current diff node. More...  
bool  to_be_reported () const 
Test if this diff tree node should be reported. More...  
virtual bool  traverse (diff_node_visitor &v) 
The generic traversing code that walks a given diff subtree. More...  
Public Member Functions inherited from traversable_base  
virtual  ~traversable_base () 
Destructor of the traversable_base type. More...  
Protected Member Functions  
array_diff (const array_type_def_sptr first, const array_type_def_sptr second, diff_sptr element_type_diff, diff_context_sptr ctxt=diff_context_sptr())  
Constructor for array_diff. More...  
Protected Member Functions inherited from type_diff_base  
type_diff_base (type_base_sptr first_subject, type_base_sptr second_subject, diff_context_sptr ctxt)  
Protected Member Functions inherited from diff  
diff (type_or_decl_base_sptr first_subject, type_or_decl_base_sptr second_subject)  
Constructor for the diff type. More...  
diff (type_or_decl_base_sptr first_subject, type_or_decl_base_sptr second_subject, diff_context_sptr ctxt)  
Constructor for the diff type. More...  
void  begin_traversing () 
Flag a given diff node as being traversed. More...  
bool  do_log () const 
Test if logging was requested. More...  
void  do_log (bool) 
Request logging (or not) More...  
void  end_traversing () 
Flag a given diff node as not being traversed anymore. More...  
virtual void  finish_diff_type () 
Finish the insertion of a diff tree node into the diff graph. More...  
void  set_canonical_diff (diff *) 
Setter for the canonical diff of the current instance of diff. More...  
Protected Member Functions inherited from traversable_base  
traversable_base ()  
Default constructor of the traversable_base type. More...  
bool  visiting () const 
This should returns false before and after the node has been visiting. During the visiting of the node (and of its children) this should return true. More...  
void  visiting (bool f) 
The traversing code should be responsible of calling this, not the user code. More...  
Friends  
array_diff_sptr  compute_diff (array_type_def_sptr first, array_type_def_sptr second, diff_context_sptr ctxt) 
Compute the diff between two arrays. More...  
Additional Inherited Members  
Protected Attributes inherited from diff  
std::unique_ptr< priv >  priv_ 
The abstraction of a diff between two arrays.
Definition at line 1480 of file abgcomparison.h.

protected 
Constructor for array_diff.
first  the first array_type of the diff. 
second  the second array_type of the diff. 
element_type_diff  the diff between the two array element types. 
ctxt  the diff context to use. 
Definition at line 3886 of file abgcomparison.cc.

virtual 
Populate the vector of children node of the diff base type subobject of this instance of array_diff.
The children node can then later be retrieved using diff::children_node().
Reimplemented from diff.
Definition at line 3873 of file abgcomparison.cc.
const diff_sptr & element_type_diff  (  )  const 
Getter for the diff between the two types of array elements.
Definition at line 3912 of file abgcomparison.cc.
void element_type_diff  (  diff_sptr  d  ) 
Setter for the diff between the two array element types.
d  the new diff betweend the two array element types. 
Definition at line 3919 of file abgcomparison.cc.
const array_type_def_sptr first_array  (  )  const 
Getter for the first array of the diff.
Definition at line 3898 of file abgcomparison.cc.

virtual 
Reimplemented from diff.
Definition at line 3925 of file abgcomparison.cc.

virtual 
Return true iff the current diff node carries a change.
Implements diff.
Definition at line 3944 of file abgcomparison.cc.

virtual 
Implements type_diff_base.
Definition at line 3944 of file abgcomparison.cc.

virtual 
Report the diff in a serialized form.
out  the output stream to serialize the dif to. 
indent  the string to use for indenting the report. 
Implements diff.
Definition at line 3987 of file abgcomparison.cc.
const array_type_def_sptr second_array  (  )  const 
Getter for the second array of the diff.
Definition at line 3905 of file abgcomparison.cc.

friend 
Compute the diff between two arrays.
Note that the two types must have been created in the same environment, otherwise, this function aborts.
first  the first array to consider for the diff. 
second  the second array to consider for the diff. 
ctxt  the diff context to use. 
Definition at line 4003 of file abgcomparison.cc.