libabigail
Public Member Functions | Public Attributes | List of all members
class_or_union::priv Struct Reference

Public Member Functions

 priv (class_or_union::data_members &data_mbrs, class_or_union::member_functions &mbr_fns)
 
bool comparison_started (const class_or_union &first, const class_or_union &second) const
 Test if a pair of class_or_union is being currently compared. More...
 
bool comparison_started (const class_or_union *first, const class_or_union *second) const
 Test if a pair of class_or_union is being currently compared. More...
 
void mark_as_being_compared (const class_or_union &first, const class_or_union &second) const
 Mark a pair of classes or unions as being currently compared using the class_or_union== operator. More...
 
void mark_as_being_compared (const class_or_union *first, const class_or_union *second) const
 Mark a pair of classes or unions as being currently compared using the class_or_union== operator. More...
 
void mark_as_being_compared (const class_or_union_sptr &first, const class_or_union_sptr &second) const
 Mark a pair of classes or unions as being currently compared using the class_or_union== operator. More...
 
void unmark_as_being_compared (const class_or_union &first, const class_or_union &second) const
 If a pair of class_or_union has been previously marked as being compared – via an invocation of mark_as_being_compared() this method unmarks it. Otherwise is has no effect. More...
 
void unmark_as_being_compared (const class_or_union *first, const class_or_union *second) const
 If a pair of class_or_union has been previously marked as being compared – via an invocation of mark_as_being_compared() this method unmarks it. Otherwise is has no effect. More...
 

Public Attributes

data_members data_members_
 
string_mem_fn_sptr_map_type mem_fns_map_
 
member_class_templates member_class_templates_
 
member_function_templates member_function_templates_
 
member_functions member_functions_
 
typedef_decl_wptr naming_typedef_
 
data_members non_static_data_members_
 
string_mem_fn_ptr_map_type signature_2_mem_fn_map_
 

Detailed Description

Definition at line 1358 of file abg-ir-priv.h.

Member Function Documentation

◆ comparison_started() [1/2]

bool comparison_started ( const class_or_union first,
const class_or_union second 
) const
inline

Test if a pair of class_or_union is being currently compared.

Parameters
firstthe first class or union (of the pair) to test for.
secondthe second class or union (of the pair) to test for.
Returns
true if the pair {first, second} is being compared, false otherwise.

Definition at line 1505 of file abg-ir-priv.h.

◆ comparison_started() [2/2]

bool comparison_started ( const class_or_union first,
const class_or_union second 
) const
inline

Test if a pair of class_or_union is being currently compared.

Parameters
firstthe first class or union (of the pair) to test for.
secondthe second class or union (of the pair) to test for.
Returns
true if the pair {first, second} is being compared, false otherwise.

Definition at line 1525 of file abg-ir-priv.h.

◆ mark_as_being_compared() [1/3]

void mark_as_being_compared ( const class_or_union first,
const class_or_union second 
) const
inline

Mark a pair of classes or unions as being currently compared using the class_or_union== operator.

Note that this marking business is to avoid infinite loop when comparing a pair of classes or unions. If via the comparison of a data member or a member function a recursive re-comparison of the class or union is attempted, the marking process helps to detect that infinite loop possibility and avoid it.

Parameters
firstthe class or union (of the pair) to mark as being currently compared.
secondthe second class or union (of the pair) to mark as being currently compared.

Definition at line 1402 of file abg-ir-priv.h.

◆ mark_as_being_compared() [2/3]

void mark_as_being_compared ( const class_or_union first,
const class_or_union second 
) const
inline

Mark a pair of classes or unions as being currently compared using the class_or_union== operator.

Note that this marking business is to avoid infinite loop when comparing a pair of classes or unions. If via the comparison of a data member or a member function a recursive re-comparison of the class or union is attempted, the marking process helps to detect that infinite loop possibility and avoid it.

Parameters
firstthe class or union (of the pair) to mark as being currently compared.
secondthe second class or union (of the pair) to mark as being currently compared.

Definition at line 1426 of file abg-ir-priv.h.

◆ mark_as_being_compared() [3/3]

void mark_as_being_compared ( const class_or_union_sptr &  first,
const class_or_union_sptr &  second 
) const
inline

Mark a pair of classes or unions as being currently compared using the class_or_union== operator.

Note that this marking business is to avoid infinite loop when comparing a pair of classes or unions. If via the comparison of a data member or a member function a recursive re-comparison of the class or union is attempted, the marking process helps to detect that infinite loop possibility and avoid it.

Parameters
firstthe class or union (of the pair) to mark as being currently compared.
secondthe second class or union (of the pair) to mark as being currently compared.

Definition at line 1445 of file abg-ir-priv.h.

◆ unmark_as_being_compared() [1/2]

void unmark_as_being_compared ( const class_or_union first,
const class_or_union second 
) const
inline

If a pair of class_or_union has been previously marked as being compared – via an invocation of mark_as_being_compared() this method unmarks it. Otherwise is has no effect.

This method is not thread safe because it uses the static data member classes_being_compared_. If you wish to use it in a multi-threaded environment you should probably protect the access to that static data member with a mutex or somesuch.

Parameters
firstthe first instance of class_or_union (of the pair) to unmark.
secondthe second instance of class_or_union (of the pair) to unmark.

Definition at line 1464 of file abg-ir-priv.h.

◆ unmark_as_being_compared() [2/2]

void unmark_as_being_compared ( const class_or_union first,
const class_or_union second 
) const
inline

If a pair of class_or_union has been previously marked as being compared – via an invocation of mark_as_being_compared() this method unmarks it. Otherwise is has no effect.

This method is not thread safe because it uses the static data member classes_being_compared_. If you wish to use it in a multi-threaded environment you should probably protect the access to that static data member with a mutex or somesuch.

Parameters
firstthe first instance of class_or_union (of the pair) to unmark.
secondthe second instance of class_or_union (of the pair) to unmark.

Definition at line 1488 of file abg-ir-priv.h.


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