DASH  0.3.0
GlobAsyncIter.h
1 #ifndef DASH__GLOB_ASYNC_ITER_H__
2 #define DASH__GLOB_ASYNC_ITER_H__
3 
4 #include <dash/GlobAsyncRef.h>
5 #include <dash/GlobAsyncPtr.h>
6 #include <dash/Pattern.h>
7 
8 #include <dash/iterator/GlobIter.h>
9 
11 
12 #include <iostream>
13 
14 namespace dash {
15 
16 template <
17  typename ElementType,
18  class PatternType = Pattern<1> >
20 : public GlobIter<
21  ElementType,
22  PatternType,
23  GlobAsyncPtr<ElementType, PatternType>,
24  GlobAsyncRef<ElementType> > {
25 private:
26  typedef GlobAsyncIter<
27  ElementType,
28  PatternType,
29  PointerType,
30  ReferenceType > self_t;
31 
32 public:
37  : GlobIter() {
38  DASH_LOG_TRACE_VAR("GlobAsyncIter()", this->_idx);
39  }
40 
42  const self_t & other) = default;
44  const self_t & other) = default;
45 
51  void wait()
52  {
53  dart_flush_all(this->dart_gptr());
54  }
55 
60  void get()
61  {
62  dart_flush_all(this->dart_gptr());
63  }
64 
71  void push()
72  {
74  }
75 
76 }; // class GlobAsyncIter
77 
78 } // namespace dash
79 
80 #endif // DASH__GLOB_ASYNC_ITER_H__
DASH_CONSTEXPR dart_gptr_t dart_gptr() const DASH_NOEXCEPT
Explicit conversion to dart_gptr_t.
Definition: GlobIter.h:193
void wait()
Wait for completion of non-blocking read- and write operations that have been executed on this global...
Definition: GlobAsyncIter.h:51
This class is a simple memory pool which holds allocates elements of size ValueType.
Definition: AllOf.h:8
void push()
Block until all non-blocking write operations that have been executed on this global iterator since t...
Definition: GlobAsyncIter.h:71
GlobAsyncIter()
Default constructor.
Definition: GlobAsyncIter.h:36
dart_ret_t dart_flush_all(dart_gptr_t gptr)
Guarantee completion of all outstanding operations involving a segment on all units.
Iterator on Partitioned Global Address Space.
Definition: GlobIter.h:45
dart_ret_t dart_flush_local_all(dart_gptr_t gptr)
Guarantee completion of all outstanding operations involving a segment on all units.