13 #ifndef __ABG_REPORTER_H__
14 #define __ABG_REPORTER_H__
23 using std::shared_ptr;
31 class qualified_type_diff;
38 class class_or_union_diff;
43 class function_type_diff;
44 class function_decl_diff;
46 class translation_unit_diff;
62 virtual bool diff_has_net_changes(
const corpus_diff *d)
const = 0;
66 const std::string& indent =
"")
const = 0;
69 report(
const enum_diff& d, std::ostream& out,
70 const std::string& indent =
"")
const = 0;
74 const std::string& indent =
"")
const = 0;
78 const std::string& indent =
"")
const = 0;
82 const std::string& indent =
"")
const = 0;
86 const std::string& indent =
"")
const = 0;
90 const std::string& indent =
"")
const = 0;
94 const std::string& indent =
"")
const = 0;
98 const std::string& indent =
"")
const = 0;
101 report(
const base_diff& d, std::ostream& out,
102 const std::string& indent =
"")
const = 0;
106 const std::string& indent =
"")
const = 0;
109 report(
const class_diff& d, std::ostream& out,
110 const std::string& indent =
"")
const = 0;
113 report(
const union_diff& d, std::ostream& out,
114 const std::string& indent =
"")
const = 0;
117 report(
const scope_diff& d, std::ostream& out,
118 const std::string& indent =
"")
const = 0;
122 const std::string& indent =
"")
const = 0;
126 const std::string& indent =
"")
const = 0;
130 const std::string& indent =
"")
const = 0;
133 report(
const var_diff& d, std::ostream& out,
134 const std::string& indent =
"")
const = 0;
138 const std::string& indent =
"")
const = 0;
142 const std::string& indent =
"")
const = 0;
161 const std::string& indent =
"")
const;
164 report(
const enum_diff& d, std::ostream& out,
165 const std::string& indent =
"")
const;
170 const std::string& indent)
const;
174 const std::string& indent =
"")
const;
179 const std::string& indent)
const;
184 const string& indent)
const;
188 const std::string& indent =
"")
const;
192 const std::string& indent =
"")
const;
197 const std::string& indent)
const;
201 const std::string& indent =
"")
const;
205 const std::string& indent =
"")
const;
210 const std::string& indent)
const;
214 const std::string& indent =
"")
const;
218 const std::string& indent =
"")
const;
221 report(
const array_diff& d, std::ostream& out,
222 const std::string& indent =
"")
const;
225 report(
const base_diff& d, std::ostream& out,
226 const std::string& indent =
"")
const;
229 report(
const scope_diff& d, std::ostream& out,
230 const std::string& indent =
"")
const;
234 const std::string& indent =
"")
const;
237 report(
const class_diff& d, std::ostream& out,
238 const std::string& indent =
"")
const;
241 report(
const union_diff& d, std::ostream& out,
242 const std::string& indent =
"")
const;
246 const std::string& indent =
"")
const;
250 const std::string& indent =
"")
const;
253 report(
const var_diff& d, std::ostream& out,
254 const std::string& indent =
"")
const;
258 const std::string& indent =
"")
const;
262 const std::string& indent =
"")
const;
276 const std::string& indent)
const;
280 const std::string& indent =
"")
const;
284 const std::string& indent =
"")
const;
288 const std::string& indent =
"")
const;
292 const std::string& indent =
"")
const;
296 const std::string& indent =
"")
const;
300 const std::string& indent =
"")
const;
304 const std::string& indent =
"")
const;
307 report(
const array_diff& d, std::ostream& out,
308 const std::string& indent =
"")
const;
311 report(
const scope_diff& d, std::ostream& out,
312 const std::string& indent =
"")
const;
316 const std::string& indent =
"")
const;
319 report(
const class_diff& d, std::ostream& out,
320 const std::string& indent =
"")
const;
323 report(
const union_diff& d, std::ostream& out,
324 const std::string& indent =
"")
const;
328 const std::string& indent =
"")
const;
332 const std::string& indent =
"")
const;
335 report(
const var_diff& d, std::ostream& out,
336 const std::string& indent =
"")
const;
340 const std::string& indent =
"")
const;
344 const std::string& indent =
"")
const;
The abstraction of a diff between two arrays.
An abstraction of a diff between two instances of class_decl::base_spec.
This type abstracts changes for a class_decl.
This is the base class of class_diff and union_diff.
An abstraction of a diff between between two abi corpus.
The default, initial, reporter of the libabigail comparison engine.
bool report_local_qualified_type_changes(const qualified_type_diff &d, std::ostream &out, const std::string &indent) const
For a qualified_type_diff node, report the changes that are local.
void report_local_function_type_changes(const function_type_diff &d, std::ostream &out, const std::string &indent) const
For a function_type_diff node, report the local changes carried by the diff node.
void report_underlying_changes_of_qualified_type(const qualified_type_diff &d, ostream &out, const string &indent) const
For a qualified_type_diff node, report the changes of its underlying type.
virtual bool diff_has_net_changes(const corpus_diff *d) const
Test if a given instance of corpus_diff carries changes whose reports are not suppressed by any suppr...
void report_local_reference_type_changes(const reference_diff &d, std::ostream &out, const std::string &indent) const
For a @reference_diff node, report the local changes carried by the diff node.
void report_non_type_typedef_changes(const typedef_diff &d, std::ostream &out, const std::string &indent) const
For a typedef_diff node, report the local changes to the typedef rather the changes to its underlying...
This type contains maps. Each map associates a type name to a diff of that type. Not all kinds of dif...
The abstraction of a change between two ABI artifacts, a.k.a an artifact change.
An abstraction of a diff between entities that are of a different kind (disctinct).
Abstraction of a diff between two enums.
Abstraction of a diff between two function parameters.
Abstraction of a diff between two function_decl.
Abstraction of a diff between two function types.
A reporter that only reports leaf changes.
virtual bool diff_has_net_changes(const corpus_diff *d) const
Test if a given instance of corpus_diff carries changes whose reports are not suppressed by any suppr...
void report_changes_from_diff_maps(const diff_maps &, std::ostream &out, const std::string &indent) const
Report the changes carried by an instance of diff_maps.
virtual bool diff_to_be_reported(const diff *d) const
Test if a diff node is to be reported by the current instance of leaf_reporter.
The abstraction of a diff between two pointers.
Abstraction of a diff between two qualified types.
The abstraction of a diff between two references.
The base class of all the reporting classes.
virtual bool diff_to_be_reported(const diff *d) const
Tests if the diff node is to be reported.
An abstractions of the changes between two scopes.
The abstraction of the diff between two subrange types.
An abstraction of a diff between two translation units.
Abstraction of a diff between two basic type declarations.
Abstraction of a diff between two typedef_decl.
Abstracts a diff between two instances of var_decl.
shared_ptr< reporter_base > reporter_base_sptr
A convenience typedef for a shared pointer to a reporter_base.
shared_ptr< default_reporter > default_reporter_sptr
A convenience typedef for a shared_ptr to a default_reporter.
Toplevel namespace for libabigail.