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

Public Member Functions

 CoreSimilaritySessionResolver (BNSimilaritySessionResolver *resolver)
void PrepareForNode (SimilaritySession &session, SimilaritySessionNode &node, SimilaritySessionCompletion &completion) override
 Prepares a node before providers run.
void ResolveForNode (SimilaritySession &session, SimilaritySessionNode &node, const std::vector< SimilarityEntityId > &entities, SimilaritySessionCompletion &completion) override
 Resolves provider results after all providers have visited the node.
Public Member Functions inherited from BinaryNinja::SimilaritySessionResolver
 SimilaritySessionResolver (SimilaritySessionResolverType *type, Ref< SimilaritySession > session)
 Creates a resolver for `session`.
 SimilaritySessionResolver (BNSimilaritySessionResolver *resolver)
SimilaritySessionResolverId GetId () const
Ref< SimilaritySessionResolverTypeGetType () const
virtual bool UpdateSettings (Settings &)
 Replaces this resolver's settings only if they are valid.
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNSimilaritySessionResolver, BNNewSimilaritySessionResolverReference, BNFreeSimilaritySessionResolver >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNSimilaritySessionResolverGetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Additional Inherited Members

Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNSimilaritySessionResolver, BNNewSimilaritySessionResolverReference, BNFreeSimilaritySessionResolver >
std::atomic< int > m_refs
bool m_registeredRef
BNSimilaritySessionResolverm_object

Constructor & Destructor Documentation

◆ CoreSimilaritySessionResolver()

CoreSimilaritySessionResolver::CoreSimilaritySessionResolver ( BNSimilaritySessionResolver * resolver)

Member Function Documentation

◆ PrepareForNode()

void CoreSimilaritySessionResolver::PrepareForNode ( SimilaritySession & session,
SimilaritySessionNode & node,
SimilaritySessionCompletion & completion )
overridevirtual

Prepares a node before providers run.

This is useful for large graphs where views may be unavailable, but the resolver needs to change the scheduled entities or add entities itself.

Reimplemented from BinaryNinja::SimilaritySessionResolver.

◆ ResolveForNode()

void CoreSimilaritySessionResolver::ResolveForNode ( SimilaritySession & session,
SimilaritySessionNode & node,
const std::vector< SimilarityEntityId > & entities,
SimilaritySessionCompletion & completion )
overridevirtual

Resolves provider results after all providers have visited the node.

Call SetResolvedResult to select a result. Call AddScheduledEntity to request another provider and resolver round for an entity. Only schedule work for `node`; the session owns scheduling between nodes.

Implements BinaryNinja::SimilaritySessionResolver.