A graph that controls which binaries are compared and in what order. More...
A graph that controls which binaries are compared and in what order.
The graph cannot contain cycles.
An edge from A to B makes A available as an incoming comparison node while B is processed.
Additional Inherited Members | |
| Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNSimilaritySessionGraph, BNNewSimilaritySessionGraphReference, BNFreeSimilaritySessionGraph > | |
| std::atomic< int > | m_refs |
| bool | m_registeredRef |
| BNSimilaritySessionGraph * | m_object |
| SimilaritySessionGraph::SimilaritySessionGraph | ( | BNSimilaritySessionGraph * | graph | ) |
| void SimilaritySessionGraph::AddNode | ( | Ref< SimilaritySessionNode > | node | ) |
Adds a node, moving it from its previous graph if necessary.
If either graph is running, the node is unchanged.
| void SimilaritySessionGraph::RemoveNode | ( | SimilaritySessionNode & | node | ) |
Removes a node and its incident edges.
Graph mutations are ignored during a run.
| Ref< SimilaritySessionNode > SimilaritySessionGraph::GetNode | ( | SimilaritySessionNodeId | id | ) |
Returns a node, or `nullptr` if `id` is absent.
| std::vector< Ref< SimilaritySessionNode > > SimilaritySessionGraph::GetNodes | ( | ) |
| bool SimilaritySessionGraph::IsValidEdge | ( | SimilaritySessionNode & | from, |
| SimilaritySessionNode & | to ) |
Returns whether an edge joins two graph members without duplicating an edge or creating a cycle.
Returns false during a run.
| bool SimilaritySessionGraph::AddEdge | ( | SimilaritySessionNode & | from, |
| SimilaritySessionNode & | to ) |
Adds an edge.
Returns false if invalid or while the graph is running.
| bool SimilaritySessionGraph::RemoveEdge | ( | SimilaritySessionNode & | from, |
| SimilaritySessionNode & | to ) |
Removes an edge.
Returns false if absent or while the graph is running.
| void SimilaritySessionGraph::AddReceiver | ( | Ref< SimilaritySessionGraphReceiver > | receiver | ) |
| void SimilaritySessionGraph::RemoveReceiver | ( | SimilaritySessionGraphReceiver & | receiver | ) |
| std::vector< Ref< SimilaritySessionGraphReceiver > > SimilaritySessionGraph::GetReceivers | ( | ) |
| std::vector< std::vector< Ref< SimilaritySessionNode > > > SimilaritySessionGraph::GetSchedule | ( | ) |
Returns groups of nodes in processing order.
Nodes in the same group may run concurrently.