1#ifndef DUNE_GRID_MULTIDOMAINGRID_ITERATOR_HH 
    2#define DUNE_GRID_MULTIDOMAINGRID_ITERATOR_HH 
    6#include <dune/grid/common/gridenums.hh> 
   14template<
int codim, 
int dim, 
typename Gr
idImp>
 
   17template<
typename HostGr
idView, 
int codim, PartitionIteratorType pitype, 
typename Gr
idImp>
 
   21  template<
typename, 
typename>
 
   22  friend class MultiDomainGrid;
 
   24  template< 
int cd, 
class Gr
id, 
class IteratorImp >
 
   25  friend class Dune::EntityIterator;
 
   27  static const int codimension = codim;
 
   29  using HostIterator  = 
typename HostGridView::template Codim<codim>::template Partition<pitype>::Iterator;
 
   34  using Entity        = 
typename GridImp::template Codim<codim>::Entity;
 
   37  using EntityWrapper        = Dune::mdgrid::EntityWrapper<codim,GridImp::dimension,GridImp>;
 
   39  IteratorWrapper() = 
default;
 
   41  explicit IteratorWrapper(
const HostIterator& hostIterator)
 
   42    : _hostIterator(hostIterator)
 
   45  explicit IteratorWrapper(HostIterator&& hostIterator)
 
   46    : _hostIterator(std::move(hostIterator))
 
   53  bool equals(
const IteratorWrapper& r)
 const 
   55    return _hostIterator == r._hostIterator;
 
   58  Entity dereference()
 const 
   60    return {EntityWrapper(*_hostIterator)};
 
   65    return _hostIterator.level();
 
   72  HostIterator _hostIterator;