3 #ifndef DUNE_DATAHANDLEIF_HH
4 #define DUNE_DATAHANDLEIF_HH
12 #include <dune/common/bartonnackmanifcheck.hh>
31 template <
class MessageBufferImp>
34 MessageBufferImp & buff_;
73 template <
class DataHandleImp,
class DataTypeImp>
92 CHECK_INTERFACE_IMPLEMENTATION((asImp().
contains(dim,codim)));
93 return asImp().contains(dim,codim);
103 CHECK_INTERFACE_IMPLEMENTATION((asImp().
fixedsize(dim,codim)));
104 return asImp().fixedsize(dim,codim);
111 template<
class EntityType>
112 size_t size (
const EntityType& e)
const
114 CHECK_INTERFACE_IMPLEMENTATION((asImp().
size(e)));
115 return asImp().size(e);
122 template<
class MessageBufferImp,
class EntityType>
123 void gather (MessageBufferImp& buff,
const EntityType& e)
const
126 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION((asImp().
gather(buffIF,e)));
134 template<
class MessageBufferImp,
class EntityType>
135 void scatter (MessageBufferImp& buff,
const EntityType& e,
size_t n)
138 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION((asImp().
scatter(buffIF,e,n)));
143 DataHandleImp& asImp () {
return static_cast<DataHandleImp &
> (*this);}
145 const DataHandleImp& asImp ()
const
147 return static_cast<const DataHandleImp &
>(*this);
151 #undef CHECK_INTERFACE_IMPLEMENTATION
152 #undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION