5 #ifndef xmog_iterator_inc
6 #define xmog_iterator_inc
9 #include "xmog_java_client.h"
56 jobject inner_current(
xmog_localenv * env = NULL, xmog_flags flags = xmogDefaultFlags );
58 void inner_next(
xmog_localenv * env = NULL, xmog_flags flags = xmogDefaultFlags );
62 void inner_previous(
xmog_localenv * env = NULL, xmog_flags flags = xmogDefaultFlags );
72 xmogDefaultFlags = xmog_base::GLOBAL,
104 template<
typename Elem >
121 current( inner_current(), xmogDefaultFlags )
127 current( rhs.current )
133 current( inner_current(), xmogDefaultFlags )
144 current = rhs.current;
158 const Elem & operator * ()
const
163 Elem * operator -> ()
168 Elem *
const operator -> ()
const
176 current = Elem( inner_current(), xmogDefaultFlags );
184 current = Elem( inner_current(), xmogDefaultFlags );
190 template<
typename Elem >
207 current( inner_current(), xmogDefaultFlags )
213 current( rhs.current )
219 current( inner_current(), xmogDefaultFlags )
230 current = rhs.current;
244 const Elem & operator * ()
const
249 Elem *
const operator -> ()
const
257 current = Elem( inner_current(), xmogDefaultFlags );
265 current = Elem( inner_current(), xmogDefaultFlags );
271 template<
typename Elem >
288 current( inner_current(), xmogDefaultFlags )
294 current( rhs.current )
300 current( inner_current(), xmogDefaultFlags )
311 current = rhs.current;
325 Elem * operator -> ()
333 current = Elem( inner_current(), xmogDefaultFlags );
341 current = Elem( inner_current(), xmogDefaultFlags );
348 current = Elem( inner_current(), xmogDefaultFlags );
356 current = Elem( inner_current(), xmogDefaultFlags );
361 #if (XMOG_SUPPORTS_STL == 1)
365 template<
typename Elem >
struct std::iterator_traits<
xmog_iterator< Elem > >
367 typedef ptrdiff_t difference_type;
368 typedef Elem value_type;
369 typedef Elem* pointer;
370 typedef Elem& reference;
371 typedef std::forward_iterator_tag iterator_category;
376 typedef ptrdiff_t difference_type;
377 typedef Elem value_type;
378 typedef Elem* pointer;
379 typedef Elem& reference;
380 typedef std::bidirectional_iterator_tag iterator_category;