1 #ifndef DUNE_DATAHANDLEIF_HH
2 #define DUNE_DATAHANDLEIF_HH
10 #include <dune/common/bartonnackmanifcheck.hh>
29 template <
class MessageBufferImp>
32 MessageBufferImp & buff_;
71 template <
class DataHandleImp,
class DataTypeImp>
90 CHECK_INTERFACE_IMPLEMENTATION((asImp().
contains(dim,codim)));
91 return asImp().contains(dim,codim);
101 CHECK_INTERFACE_IMPLEMENTATION((asImp().
fixedsize(dim,codim)));
102 return asImp().fixedsize(dim,codim);
109 template<
class EntityType>
110 size_t size (
const EntityType& e)
const
112 CHECK_INTERFACE_IMPLEMENTATION((asImp().
size(e)));
113 return asImp().size(e);
120 template<
class MessageBufferImp,
class EntityType>
121 void gather (MessageBufferImp& buff,
const EntityType& e)
const
124 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION((asImp().
gather(buffIF,e)));
133 template<
class MessageBufferImp,
class EntityType>
134 void scatter (MessageBufferImp& buff,
const EntityType& e,
size_t n)
137 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION((asImp().
scatter(buffIF,e,n)));
142 DataHandleImp& asImp () {
return static_cast<DataHandleImp &
> (*this);}
144 const DataHandleImp& asImp ()
const
146 return static_cast<const DataHandleImp &
>(*this);
150 #undef CHECK_INTERFACE_IMPLEMENTATION
151 #undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION