interfaces.hh

Go to the documentation of this file.
00001 #ifndef DUNE_INTERFACES_HH
00002 #define DUNE_INTERFACES_HH
00003 
00004 #include "typetraits.hh"
00005 
00011 namespace Dune {
00012 
00014   struct Cloneable {
00015 
00021     virtual Cloneable* clone() const = 0;
00022 
00024     virtual ~Cloneable()
00025     {}
00026     
00027   };
00028 
00030   struct HasObjectStream {};
00031 
00034   template <bool hasStream, class GridImp, class DefaultImp>
00035   struct GridObjectStreamOrDefaultHelper {
00036     typedef typename GridImp::ObjectStreamType ObjectStreamType;
00037   };
00038   
00041   template <class GridImp, class DefaultImp>
00042   struct GridObjectStreamOrDefaultHelper<false, GridImp, DefaultImp> {
00043     typedef DefaultImp ObjectStreamType;
00044   };
00045 
00047   template <class GridImp, class DefaultImp>
00048   struct GridObjectStreamOrDefault {
00049     typedef typename GridObjectStreamOrDefaultHelper<
00050       Conversion<GridImp, HasObjectStream>::exists, 
00051       GridImp, 
00052       DefaultImp>::ObjectStreamType ObjectStreamType;
00053   };
00054 
00056   struct IsDofManager {};
00057 
00059   struct HasHierarchicIndexSet {};
00060 
00061 } // end namespace Dune
00062 #endif

Generated on Sun Nov 15 22:28:13 2009 for dune-common by  doxygen 1.5.6