generic_traversal.h

Back to Graph traversal

pastel/sys/graph/

// Description: A function for executing graph-traversal algorithm-objects.
// Documentation: graph_traversal.txt

#ifndef PASTELSYS_GENERIC_TRAVERSAL_H
#define PASTELSYS_GENERIC_TRAVERSAL_H

#include "pastel/sys/graph/graph_traversal_concepts.h"

namespace Pastel
{

    template <
        typename Vertex,
        typename ForEachSeedVertex,
        typename ForEachAdjacent,
        typename Mark,
        typename Marked,
        typename GraphTraversal_Algorithm>
    void traverseGraph(
        const ForEachSeedVertex& forEachSeedVertex,
        const ForEachAdjacent& forEachAdjacent,
        const Mark& mark,
        const Marked& marked,
        const GraphTraversal_Algorithm& algorithm)
    {
        algorithm.template work<Vertex>(
            forEachSeedVertex,
            forEachAdjacent,
            mark,
            marked);
    }

}

#endif