Chris@16
|
1 // Copyright (C) 2006 The Trustees of Indiana University.
|
Chris@16
|
2
|
Chris@16
|
3 // Use, modification and distribution is subject to the Boost Software
|
Chris@16
|
4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
5 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
6
|
Chris@16
|
7 // Authors: Douglas Gregor
|
Chris@16
|
8 // Andrew Lumsdaine
|
Chris@16
|
9 #ifndef BOOST_GRAPH_DISTRIBUTED_SELECTOR_HPP
|
Chris@16
|
10 #define BOOST_GRAPH_DISTRIBUTED_SELECTOR_HPP
|
Chris@16
|
11
|
Chris@16
|
12 #ifndef BOOST_GRAPH_USE_MPI
|
Chris@16
|
13 #error "Parallel BGL files should not be included unless <boost/graph/use_mpi.hpp> has been included"
|
Chris@16
|
14 #endif
|
Chris@16
|
15
|
Chris@16
|
16 #include <boost/graph/detail/is_distributed_selector.hpp>
|
Chris@16
|
17
|
Chris@16
|
18 namespace boost {
|
Chris@16
|
19
|
Chris@16
|
20 /* The default local selector for a distributedS selector. */
|
Chris@16
|
21 struct defaultS {};
|
Chris@16
|
22
|
Chris@16
|
23 /**
|
Chris@16
|
24 * Selector that specifies that the graph should be distributed
|
Chris@16
|
25 * among different processes organized based on the given process
|
Chris@16
|
26 * group.
|
Chris@16
|
27 */
|
Chris@16
|
28 template<typename ProcessGroup, typename LocalS = defaultS,
|
Chris@16
|
29 typename DistributionS = defaultS>
|
Chris@16
|
30 struct distributedS
|
Chris@16
|
31 {
|
Chris@16
|
32 typedef ProcessGroup process_group_type;
|
Chris@16
|
33 typedef LocalS local_selector;
|
Chris@16
|
34 typedef DistributionS distribution;
|
Chris@16
|
35 };
|
Chris@16
|
36
|
Chris@16
|
37 namespace detail {
|
Chris@16
|
38 template<typename ProcessGroup, typename LocalS, typename DistributionS>
|
Chris@16
|
39 struct is_distributed_selector<distributedS<ProcessGroup, LocalS, DistributionS> >: mpl::true_ {};
|
Chris@16
|
40 }
|
Chris@16
|
41
|
Chris@16
|
42 }
|
Chris@16
|
43
|
Chris@16
|
44 #endif // BOOST_GRAPH_DISTRIBUTED_SELECTOR_HPP
|