DASH  0.3.0
Chunked.h
1 #ifndef DASH__VIEW__CHUNKED_H__INCLUDED
2 #define DASH__VIEW__CHUNKED_H__INCLUDED
3 
4 #include <dash/Types.h>
5 #include <dash/Range.h>
6 
7 #include <dash/view/Domain.h>
8 #include <dash/view/Local.h>
9 #include <dash/view/Origin.h>
10 #include <dash/view/Domain.h>
11 #include <dash/view/ViewTraits.h>
12 #include <dash/view/SetIntersect.h>
13 
14 
15 namespace dash {
16 
17 // ------------------------------------------------------------------------
18 // Forward-declarations
19 // ------------------------------------------------------------------------
20 
21 template <
22  class DomainType >
24 
25 #if 0
26 template <
27  class ContainerType,
28  class OffsetT >
29 constexpr auto
30 block(
31  OffsetT block_idx,
32  const ContainerType & container)
33 -> typename std::enable_if<
35  decltype(container.block(0))
36  >::type {
37  return container.block(block_idx);
38 }
39 #endif
40 
45 template <
46  class ViewType,
47  class OffsetT >
48 constexpr auto
50  OffsetT block_idx,
51  const ViewType & view)
52 -> typename std::enable_if<
53  (// dash::view_traits<ViewType>::is_view::value &&
56  >::type {
57  return ViewBlockMod<ViewType>(view, block_idx);
58 }
59 
64 template <
65  class ViewType,
66  class OffsetT >
67 constexpr auto
68 block(
69  OffsetT block_idx,
70  const ViewType & view)
71 -> typename std::enable_if<
72  (// dash::view_traits<ViewType>::is_view::value &&
74  decltype(dash::block(block_idx, dash::local(dash::origin(view))))
75  >::type {
76  return dash::local(dash::origin(view)).block(block_idx);
77 }
78 
79 } // namespace dash
80 
81 #endif // DASH__VIEW__CHUNKED_H__INCLUDED
constexpr auto local(ViewType &v) -> typename std::enable_if<(std::is_pointer< typename ViewType::iterator >::value||(dash::view_traits< ViewValueT >::is_local::value)), ViewType &>::type
Definition: Local.h:28
This class is a simple memory pool which holds allocates elements of size ValueType.
Definition: AllOf.h:8
dash::view_traits< ViewT >::origin_type origin(ViewT &view)
View type traits.
Definition: ViewTraits.h:31
constexpr auto block(OffsetT block_idx, const ViewType &view) -> typename std::enable_if<(!dash::view_traits< ViewType >::is_local::value), ViewBlockMod< ViewType > >::type
Blocks view from global view.
Definition: Chunked.h:49