Loading...
Searching...
No Matches
BinaryNinja::CoreSimilarityProvider Class Reference

Public Member Functions

 CoreSimilarityProvider (BNSimilarityProvider *provider)
bool VisitNode (SimilaritySessionNode &node, SimilarityProviderResults &results, SimilaritySessionCompletion &completion) override
 Visits a node and writes results for it.
bool VisitNodeEdge (SimilaritySessionNode &from, SimilaritySessionNode &to, SimilarityProviderResults &results, SimilaritySessionCompletion &completion) override
 Visits an edge after both endpoint nodes have been visited and writes results for the edge.
std::optional< std::string > GetName (SimilaritySessionNode &node, SimilarityEntityId entity, SimilarityResultId result) override
 Returns the display name for a result, if available.
BNSimilarityApplyStatus Apply (SimilaritySessionNode &node, SimilarityEntityId entity, SimilarityResultId result) override
 Applies a result.
void Render (SimilaritySessionNode &node, SimilarityEntityId entity, SimilarityRenderContext &context, SimilarityResultId result) override
 Adds views for a result to `context`.
void VisitNode (SimilaritySessionNode &node, SimilaritySessionCompletion &completion)
 Performs a complete node visit.
void VisitNodeEdge (SimilaritySessionNode &from, SimilaritySessionNode &to, SimilaritySessionCompletion &completion)
 Performs a complete edge visit.
Public Member Functions inherited from BinaryNinja::SimilarityProvider
 SimilarityProvider (SimilarityProviderType *type)
 SimilarityProvider (BNSimilarityProvider *provider)
Ref< SimilarityProviderTypeGetType () const
SimilarityProviderId GetId () const
virtual bool UpdateSettings (Settings &)
 Replaces this provider's settings only if they are valid.
void VisitNode (SimilaritySessionNode &node, SimilaritySessionCompletion &completion)
 Performs a complete node visit.
void VisitNodeEdge (SimilaritySessionNode &from, SimilaritySessionNode &to, SimilaritySessionCompletion &completion)
 Performs a complete edge visit.
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNSimilarityProvider, BNNewSimilarityProviderReference, BNFreeSimilarityProvider >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNSimilarityProviderGetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Additional Inherited Members

Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNSimilarityProvider, BNNewSimilarityProviderReference, BNFreeSimilarityProvider >
std::atomic< int > m_refs
bool m_registeredRef
BNSimilarityProviderm_object

Constructor & Destructor Documentation

◆ CoreSimilarityProvider()

CoreSimilarityProvider::CoreSimilarityProvider ( BNSimilarityProvider * provider)

Member Function Documentation

◆ VisitNode() [1/2]

bool CoreSimilarityProvider::VisitNode ( SimilaritySessionNode & ,
SimilarityProviderResults & ,
SimilaritySessionCompletion &  )
overridevirtual

Visits a node and writes results for it.

Return `false` to discard the visit.

Reimplemented from BinaryNinja::SimilarityProvider.

◆ VisitNodeEdge() [1/2]

bool CoreSimilarityProvider::VisitNodeEdge ( SimilaritySessionNode & ,
SimilaritySessionNode & ,
SimilarityProviderResults & ,
SimilaritySessionCompletion &  )
overridevirtual

Visits an edge after both endpoint nodes have been visited and writes results for the edge.

Return `false` to discard the visit.

Reimplemented from BinaryNinja::SimilarityProvider.

◆ GetName()

std::optional< std::string > CoreSimilarityProvider::GetName ( SimilaritySessionNode & node,
SimilarityEntityId entity,
SimilarityResultId result )
overridevirtual

Returns the display name for a result, if available.

Implements BinaryNinja::SimilarityProvider.

◆ Apply()

BNSimilarityApplyStatus CoreSimilarityProvider::Apply ( SimilaritySessionNode & node,
SimilarityEntityId entity,
SimilarityResultId result )
overridevirtual

Applies a result.

The default implementation transfers metadata from the result target; overrides can call it before adding provider-specific metadata.

Reimplemented from BinaryNinja::SimilarityProvider.

◆ Render()

void CoreSimilarityProvider::Render ( SimilaritySessionNode & node,
SimilarityEntityId entity,
SimilarityRenderContext & context,
SimilarityResultId result )
overridevirtual

Adds views for a result to `context`.

Implements BinaryNinja::SimilarityProvider.

◆ VisitNode() [2/2]

Performs a complete node visit.

The core manages the result updates.

◆ VisitNodeEdge() [2/2]

Performs a complete edge visit.

The core manages the result updates.