fpmas 1.6
graph_builder.h
Go to the documentation of this file.
1#ifndef FPMAS_GRAPH_BUILDER_API_H
2#define FPMAS_GRAPH_BUILDER_API_H
3
8#include "distributed_graph.h"
9
10namespace fpmas { namespace api { namespace graph {
11
12 // TODO 2.0: refactor all of this... GraphBuilder and
13 // DistributedGraphBuilder does not need to be distinct.
14 // GraphBuilder is obsolete anyway.
15
22 template<typename T>
24 public:
33 // TODO 2.0: refactor this
34 virtual std::size_t nodeCount() = 0;
35
43
44 virtual ~NodeBuilder() {}
45 };
46
53 template<typename T>
55 public:
72 virtual std::vector<api::graph::DistributedNode<T>*> build(
73 NodeBuilder<T>& node_builder,
74 LayerId layer,
75 DistributedGraph<T>& graph) = 0;
76
77 virtual ~GraphBuilder() {}
78 };
79
88 template<typename T>
90 public:
101 virtual std::size_t localNodeCount() = 0;
102
139 DistributedId id, int location, DistributedGraph<T>& graph) = 0;
140
141 virtual ~DistributedNodeBuilder() {}
142 };
143
153 template<typename T>
155 public:
178 virtual std::vector<api::graph::DistributedNode<T>*> build(
179 DistributedNodeBuilder<T>& node_builder,
180 LayerId layer,
181 DistributedGraph<T>& graph) = 0;
182
183 virtual ~DistributedGraphBuilder() {}
184 };
185}}}
186#endif
Definition: graph_builder.h:154
virtual std::vector< api::graph::DistributedNode< T > * > build(DistributedNodeBuilder< T > &node_builder, LayerId layer, DistributedGraph< T > &graph)=0
Definition: distributed_graph.h:169
Definition: distributed_id.h:89
Definition: graph_builder.h:89
virtual std::size_t localNodeCount()=0
virtual DistributedNode< T > * buildDistantNode(DistributedId id, int location, DistributedGraph< T > &graph)=0
Definition: distributed_node.h:28
Definition: graph_builder.h:54
virtual std::vector< api::graph::DistributedNode< T > * > build(NodeBuilder< T > &node_builder, LayerId layer, DistributedGraph< T > &graph)=0
Definition: graph_builder.h:23
virtual std::size_t nodeCount()=0
virtual DistributedNode< T > * buildNode(DistributedGraph< T > &graph)=0
int LayerId
Definition: edge.h:13
Definition: fpmas.cpp:3