/usr/include/dune/grid/geometrygrid/backuprestore.hh is in libdune-grid-dev 2.2.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #ifndef DUNE_GEOGRID_BACKUPRESTORE_HH
#define DUNE_GEOGRID_BACKUPRESTORE_HH
#include <dune/grid/common/backuprestore.hh>
#include <dune/grid/utility/grapedataioformattypes.hh>
#include <dune/grid/geometrygrid/declaration.hh>
#include <dune/grid/geometrygrid/capabilities.hh>
namespace Dune
{
namespace GeoGrid
{
// BackupRestoreFacilities
// -----------------------
template< class Grid, bool hasBackupRestoreFacilities = Capabilities::hasBackupRestoreFacilities< Grid > ::v >
class BackupRestoreFacilities
{};
template< class Grid >
class BackupRestoreFacilities< Grid, true >
{
typedef BackupRestoreFacilities< Grid, true > This;
protected:
BackupRestoreFacilities ()
{}
private:
BackupRestoreFacilities ( const This & );
This &operator= ( const This & );
public:
template< GrapeIOFileFormatType type >
bool writeGrid ( const std::string &filename, double time ) const
{
return asImp().hostGrid().template writeGrid< type >( filename, time );
}
template< GrapeIOFileFormatType type >
bool readGrid ( const std::string &filename, double &time )
{
const bool success
= asImp().hostGrid().template readGrid< type >( filename, time );
asImp().update();
return success;
}
protected:
const Grid &asImp () const
{
return static_cast< const Grid & >( *this );
}
Grid &asImp ()
{
return static_cast< Grid & >( *this );
}
};
} // namespace GeoGrid
// BackupRestoreFacility for GeometryGrid
// --------------------------------------
template< class HostGrid, class CoordFunction, class Allocator >
struct BackupRestoreFacility< GeometryGrid< HostGrid, CoordFunction, Allocator > >
{
typedef GeometryGrid< HostGrid, CoordFunction, Allocator > Grid;
typedef BackupRestoreFacility< HostGrid > HostBackupRestoreFacility;
static void backup ( const Grid &grid, const std::string &path, const std::string &fileprefix )
{
// notice: We should also backup the coordinate function
HostBackupRestoreFacility::backup( grid.hostGrid(), path, fileprefix );
}
static void backup ( const Grid &grid, const std::ostream &stream )
{
// notice: We should also backup the coordinate function
HostBackupRestoreFacility::backup( grid.hostGrid(), stream );
}
static Grid *restore ( const std::string &path, const std::string &fileprefix )
{
// notice: We should also restore the coordinate function
HostGrid *hostGrid = HostBackupRestoreFacility::restore( path, fileprefix );
CoordFunction *coordFunction = new CoordFunction();
return new Grid( hostGrid, coordFunction );
}
static Grid *restore ( const std::istream &stream )
{
// notice: We should also restore the coordinate function
HostGrid *hostGrid = HostBackupRestoreFacility::restore( stream );
CoordFunction *coordFunction = new CoordFunction();
return new Grid( hostGrid, coordFunction );
}
};
} // namespace Dune
#endif // #ifndef DUNE_GEOGRID_BACKUPRESTORE_HH
|