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< SimilarityProviderType > GetType () 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 ()
BNSimilarityProvider * GetObject () 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
BNSimilarityProvider * m_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.