Go to the source code of this file.
Namespaces | |
namespace | std |
namespace | topo |
namespace | topo::impl |
Data Structures | |
struct | std::iterator_traits< Iterator > |
struct | std::std::iterator_traits< T * > |
class | topo::SpanningTreeStrategy< Iterator, ValueType > |
The spanning tree build strategy interface. More... | |
Typedefs | |
typedef int | topo::vtxType |
Alias for the actual data type of a vertex id (PE/node number). | |
Functions | |
template<class Iterator> | |
int | std::distance (Iterator first, Iterator last) |
template<typename Iterator> | |
SpanningTreeStrategy< Iterator > * | topo::getSpanningTreeStrategy (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches) |
Tiny factory method that returns a tree construction strategy that it thinks is best (based on inputs, the machine's network topology info etc). | |
template<typename Iterator> | |
void | topo::impl::buildSpanningTree (SpanningTreeVertex *dispatchTag, const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches, SpanningTreeStrategy< Iterator > *bldr) |
Tag dispatched function that does the actual work of building the complete spanning tree. | |
template<typename Iterator> | |
SpanningTreeVertex * | topo::buildSpanningTreeGeneration (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches=2) |
Builds one generation of the spanning tree given a container of vertices with the tree root as the first element in the container. | |
template<typename Iterator> | |
SpanningTreeVertex * | topo::buildSpanningTreeGeneration (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches, SpanningTreeStrategy< Iterator > *bldr) |
Facade function to hide all the template muck for the mainstream usecases. | |
template<typename Iterator> | |
void | topo::buildSpanningTree (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches=2) |
Builds the complete spanning tree given a container of vertices with the tree root as the first element in the container. | |
template<typename Iterator> | |
void | topo::buildSpanningTree (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches, SpanningTreeStrategy< Iterator > *bldr) |
Facade function to build a complete spanning tree given an input container of SpanningTreeVertex-es Uses tag-dispatching to ensure at compile-time that the input container holds only SpanningTreeVertex and nothing else. |