gatb.core-API-0.0.0
|
Interface that allows to mark certain nodes in a graph. Note: It is on the verge of becoming deprecated. More...
#include <Terminator.hpp>
Public Member Functions | |
TerminatorTemplate (const Graph &graph) | |
virtual | ~TerminatorTemplate () |
const Graph & | getGraph () const |
virtual bool | isEnabled () const |
virtual void | mark (Edge &edge)=0 |
virtual bool | is_marked (Edge &edge) const =0 |
virtual void | mark (Node &node)=0 |
virtual bool | is_marked (Node &node) const =0 |
virtual bool | is_marked_branching (Node &node) const =0 |
virtual bool | is_branching (Node &node) const =0 |
virtual void | reset ()=0 |
virtual void | dump ()=0 |
Public Member Functions inherited from SmartPointer | |
void | use () |
void | forget () |
Public Member Functions inherited from ISmartPointer | |
virtual | ~ISmartPointer () |
Additional Inherited Members | |
Protected Member Functions inherited from SmartPointer | |
SmartPointer () | |
virtual | ~SmartPointer () |
Interface that allows to mark certain nodes in a graph. Note: It is on the verge of becoming deprecated.
In short: don't use it. Use the MPHF.
This is a legacy class that was used when the graph did not have a MPHF. I.e. in Minia version 1. Back then, it was not possible to directly tag nodes inside the graph structure. So this Terminator class uses an external data structure to mark some of the nodes (specifically, the branching nodes). It was used during graph traversal for instance.
The Terminator interface provides such a service. It is often used by the Traversal class during its traversing process.
The name Terminator is just related to termination, we needed a way to ensure that we don't traverse the same contig twice, so that the algorithm terminates eventually.
|
inline |
Constructor
[in] | graph | : the graph |
|
inlinevirtual |
Destructor.
|
pure virtual |
Dump (for debug purpose).
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
inline |
Get the graph.
|
pure virtual |
Tells whether a node is branching
[in] | node | : node to be checked |
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
pure virtual |
Tells whether an edge is marked
[in] | edge | : edge to be checked |
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
pure virtual |
Tells whether a node is marked
[in] | node | : node to be checked |
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
pure virtual |
Tells whether a branching node is marked
[in] | node | : node to be checked |
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
inlinevirtual |
Tells whether marking nodes is allowed or not
Reimplemented in NullTerminatorTemplate< Node, Edge, Graph >.
|
pure virtual |
Mark the provided edge
[in] | edge | : edge to be marked. |
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
pure virtual |
Mark the provided node.
[in] | node | : node to be marked. |
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.
|
pure virtual |
Reset the current marked nodes/edges.
Implemented in MPHFTerminatorTemplate< Node, Edge, Graph >, BranchingTerminatorTemplate< Node, Edge, Graph >, and NullTerminatorTemplate< Node, Edge, Graph >.